Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#経済学のための実践的データ分析 3.9 テキスト分析(前半; wordcloud, word2vec, LDA etc...))

yasushihara
October 15, 2019

#経済学のための実践的データ分析 3.9 テキスト分析(前半; wordcloud, word2vec, LDA etc...))

#経済学のための実践的データ分析
3.9 テキスト分析 (前半; wordcloud, word2vec, LDA etc...)

Contents
- Mecab の使い方 (形態素解析)
- WordCloud
- word2vec
- トピックモデル

yasushihara

October 15, 2019
Tweet

More Decks by yasushihara

Other Decks in Education

Transcript

  1. ケーススタディ2: 小室さんと華原さんのトークを分析してみよ う • TK MUSIC CRAMP • 1995年から1998年まで放送してた音楽番組 •

    1995年度は小室哲哉さんが • 1996年度はSMAPの中居正広さんが • 1997年度は華原朋美さんが司会を担当 • 二人の会話を共起グラフ分析して、二人がどのくらいラブラブ だったのか、どのくらい冷めちゃったのか可視化できるかやっ てみよう • 分析対象 • 1996/3/6 オンエアのトーク • 1998/3/25 オンエアのトーク 3/8/2015 4
  2. 結果 • 1996/3/6 OA 版 • 1998/3/25 OA 版 3/8/2015

    5 ※. 動詞, 名詞, 形容詞を抽出
  3. 結果(2) : 頻出語のみに限定 • 1996/3/6 OA版 • 1998/3/25 OA 版

    3/8/2015 6 ※. 動詞, 名詞, 形容詞を抽出
  4. 1. Mecab+word2vecで解析し, wordcloud を書いてみる • Jupyter Notebook/Google Colaboratory • Mecab

    • Mecab-ipadic-neologd • Mecab-python-windows (Windows ユーザーの場合) 利用するもの • テキストデータ • 企業の概要データ • 日本の社会科学研究者リスト データセット
  5. MeCab とは • https://taku910.github.io/mec ab/ • 京都大学情報学研究科−日本 電信電話株式会社コミュニケー ション科学基礎研究所 共同研

    究ユニットプロジェクトを通じ て開発されたオープンソース 形態素解析エンジン • 言語, 辞書,コーパスに依存しな い汎用的な設計 • パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSen が採用している 隠れマルコフ モデルに比べ性能が向上 MeCab ChaSen JUMAN KAKASI 解析モデル bi-gram マルコ フモデル 可変長マルコ フモデル bi-gram マル コフモデル 最長一致 コスト推定 コーパスから学 習 コーパスから 学習 人手 コストという 概念無し 学習モデル CRF (識別モデ ル) HMM (生成モ デル) 辞書引きア ルゴリズム Double Array Double Array パトリシア木 Hash? 解探索アル ゴリズム Viterbi Viterbi Viterbi 決定的? 連接表の実 装 2次元 Table オートマトン 2次元 Table? 連接表無し? 品詞の階層 無制限多階層品 詞 無制限多階層 品詞 2段階固定 品詞という概 念無し? 未知語処理 字種 (動作定義 を変更可能) 字種 (変更不 可能) 字種 (変更不 可能) 制約つき解 析 可能 2.4.0で可能 不可能 不可能 N-best解 可能 不可能 不可能 不可能
  6. 形態素解析 • 文章を意味を持つ最小限の単位に分解すること • 例 • 「何処の誰か知らないが出会う前の君に捧ぐ。この世未来切り開く何 でもない君に」(Hello song, 星野源)

    → • 「何処/の/誰/か/知ら/ない/が/出会う/前/の/君/に/捧ぐ/。/この/世 /未来/切り/開く/何でも/ない/君/に」 • 主語と述語と目的語… など, 品詞ごとに分割し文章の意味合いを抽出することを 可能にする。
  7. Mecab をダウンロードする • Windows 10 環境の場合 • https://github.com/ikegami-yukino/mecab/releases • MeCab

    0.996 64bit version を導入する • UTF-8 版で辞書を作成すること • MacOS 環境の場合 • HomeBrew 環境を利用する • https://www.karelie.net/install-mecab-mac/
  8. Mecab-ipadic-NEOlogd とは • https://github.com/neologd/ mecab-ipadic- neologd/blob/master/READ ME.ja.md • 多数のWeb上の言語資源から 得た新語を追加することでカ

    スタマイズした MeCab 用の システム辞書 • Web上の文書の解析をする際 に活用できる • 収録データ(一部) • 人名(姓/名)エントリデータ • ニュース記事から抽出した新語 や未知語をエントリ化したデー タ • ネット上で流行した単語や慣用 句やハッシュタグをエントリ化 したデータ • Web からクロールした大量の 文書データ • 一般名詞/固有名詞の表記ゆれ 文字列とその原型の組のリスト をエントリ化したデータ
  9. 1. Wordcloud • 必要なパッケージをインポートする • 開くファイルを指定する • 今回は, DBpedia.org から取得した経済学者の概要を抽出し,

    UTF-8 で エンコーディングしたテキストデータとして保存 • マスク画像も別途用意(使わない場合はコメントアウト)
  10. 1. Wordcloud • Wordcloud関数を用いて, ワードクラウドを出力する • Font_path で利用する日本 語フォントを指定する(今回 は同じパスに配置)

    • Mask で, プロットするマス ク画像を指定する • Stopwords に, プロットしな いタームを指定したベクト ル stop_wordsを指定する • wordc.to_file でファイルの 保存名を指定する
  11. 2. Word2vec • テキストデータを解析し, 各 単語の意味をベクトル表現 化する • 単語間の近接性などを測定 することが可能に

    • Skip-Gram Model • 入力された単語を元に周辺語 を出力する, 入力層, 隠れ層, 出力層から構成されたニュー ラルネットワークを規定する 引用; https://www.randpy.tokyo/entry/word2vec_skip_gram_model
  12. 2. Word2Vec • 文を単語に分かち書きし, そ れぞれ入力層と出力層にイ ンプットしニューラルネッ トに学習させていく • 入力層から隠れ層への重み行列;

    W 隠れ層から出力層への重み行列; W’ をそれぞれ計算する • このとき、重み行列の各行のベクトルが, 単語の特徴を示すベクトルになる 引用; https://www.randpy.tokyo/entry/word2vec_skip_gram_model
  13. 2. Word2vec • 分かち書きしたファイルに 基づき, Word2vec モデル を生成する • このとき

    • Min_count; 単語の出現回数 • Window; 入力単語からの最 大距離 • Size; ベクトルの次元数 • Sg=1; skip-gram 形式での モデリング • iter; 学習の反復回数 • 最後にファイルを保存する
  14. Similarity Words の抽出(from 経営学者リスト) イノベーション マーケティング論 技術経営 コーポレート・ガバナンス 医療 0.92人的資源

    0.92MOT 0.98 神戸大学大学院経 営学研究科 0.93 静岡 0.91評価 0.92開発 0.92第一人者 0.92 地域 0.91ほか 0.91システム 0.92人 0.91 経営情報学 部 0.9勲 0.91知識 0.91組織論 0.91 県立大学 0.88技術 0.9マネジメント 0.9および 0.9 センター 0.88流通 0.9監事 0.88消費者 0.89 研究科 0.87分析 0.9課題 0.85にて 0.89 経営情報 0.87委員会 0.9Certified 0.85問題 0.88 研究所 0.84課題 0.9客員研究員 0.84受章 0.88 所長 0.83人 0.89技術 0.82期 0.87 長 0.82監事 0.89関係 0.82現代 0.87 准教授 0.81および 0.89プロジェクト 0.82勲 0.87 国際企業 0.8多摩大学 0.89 マーケティング 論 0.81アドバイザー 0.87 経済 0.8地域経済 0.88領域 0.81及び 0.87 研究員 0.79サービス 0.88ホスピタリティ 0.8社会学 0.86
  15. 3. Topic モデル • 文章における単語の出現確率 を推定するためのモデル • 出現する単語の種類と数が, トピック(カテゴリ) によって

    異なると仮定する • 各文章は複数のトピックによっ て構成されており, 各トピック の単語分布を合算された形で単 語が生成される https://qiita.com/icoxfog417/items/7c944cb29dd7cdf5e2b1
  16. 3. Topic モデル • 必要なパッケージ をインポートする • 元文章からターム を取り出し, キー

    ワードを抽出する • 今回のデータの場 合, 社会学者ひとり ひとりのタームが 抽出されたベクト ルが形成される 参考文献; https://paper.hatenadiary.jp/entry/2016/11/06/212149
  17. 3. Topic モデル • 出力結果 1602 ソーシャルワーク 2 1265 ソーシャル・キャピタル

    2 1524 タレント 2 1403 テレコム 2 725 テレビ 6 793 テーマ 5 559 デザイン 3 1451 デュルケーム 2 395 ドイツ 8 811 ニュース 3 1153 ネット 3 414 ネットワーク 10 310 ノンフィクション 3 33 バークレー 2 1467 フィールドワーク 3 1204 フェミニスト 2 1154 フェミニズム 3 1311 フェリス女学院大学 2 34 フランス 8 458 プロジェクト 3 415 ヘイトスピーチ 2 649 ペンネーム 2 1608 ホームレス 2 1057 ポスト 2 1058 ポストコロニアル 2 101 ポピュラー 3 679 マス 8 620 マスコミ 2 54 マスコミュニケーション 9 55 マスメディア 4 1126 マックス・ウェーバー 2 571 マックス・ヴェーバー 4
  18. まとめ; テキスト分析で出来そうなこと • 共起ネットワーク • 言葉同士の関係性を明示化し, 可視化する • WordCloud •

    みんなのなんとなくのイメージの可視化 • Word2vec • 言葉のベクトル化により, モデルへの組み込みが可能 • 被説明変数?説明変数? • Topic モデル • グルーピングの可視化 • 類似語の提案
  19. 今日の実習; その2 • 取得したテキストデータを用 いて, 分析を行う • Wordcloud の作成 •

    Word2vec モデルの作成 • Topic モデルの作成 などを試行して, 結果を出力す ること Extended;) Dbpedia.org を使いテキスト データを取得して解析する
  20. レポート(2+3回目)の内容 • 概要 • テーマ; とても細かくやってみる「企業研究」 • 講義で取り上げたデータセット (BigQuery Sandbox/RESAS/Lens.org)

    ないしは 企業の財務データベースからデータセットを入手し, 特定の産業, 企業グループに ついて比較分析を行い, レポートにまとめる. • レポートでは • (1) とりあげた産業/企業グループの特徴の抽出, 基礎統計の分析 • (2) 売上高, 資本金, ROE, ROA など主なパフォーマンスのデータおよびその比較 を行った上で, 「もしも自分が就職するのなら」どの企業を選択するか明記するこ と • 提出期間: 2019/10/29 13:15:00 (JST) • 提出方法:Slack DM
  21. 日本標準産業分類 • A. 農業,林業 • B. 漁業 • C. 鉱業,採石業,砂利採取業

    • D. 建設業 • E. 製造業 • F. 電気・ガス・熱供給・水道業 • G. 情報通信業 • H. 運輸業,郵便業 • I. 卸売業,小売業 • J. 金融業,保険業 • K. 不動産業,物品賃貸業 • L. 学術研究,専門・技術サービス業 • M. 宿泊業,飲食サービス業 • N. 生活関連サービス業,娯楽業 • O. 教育,学習支援業 • P. 医療,福祉 • Q. 複合サービス事業 • R. サービス業(他に分類されないもの) • S. 公務(他に分類されるものを除く) • T. 分類不能の産業 http://www.soumu.go.jp/toukei_toukatsu/index/seido/ sangyo/02toukatsu01_03000022.html
  22. 日本標準産業分類から, ローソンが属す る産業群を抽出する comp_name read comp_size_l aw comp_size_ cap comp_size_emp

    jsic_code jsic_l jsic_m jsic_s アスモ あすも 大企業 10億円以上 300~999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 アペックス あぺっくす 大企業 5000万円以 上 1,000~4,999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 清水製薬 しみずせいやく jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 えがお えがお 中小企業 1億円以上 300~999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 柿安本店 かきやすほんてん 大企業 10億円以上 1,000~4,999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 サンクス さんくす jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 シー・ヴイ・エス・ベイエリア しーゔいえすべいえりあ 大企業 10億円以上 100~299人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 ショクブン しょくぶん 大企業 10億円以上 300~999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 スリーエフ すりーえふ 大企業 10億円以上 300~999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 TAANE たあね jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 日本レストランエンタプライズ にっぽんれすとらんえんたぷらい ず 大企業 1億円以上 1,000~4,999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 ファンデリー ふぁんでりー 中小企業 1億円以上 30~99人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 プレナス ぷれなす 大企業 10億円以上 1,000~4,999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 ポプラ ぽぷら 大企業 10億円以上 300~999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 マッシュ・テック まっしゅてっく 小規模企業 者 1000万円以 上 5人未満 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 ミニストップ みにすとっぷ 大企業 10億円以上 300~999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 メルカード東京農大 めるかーどとうきょうのうだい 中小企業 1000万円以 上 5~29人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 ユニー・ファミリーマートホール ディングス ゆにーふぁみりーまーとほーる でぃんぐす 大企業 10億円以上 1,000~4,999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 ファミリーマート ふぁみりーまーと 大企業 10億円以上 1,000~4,999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 ローソン ろーそん 大企業 10億円以上 1,000~4,999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 わかさ生活 わかさせいかつ 中小企業 1000万円以 上 300~999人 jsic589 卸売業,小売業 飲食料品小売業 その他の飲食料品小売業 出典: NISTEP 企業名辞書
  23. 1. これらを踏まえ, 本レポートでの市場 画定 • 特定の企業をひとつ取り上げてください • 当該企業と同じ産業に属するであろう、複数の企業を抽出する。 このとき、レポートでは抽出方法について明らかにすること。 抽出方法については

    (1) 日本標準産業分類に基づく抽出, (2) 業 界情報 (例. https://gyokai-search.com/2nd-genre.htm) など に基づく抽出, (3) その他の方法に基づく抽出 など幾つかの手 法が考えうるが, 選択した手法について明記すること
  24. 2. データベースの選択とデータの抽出 • データベースの選択 • 企業データベース • 日経NEEDS, Entrepedia, 法人インフォ,

    RESAS etc… • 論文データベース • Lens.org, Google Scholar, Web of Science etc… • 特許データベース • Lens.org, Google Big Query, 特許庁データベース, IIP パテントデータベース etc… • 1. で指定した企業群について, 解析にあたり必要なデータを取 得すること. これら以外のデータベースを利用しても構わない
  25. Big Queryおすすめのデータセット(1) • Google Patents Research Data • “Google Patents

    Research Data contains the output of much of the data analysis work used in Google Patents (patents.google.com), including machine translations of titles and abstracts from Google Translate, embedding vectors, extracted top terms, similar documents, and forward references.”
  26. Big Queryおすすめのデータセット(2) • World Development Indicators – World Bank •

    “This dataset contains the most current and accurate global development data available including national, regional and global estimates. Data has been collected from the early 1960’s to present and is updated regularly depending on new data available on the indicators. This time series data offers indicators such as agriculture and food security, climate change, population growth, economic growth, education, energy, natural Resources and many more. • This public dataset is hosted in Google BigQuery and is included in BigQuery's 1TB/mo of free tier processing. This means that each user receives 1TB of free BigQuery processing every month, which can be used to run queries on this public dataset.”
  27. Big Queryおすすめのデータセット(3) • Chicago Taxi Trips • “This dataset includes

    taxi trips from 2013 to the present, reported to the City of Chicago in its role as a regulatory agency. To protect privacy but allow for aggregate analyses, the Taxi ID is consistent for any given taxi medallion number but does not show the number, Census Tracts are suppressed in some cases, and times are rounded to the nearest 15 minutes. Due to the data reporting process, not all trips are reported but the City believes that most are. For more information about this dataset and how it was created, see this post on the City of Chicago's blog.”
  28. Lens.org • 出来ること • 特許関連 • 特定企業/産業の特許数の変化についてデータを取得する • AI や機械学習に関する特許がどのくらい出ているか調査する

    • 論文関連 • 日本の私立/国立大学の論文生産数について比較する • ノーベル賞を受賞した科学者が書いた論文のうち, どれが重要が論文だったかを 特定し, その前方引用数を調査する
  29. 3. & 4. データの解析およびレポートの作成 • 2. で取得したデータに関して, 主に以下の分析を行い報告すること • 産業

    (あるいは業界) 構造の特性の抽出 • 主な企業の売上高, 資本金および収益率など, 財務パラメータの比較分析 • 特許や地域特性の分析 • 統計分析 (基本統計量の抽出, 散布図の作成, 回帰分析 etc…) • レポートの最後に、「もしも自分が就職するのなら」どの企業を選 択するのか明記してください • オチとして、「解析の結果こういう理由から、どうもいい企業がないので自 分でスタートアップを作ります」でもOKです。
  30. レポートの評価方法 • Excellent • データおよび適切な分析手法に基づき、独自の視点で十分に考察がなされている • Good • データおよび適切な分析手法に基づき、独自の視点で考察がなされている •

    Fair • データに対して分析が行われているが、一般的な範囲での考察にとどまる • Bad • 考察がなされていない,あるいはデータの解析が十分に行われていない • Failed • 断りなく他者の見解を引用している,その他不正行為に相当する
  31. 成績評価(1) • 平常レポート (40パーセント; 必須) • 講義計画に示したように、複数の回で学生にはレポートを課します。 レポートは Word/PowerPoint形式のメールあるいは, github

    経由で の提出が求められます(どの方法を採用するかは、初回の講義で決定し ます)。 • レポートには、(A.) 利用したデータセットとその内容, (B.) 分析の問 い, (C.) 分析手法, (D.) 分析結果 を明記する必要があります。ページ 数や文字数は問いませんが, これらの内容が含まれており, 講義中にア ナウンスする評価手法を満たす場合, 高い得点を得ることが出来ます。 • 平常点 (10パーセント) • 本講義は実習が多く含まれており, また取り扱うデータセットや内容も 多彩です。そのため、受講者同士が協力する必要があります。こうし た受講者の態度を評価するために、平常点を設けます。
  32. 成績評価(2) • 最終レポート (40パーセント; 必須) • 講義の最終回では最終レポートの報告会を行います。受講者は3名から4名か ら構成されるグループで、最終レポートの報告を行う必要があります(人数は 受講者の人数により変更される可能性があります)。最終レポートでは、プレ ゼンテーションの方法を学生は自由に選ぶことが出来ます。PowerPoint

    以 外にも、Prezi などのアクティブプレゼンテーションツールや、他のプレゼ ンテーション手法を用いることが出来ます(プレゼンテーションツールについ ては、必要であれば講義内で説明する機会を設けます)。最終レポートでは、 以下の点について評価を行います。 (A.) グループ内の役割分担 (B.) データセットのユニークさおよび、それが適切に処理されているか (C.) 分析手法のユニークさおよび、それが適切に解析されているか (D.) プレゼンテーションのユニークさ (E.) 質疑応答にうまくリプライすることが出来ているか • 最終レポートの360°グループ評価 (10パーセント) • 3. の最終レポートについて、グループの自己評価および他のグループからの 評価を行います。3. で挙げた評価ポイントに基づき、グループメンバーおよ び他のグループは評価を行います。
  33. Withdraw について • レポートを一回も提出していない場合 • Withdraw として扱います • レポートを1回または2回提出している場合 •

    Withdraw ではなく、単位取得の意思があるとみなします • ただ, レポートの回数を一回減らしたため, もしレポート1回目提出後 単位取得に進まない場合には, 10/22 23:59 (JST) までにSlack DM に てその旨おしらせください
  34. 13. まとめと最終報告レポート • テーマ • 「◦◦のための実践的データ分析」 • 卒論や修論や博論の作成の入り口になるような、データの調達とその データの解析を, 講義で取り上げたデータセットおよび分析手法で実施

    する • 分析単位はマクロ (国レベル) でもメソ (企業/産業レベル) でもミクロ (個人レベル) でも問いません • 利用できるデータセット • 特に制限なし • 利用できるツール • Tableau, Excel, SQL, Jupyternotebook (Python), R など, 特に制限なし
  35. 13. まとめと最終報告レポート • 評価方法 • グループ内での自己評価 • グループ外からの評価 アンケートシステムをManaba or

    Google Docs で用意します。 • 評価基準 • (A.) グループ内の役割分担 (B.) データセットのユニークさおよび、それが適切に処理されているか (C.) 分析手法のユニークさおよび、それが適切に解析されているか (D.) プレゼンテーションのユニークさ (E.) 質疑応答にうまくリプライすることが出来ているか • 納品物 • プレゼンテーションに利用したSlack グループにアップロードすること
  36. グループ分け(1) • グループA • 2115288x • 2116001m • 2116086k •

    2117015a • 2117249x • グループB • 2115149a • 2116017b • 2116105k • 2117139k • グループC • 2117063a • 2117197b • 2118024m • 2118138b • グループD • 1117050s • 2118029s • 2118051c • 2118198m • グループE • 1116055b • 2116198k • 2117169s • 2118043b • 2118080s • グループF • EM185021 • EM195071 • EM195074 • SM182011
  37. グループ分け(2) • グループG • 2115183a • 2116190y • 2117110s •

    2118125z • 2118199h • グループH • 2116095h • 2116251k • 2117007z • 2117236s • 2118173z • グループI • 2116141a • 2116330x • 2117073x • 2118096c • 2118131k • グループJ • 2116118s • 2116215x • 2117135b • 2118245a