一橋大学 #経済学のための実践的データ分析 2020夏: 7/10

一橋大学 #経済学のための実践的データ分析 2020夏: 7/10

一橋大学 #経済学のための実践的データ分析 2020夏: 7/10
7.テキスト分析をやってみよう
7.1.テキスト分析でできること
7.2.WordCloudを書いてみよう
7.3.Word2vecやTopicモデル
7.4.計量テキスト分析をやろう
APPENDIX 感情分析

F5f758ca2ec0de2da9781ce9391d9c6c?s=128

yasushihara

July 06, 2020
Tweet

Transcript

  1. 一橋大学 「経済学のための 実践的データ分析」 2020夏: 7/10 7.テキスト分析をやってみよう 7.1.テキスト分析でできること 7.2.WordCloudを書いてみよう 7.3.Word2vecやTopicモデル 7.4.計量テキスト分析をやろう

    APPENDIX 感情分析 一橋大学大学院経済学研究科 原泰史 yasushi.hara@r.hit-u.ac.jp
  2. 今日の内容 • 10:30-10:45 • プレ講義 [録画なし] • 10:45-11:05 • 7.1テキスト分析でできること

    [録画あり] • 11:05-11:10 • インターミッション[録画なし] • 11:10-11:30 • 7.2 wordcloud を書いてみ よう [録画あり] • 11:30-11:35 • インターミッション2[録画なし] • 11:35-11:55 • 7.3 word2vec やtopic model [録画] • 11:55-12:00 • インターミッション3[録画なし] • 12:00-12:20 • 7.4 khcoder で計量テキスト 分析 [録画]
  3. 7.1 テキスト分析 でできること

  4. はじめに; (経済学や経営学にとっての)テキスト分析 • これまでとりあげたデータ (企業情報, 特許, 論文, スクレイピング で取れるデータ etc…)

    にはいろいろなテキストが含まれている • だけど、処理の仕方がわからないため今までどちらかというと放 置していた • たとえば、特許の請求項 (Claim) の文字数をカウントするなどはあったけ れど • ところが、自然言語処理 (Natural Language Processing) の技法 が発達したため、適用できる分野が増えつつあるところ • 今回は、そんな自然言語処理で今までに紹介したデータをいろい ろと調理してみる回です
  5. これまでメインに使っていたところ 出典: ローソンの報告書 売上や営業総収入や営業利益がどうなっているか グラフがどんな風に推移しているか

  6. すでにつかえるところ 出典: ローソンの報告書 新規事業にどのくらい取り組んでいるか CEOがどんな表情をしているか

  7. テキストを使うことで分析出来そうなこと • 口コミの製品ブランディングへの効果 • 組織体制の変化 • 特許の新規性の測定 • 論文のトレンド変化 •

    スタートアップがいかに資金を調達しているか • 企業の打ち出したい姿と、市場での評価の差分
  8. Janka I. Stoker,Harry Garretsen,and Luuk J. Spreeuwers (2016) The Facial

    Appearance of CEOs: Faces Signal Selection but Not Performance, PLos One doi: 10.1371/journal.pone.0159950
  9. 今日の流れ • Step1; 分析を行うための前環境を準備する • 分かち書き, 形態素解析, 正規化 etc… •

    Step2; テキストを取得する (これまでの数回で詳説したため省 略) • Step3; テキストを処理する • Step4; テキストを分析する
  10. テキスト分析のレシピ • Jupyter Notebook/Google Colaboratory • Mecab • Mecab-ipadic-neologd •

    Mecab-python-windows (Windows ユーザーの場合) 利用するもの • テキストデータ • 企業の概要データ • 日本の社会科学研究者リスト データセット
  11. 今日利用するデータセット +Notebook • https://drive.google.com/open?id=1psenA lby9XPL-np_yZX70GFYvZps-hGD

  12. 下準備 Mecab のインストールと 国語の授業を思い出す

  13. 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解 可能 不可能 不可能 不可能
  14. 形態素解析 • 文章を意味を持つ最小限の単位に分解すること • 例 • 「何処の誰か知らないが出会う前の君に捧ぐ。この世未来切り開く何 でもない君に」(Hello song, 星野源)

    → • 「何処/の/誰/か/知ら/ない/が/出会う/前/の/君/に/捧ぐ/。/この/世 /未来/切り/開く/何でも/ない/君/に」 • 主語と述語と目的語… など, 品詞ごとに分割し文章の意味合いを抽出することを 可能にする。
  15. 日本語の品詞 Source: https://commons.wikimedia.org/wiki/File:%E6%97%A5%E6%9C% AC%E8%AA%9E%E6%96%87%E6%A7%8B%E9%80%A0.svg

  16. 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/
  17. Mecab のインストール (Windows ver.) • 言語を指定する • 文字コードを指定する

  18. Mecab のインストール (Mac ver.) • Mecab とMecab 辞書のインストールをする brew install

    mecab brew install mecab-ipadic
  19. Mecab のテストをする (Windows 版) • 以下の通り, 分かち書きと品詞への分類が行われる

  20. Mecab のテストをする (Mac版)

  21. b. Mecab-ipadic-neologd のイ ンストール

  22. Mecab-ipadic-NEOlogd とは • https://github.com/neologd/ mecab-ipadic- neologd/blob/master/READ ME.ja.md • 多数のWeb上の言語資源から 得た新語を追加することでカ

    スタマイズした MeCab 用の システム辞書 • Web上の文書の解析をする際 に活用できる • 収録データ(一部) • 人名(姓/名)エントリデータ • ニュース記事から抽出した新語 や未知語をエントリ化したデー タ • ネット上で流行した単語や慣用 句やハッシュタグをエントリ化 したデータ • Web からクロールした大量の 文書データ • 一般名詞/固有名詞の表記ゆれ 文字列とその原型の組のリスト をエントリ化したデータ
  23. Mecab-ipadic-neologd を取得する git clone –depth 1 https://github.com/neologd/mecab-ipadic-neologd.git (git のインストールが必要)

  24. 7zip を使って辞書ファイルを解凍する (Windows の場合) 7zip のインストールが必要

  25. 辞書ファイルを作成する $ mecab-dict-index –d /Mecab/dic/ipadic –u Neologd.20190625-u.dic -f utf-8 –t

    utf-8 mecab-user-dict-seed.20190624.csv
  26. 辞書をMeCab ディレクトリ内に配置

  27. C:¥Program Files¥MeCab¥etc 以下にある mecabrc ファイルを差し替える NEologd の辞書を参照するようになる

  28. 固有名詞が取り出せるか確認する うさまると、田村麻美以外の固有名詞は抽出できる

  29. c. mecab-python-windows の インストール

  30. mecab-python-windows のインストール • Notebook 上で, !pip install mecab-python-windows を実行する

  31. ここまでが下ごしらえ

  32. ここまでのまとめ • テキスト分析が出来るようになると、これまであまり分析でき ていなかった箇所も見られるようになります • 自然言語処理なので、文字コードやOSの違いにより処理の仕方 が違ったりしますが、下準備をしておくとこの後の作業が楽に なります

  33. 7.2 wordcloud を書いてみよう

  34. 7.2 の流れ • テキストを取得する • テキストを分かち書きする • 品詞を数えてみる • WordCloud

    を書いてみる
  35. 0. テキストを取得する • Twitter からデータを集めてくる (第三回参照)

  36. 0. テキストを取得する • あつまる

  37. 1. 分かち書きする • 品詞ごとに言葉を取り出す • Mecab (7.1参照)で分かち書 きする • 品詞ごとに、出てきたター

    ムの数をカウントする • While 文とif 文の組み合わせ • 参照 • https://qiita.com/ganariya/it ems/68fdcfed953f066ad4b7
  38. 1. 分かち書きする • 品詞ごとの単語数をカウントする • 名詞や動詞や記号が多い感じ

  39. Wordcloud • 言葉の出現頻度を プロットする • マスク画像を使えば 任意の画像上にプロット することが可能 http://kennycason.com/posts/2014-07-03-kumo-wordcloud.html

  40. Wordcloud • “Mecabと WordCloud を使ってワードクラ ウドを作る” Notebook を参照のこと • https://drive.google.com/open?id=1ps

    enAlby9XPL-np_yZX70GFYvZps-hGD
  41. 2. Wordcloud • 必要なパッケージをインポートする • 開くファイルを指定する • 今回は, DBpedia.org から取得した経済学者の概要を抽出し,

    UTF-8 で エンコーディングしたテキストデータとして保存 • データの取得の仕方は前回講義を参照 • マスク画像も別途用意(使わない場合はコメントアウト)
  42. 2. wordcloud • Mecab パッケージを用いて, 分かち書きを行う • Text.replace() を用いて, 改行を取り外す

    • Windows の場合には ¥r¥n
  43. 2. Wordcloud • 抽出した用語から, 助詞と助動詞を取り外す • ストップワード (解析対象に含めないターム) を指定する

  44. 2. Wordcloud • Wordcloud関数を用いて, ワードクラウドを出力する • Font_path で利用する日本 語フォントを指定する(今回 は同じパスに配置)

    • Mask で, プロットするマス ク画像を指定する • Stopwords に, プロットしな いタームを指定したベクト ル stop_wordsを指定する • wordc.to_file でファイルの 保存名を指定する
  45. 2. Wordcloud • 出力結果 • Dbpediaから取得した経済学者の概要データが, 分かち書きされている

  46. Wordcloudの出力結果 • 経済学者 • 経営学者

  47. Wordcloud の出力結果 • 社会学者 • 法学者

  48. Wordcloud の出力結果 • 一橋大学 ?

  49. Wordcloud の出力結果 • 早稲田大学 ?ハロウィンパーティー はどうやら、BOTを 拾っているらしい

  50. Wordcloud の出力結果 • 学習院大学 ?ラクロス部はどうやら すごくアクティブに SNSで活動しているらしい

  51. まとめ; これっぽい - なんとなくの傾向を可 視化する - レポートやインゼミの 表紙がこれだと相手に 対する示威行為になる 気がする

    - リアルタイムのリアク ションを可視化する (ツ イッターで時々みつけ るやつ)
  52. 7.3 word2vecとTopicModel

  53. 7.3 でやりたいこと • とりあえず日本語話者がサザエさんと大学ネタとアナゴさんが 好きなことが分かったので、もうちょっと詳しく解析してみる • 今回使うものは, Word2Vec と Topic

    モデル
  54. Word2vec • テキストデータを解析し, 各 単語の意味をベクトル表現 化する • 単語間の近接性などを測定 することが可能に •

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

    隠れ層から出力層への重み行列; W’ をそれぞれ計算する • このとき、重み行列の各行のベクトルが, 単語の特徴を示すベクトルになる 引用; https://www.randpy.tokyo/entry/word2vec_skip_gram_model
  56. word2vec • “Mecabと word2vec で解析する” Notebook を参照のこと • https://drive.google.com/open?id=1ps enAlby9XPL-np_yZX70GFYvZps-hGD

  57. Word2vec • 必要なパッケージをインポートする • ファイルを読み込み, 分かち書きしたファイルを出力する

  58. Word2vec • 出力結果

  59. Word2vec • 分かち書きしたファイルに 基づき, Word2vec モデル を生成する • このとき •

    Min_count; 単語の出現回数 • Window; 入力単語からの最 大距離 • Size; ベクトルの次元数 • Sg=1; skip-gram 形式での モデリング • iter; 学習の反復回数 • 最後にファイルを保存する
  60. わりと時間がかかるので, コーヒーでも飲んで待つ

  61. 2. Word2Vec • 学習したファイルを読み込む • 抽出したベクトルをリストアップする

  62. 2. Word2Vec • 経営学っぽいタームが抽出されている

  63. 2. Word2vec • 特定のタームと類似している単語リストを抽出する

  64. 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
  65. 2. Word2vec • 特定タームのベクト ル表現を確認する 出力結果

  66. 2. word2vec • 語句ベクトル同士で近い言葉のリストを抽出する • 東大と一橋なので, 「組織学会」などそれっぽいタームが。

  67. 2. word2vec • 語句同士の類似度を抽出する • 一橋大学(の商学部)は九大よりは東大に近い • 一橋大学(の商学部)は経済学よりもイノベーションのほうが近い • 一橋大学(の商学部)は組織学会にとても近い

  68. 3. Topic モデル • 文章における単語の出現確率 を推定するためのモデル • 出現する単語の種類と数が, トピック(カテゴリ) によって

    異なると仮定する • 各文章は複数のトピックによっ て構成されており, 各トピック の単語分布を合算された形で単 語が生成される https://qiita.com/icoxfog417/items/7c944cb29dd7cdf5e2b1
  69. 3. Topic モデル • “トピックモデルで解析する” Notebook を参照のこと • https://drive.google.com/open?id=1psenAlby9XPL- np_yZX70GFYvZps-hGD

  70. 3. Topic モデル • 必要なパッケージ をインポートする • 元文章からターム を取り出し, キー

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

  72. 3. Topic モデル • 辞書とコーパスをそれぞれ作成する • no_below; 2回以下表示しない単語は無視する • no_abobe;

    全体の文章の10%以上に出現するタームを無視する
  73. 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
  74. 3. Topic モデル • 辞書とコーパスを読み込む

  75. 3. Topic モデル • topic_N で表示するトピック数を指定し, 出力する

  76. 3. Topic モデル

  77. まとめ; テキスト分析で出来そうなこと • WordCloud • みんなのなんとなくのイメージの可視化 • Word2vec • 言葉のベクトル化により,

    モデルへの組み込みが可能 • 被説明変数?説明変数? • Topic モデル • グルーピングの可視化 • 類似語の提案
  78. まとめ(2); じゃあ、経済学/経営学でどう使えるの? (a.) 不定形のデータをベクトル化してモデリングする (b.) 被説明変数または説明変数のひとつとして、多変量解析モデ ルに組み込む • 新規性の測定など

  79. 今日の実習 • テキストデータ取得して、そ れを用いて, 分析を行いま しょう • Wordcloud の作成 •

    Word2vec モデルの作成 • Topic モデルの作成 などを試行して, 結果を出力す ること Extended;) Dbpedia.org を使いテキスト データを取得して解析する
  80. 7.4 計量テキスト分析をやろう

  81. 計量テキスト分析 • 語句と語句の結びつきや、関係 性について可視化を行う • 多変量のテキストデータから意 味や傾向を取り出すことに活用 する • 実用例

    • 松井剛「ことばとマーケティン グ」 • 佐々木ほか (2020)新型コロナウィ ルス感染症への組織対応に関する 緊急調査: 第三報 • http://pubs.iir.hit- u.ac.jp/admin/ja/pdfs/show/2393 • COVID-19 に関連して、企業が どのように対応したかをサーベ イの自由記述欄から可視化する
  82. 計量テキスト分析(cont.) • COVID-19 調査

  83. このモジュールでやること •Dbpedia.org の東証一部/東証二部/マザーズの 会社概要データを持ってきて, 1. どのようなことばがよく出てくるのかを知りたい 2. どのようなことばと、どのようなことばがつながっ ているのかを知りたい 2020/7/5

    83
  84. レシピ 1. KHCoder をインストールする 2. Dbpedia.org から SPARQL Endpoint 経由でデータセットを取得する

    • 前回の内容 3. Manaba からデータセットをダウンロードする 4. KHCoder に定点調査の自由記述データを読み込む 5. データ分析前の処理をする 6. 頻出語の取り出しを行う 7. 共起ネットワークを書く 8. 属性情報ごとの特徴を抽出する 9. 対応分析を行う 2020/7/5 84
  85. 1. KHCoder をインストールする • KHCoder とは? • テキスト型データの計量的な内容分析(計量 テキスト分析)もしくはテキストマイニング のためのフリーソフトウェアである。各種の

    検索を行えるほか、どんな言葉が多く出現し ていたのかを頻度表から見ることができる。 さらに多変量解析によって、一緒に出現する ことが多い言葉のグループや、同じ言葉を含 む文書のグループを見ることで、データ中に 含まれるコンセプトを探索できる。 • また一部の文書群に注目した場合に、その文 書群に特に多く出現する言葉をリストアップ することで、その文書群の特徴を探索できる。 あるいは分析者が指定した基準によって、文 書の分類を自動的に行うこともできる。 • 引用: https://ja.wikipedia.org/wiki/KH_Coder 2020/7/5 85
  86. 1. KHCoder をインストールする • https://khcoder.net/dl3. htmlにアクセスする • Download をクリックす る

    2020/7/5 86
  87. 1. KHCoder をインストールする • ダウンロードしたファイル (khcoder-3a16.exe) を選択 し, クリックする •

    Unzip を選択し, ファイルを 展開する 2020/7/5 87
  88. 1. Khcoder をインストールする • スタートメニューなどに登録して, 起動する 2020/7/5 88

  89. 1. KHCoder をインストールする • アプリケーションが表示される 2020/7/5 89

  90. 1. Khcoder をインストールする • Tips: Mac な場合 • かなりめんどくさい •

    Perl やR の個別パッケージの導 入が必要 • 有償版のインストールパッケー ジが提供されている. • https://khcoder.stores.jp/#!/it ems/536a53268a56108414000 1dd 2020/7/5 90
  91. 2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • 前回の講義で説明した Dbpedia.org

    の SPARQL Endpoint から, 東証一部, 東証二部, およびマザーズの企業名とその企業概要を 取得する • 日経NEEDS などに採録されたオフィシャルなデータではなくて、 Wikipedia で執筆された企業の「紹介文」 2020/7/5 91
  92. 2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • Jupyter Notebook

    で以下のように記述する (詳しくは前回配布 した notebook を参照のこと)
  93. 2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • 以下の通り, 企業名と概要がアウトプットされる

  94. 2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • 同様の作業を, 東証一部と東証二部で繰り返す

    #東証マザーズ上場企業の情報を取得する sparql2 = SPARQLWrapper(endpoint='http://ja.dbpedia.org/sparql', returnFormat='json') sparql2.setQuery(""" PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> select distinct ?name ?abstract where { ?company <http://dbpedia.org/ontology/wikiPageWikiLink> <http://ja.dbpedia.org/resource/Category:東証マザーズ上場企業> . ?company rdfs:label ?name . ?company <http://dbpedia.org/ontology/abstract> ?abstract . } """) results2 = sparql2.query().convert()
  95. 2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • Excel or

    panda で適宜整形する
  96. 3. KHCoder にデータを読み込む • データ • 東証一部/東証二部/マザーズ: • https://www.dropbox.com/s/9jtwyxw4ae3nntz/%E6%9D%B1%E8%A8%BC%E4%B 8%80%E9%83%A8%E6%9D%B1%E8%A8%BC%E4%BA%8C%E9%83%A8%E3%83%9

    E%E3%82%B6%E3%83%BC%E3%82%BA.xlsx?dl=0 • 経済学者/経営学者/社会学者: • https://www.dropbox.com/s/jmvz8fv25aqecsj/%E6%97%A5%E6%9C%AC%E3%81 %AE%E7%B5%8C%E6%B8%88%E7%B5%8C%E5%96%B6%E7%A4%BE%E4%BC%9 A%E6%B3%95%E5%AD%A6%E8%80%85%E4%B8%80%E8%A6%A7.xlsx?dl=0 • ヒップホップ/ロック/フォークグループ: • https://www.dropbox.com/s/5iye8puor1eg52r/%E6%97%A5%E6%9C%AC%E3%81 %AE%E3%83%92%E3%83%83%E3%83%97%E3%83%9B%E3%83%83%E3%83%97% E3%83%AD%E3%83%83%E3%82%AF%E3%83%95%E3%82%A9%E3%83%BC%E3% 82%AF%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97.xlsx?dl=0 2020/7/5 96
  97. 3. KHCoder に定点調査の自由記述データ を読み込む • KHCoder を開く • [プロジェクト] –[新規]

    を選択する 2020/7/5 97
  98. 3. KHCoder にデータを読み込む • [参照]をクリックして, 分析対 象ファイルを選ぶ • 分析対象とする列について[詳 細]

    をクリックする • OK をクリックする • ファイルが読み込まれる 2020/7/5 98
  99. 4. データ分析前の処理をする • [前処理] – [テキストのチェッ ク]をクリックする • OKをクリックする 2020/7/5

    99
  100. 4. データ分析前の処理をする • 修正が必要である旨メッセージが表示される • [画面に表示] をクリックして, 問題点をチェックする • “テキストの自動修正”

    より[実行]をクリックする 2020/7/5 100
  101. 4. データ分析前の処理をする • 問題点が修正される. • [閉じる]をクリックする. 2020/7/5 101

  102. 4. データ分析前の処理をする • [前処理] – [前処理の実行] を選択する • OKをクリックする 2020/7/5

    102
  103. 4. データ分析前の処理をする • 正常に処理が終了した場合, 以 下のメッセージが表示される. • 集計値が表示される 2020/7/5 103

  104. 4. データ分析前の処理をする • 複合語の検出を行う • [前処理]-[複合語の検出]-[茶筌 を利用]をクリックする

  105. 4. データ分析前の処理をする • 解析が終わると, 複合語のリ ストが抽出される

  106. 5. 頻出語の取り出しを行う • [ツール]-[抽出語]-[抽出語 リスト(Excel)]を選択する 2020/7/5 106

  107. 5. 頻出語の取り出しを行う • “抽出語リストの形式” • 品詞別 • “記入する数値” • 出現回数(TF)

    • “出力するファイルの形式” • Excel (*.xlsx) を選択し, OK をクリックする 2020/7/5 107
  108. 5. 頻出語の取り出しを行う • 品詞ごとにタームが抽出される 2020/7/5 108

  109. 5. 頻出語の取り出しを行う • 頻出語を選択した場合 2020/7/5 109

  110. 6. ストップワードの設定 • 品詞リストをみると, 企業 データでは当たり前のものが たくさん含まれている • 解析に使わない言葉は、ス トップワードとして指定する

    必要がある • [前処理]から[語の取捨選択] をクリックする
  111. 6. ストップワードの設定 • Force ignore “使用しない語の指定” にス トップワードを指定する • 株式会社

    • 本社 • 会社 • 企業 • LTD. • CO., • CORPORATION • INC. • ょ • CO.,LTD. • HOLDINGS • THE • ELECTRIC • コーポレート など….
  112. 6. ストップワードの指定 • --cell– は消さないようにして, 項目に指定しOK をクリックする

  113. 6. 共起ネットワークを書く • [ツール]-[抽出語]-[共起 ネットワーク]を選択する 2020/7/5 113

  114. 6. 共起ネットワークを書く • パラメータを指定して, OK をクリックする. • “動詞” のチェックを外す 2020/7/5

    114
  115. 6.共起ネットワークを書く • 共起では, ある特定の タームで共に出てくる語 の確認ができる • 東証一部と東証二部とマ ザーズでは企業が取り組 んでいることが違う

    • マザーズはインターネッ ト系, 東証二部は自動車や 食品, 東証一部は持ち株な どのタームが出ている 2020/7/5 115
  116. 7. 対応分析を行う • 抽出語を用いた対応分析を行 い、その結果を二次元の散布 図に示す • 出現パターンの似通った語に はどのようなものがあったの か探ることができる

    • [ツール]-[抽出語]-[対応分析] を選択する 2020/7/5 116
  117. 7. 対応分析を行う • “対応分析のオプション” – “分析に仕様するデータ表の 種類”から, [抽出語 x 外部変

    数] から分類を選択し, OK を クリックする 2020/7/5 117
  118. 7. 対応分析を行う • マザーズ • 東証一部 • 東証二部 ごとに特徴的な言葉が抽出される 2020/7/5

    118
  119. 8. 多次元尺度構成法で解析する • 近接している語のパターンを 解析できる • [ツール]-[抽出語]-[多次元尺 度構成法]を選択する

  120. 8. 多次元尺度構成法で解析する • パラメータを適宜指定する • 最小出現数を調整すれば, マッピングできる語の数が調 整できる • OK

    をクリックする
  121. 8. 多次元尺度構成法で解析する • 近似した言葉がマッピングさ れる • 近いところにマッピングされて いる語は, 似たようなコンテク ストで出現している

    • バブルをクリックすると, 該 当する語が利用されているテ キストが確認できる
  122. 9. マッチングルールを作成する • 特定の語のグループを作成し, それらでグルーピングするこ とで特徴を抽出する • 今回の場合, 自動車産業, 電気

    産業, 銀行, ICT など産業分類 ごとにグルーピングする • 記述方法 *グループ名1 みかん or いちご or りんご *グループ名2 ごりら or らっこ or こんどる *グループ名3 るびー or びーどる
  123. 9. マッチングルールを作成する • 例.

  124. 10. コーディングルールに基づき単純推 計する • [ツール]-[コーディング]-[単 純推計] をクリックする

  125. 10. コーディングルールに基づき単純推 計する • コーディングルール・ファイ ルから, コーディングルール を記述したテキストファイル を指定する •

    集計をクリックする
  126. 10. コーディングルールに基づき単純推 計する • コーディングにマッチする文 章がそれぞれ抽出される • IT や持株会社群が多そうなこ とが確認できる

  127. 11. コーディングルールに基づきクロス 集計する • [ツール]-[コーディング]-[ク ロス集計] をクリックする

  128. 11. コーディングルールに基づきクロス 集計する • クロス集計[分類]を選択した上で, [集計] をクリックする • マザーズはITの割合が高いことが確認できる

  129. 11. コーディングルールに基づきクロス 集計する • ヒートマップを作成する • バブルマップを作成する

  130. 12. Jacaard 係数に基づき類似度行列を導 出する • [ツール]-[コーディング]-[類 似度行列]をクリックする

  131. 13. コーディングルールに基づき対応分 析を行う • [ツール]-[コーディング]-[対 応分析]をクリックする

  132. 13. コーディングルールに基づき対応分 析を行う • コードx外部変数から”分類”を 選択する • “原点を拡大” を選択する •

    OK をクリックする
  133. 13. コーディングルールに基づき対応分 析を行う • マザーズはIT と製薬系 (おそ らくバイオスタートアップ) • 東証一部は自動車と銀行

    • 東証二部は半導体が近いこと が確認できる • 市場ごとの特性が見える
  134. 14. コーディングルールに基づき共起 ネットワーク分析を行う • [ツール]-[コーディング]-[共 起ネットワーク] をクリック する

  135. 14. コーディングルールに基づき共起 ネットワーク分析を行う 語 – 外部変数・見出し から 分類または企業名 を選択する

  136. 14. コーディングルールに基づき共起 ネットワーク分析を行う • 分類と企業名でマッピングする • 分類とマッピングルールでプ ロットする

  137. 今日の実習 (windows ユーザ向け) • アップロードされている • (1) 東証一部/二部/マザーズの 企業概要データ •

    (2)日本の経済/経営/社会/法学 者の概要データ • (3)日本のロック/ヒップホップ /フォークグループの概要デー タ を用いて, テキスト分析を行う • 語句の抽出 • 共起ネットワーク • 対応分析 • 多次元尺度構成法 • コーディングルールの設定 などを行い解析すること
  138. None
  139. 共起ネットワーク • KHCoder で共起ネットワー クを作成(いくつかストップ ワードを指定済み)。 • 経済学者は政策と、経済学者 と社会学者は社会と、経営学 者は企業と共起する。法学者

    は弁護士や民法や憲法と。こ れもいろんな意味で妥当。
  140. 対応分析 • 経済と経営が近い距離に • マルクスは経営の近くに

  141. まとめ • 計量テキスト分析を使うと、特定の事象に対するグループ間の 反応などが可視化できます • きれいな解析をするためには、品詞ごとの整理や、ストップ ワードの指定が大切

  142. THANKS yasushi.hara@r.hit-u.ac.jp

  143. Appendix. 感情分析

  144. 5. 感情分析 • Ekman and Friesen (1971) • 表情の研究を通じ, 感情表現には普遍的

    な6つの感情 (怒り, 嫌悪, 恐怖, 喜び, 悲 しみ, 驚き) があることを示す. • ただし, 西洋文化圏と東洋文化圏では表 情の表出に違いがある. • 参照 • 日本人の基本6感情の表情は「エクマン理 論」に従うか? – 人工知能を用いて検証 • https://academist- cf.com/journal/?p=10185 • https://ocw.mit.edu/courses/brain-and- cognitive-sciences/9-00sc-introduction- to-psychology-fall-2011/emotion- motivation/discussion-emotion/ © Paul Ekman. All rights reserved.
  145. 利用する Notebook • Google Colaboratory • https://colab.research.google.com/driv e/1EZ3NMw3I9FrjTFEPBQQRiD4TtUD zJ4YF

  146. 5. 感情分析 • git から sentiment_ja パッ ケージを取得する • https://github.com/sugiyam

    ath/sentiment_ja • 展開したディレクトリ (sentiment_ja) に移動する
  147. 5. 感情分析 • “!python setup.py install” でインストールする

  148. 5. 感情分析 • Analyzer パッケージをインポートして, 文字列を取り込む • 「三田でラーメン二郎の本店でヤサイカラメアブラマシマシの二郎を 食べるのは素晴らしい」 •

    「行列は切ない」
  149. 5. 感情分析 • 出力結果 • [{'sentence': '三田でラーメン二郎の本店でヤサイカラメアブラマシマ シの二郎を食べるのは素晴らしい', 'emotions': {'happy':

    '7.0', 'sad': '1.0', 'disgust': '1.0', 'angry': '1.0', 'fear': '1.0', 'surprise': '12.0'}}, {'sentence': '行列は切ない', 'emotions': {'happy': '1.0', 'sad': '8.0', 'disgust': '5.0', 'angry': '3.0', 'fear': '1.0', 'surprise': '1.0’}}] • Happy, sad, disgust, angry, fear, surprise で分類される
  150. 参考文献 • pythonでgensimを使ってトピックモデル(LDA)を行う • https://paper.hatenadiary.jp/entry/2016/11/06/212149 • 「OK word2vec ! "マジ卍"の意味を教えて」

    Pythonで word2vec実践してみた • https://www.randpy.tokyo/entry/python_word2vec • models.word2vec – Word2vec embeddings • https://radimrehurek.com/gensim/models/word2vec.html • 15分でできる日本語Word2Vec • https://qiita.com/makaishi2/items/63b7986f6da93dc55edd
  151. 参考文献(2) • Pythonで文字列を分割(区切り文字、改行、正規表現、文字 数) • https://note.nkmk.me/python-split-rsplit-splitlines-re/ • WindowsでNEologd辞書を比較的簡単に入れる方法 • https://qiita.com/zincjp/items/c61c441426b9482b5a48

    • Windows 10 64bit で python + Mecab • https://qiita.com/kuro_hane/items/64e39d5deeb3f876b421 • Windows10(64bit)/Python3.6でmecab-python環境構築 • http://blog.livedoor.jp/oyajieng_memo/archives/1777479.html
  152. 参考文献(3) • MeCab: Yet Another Part-of-Speech and Morphological Analyzer •

    https://taku910.github.io/mecab • mecab-ipadic-NEologd : Neologism dictionary for MeCab • https://github.com/neologd/mecab-ipadic-neologd • Word2Vecを用いた類義語の抽出が上手く行ったので、分析を まとめてみた • https://qiita.com/To_Murakami/items/cc225e7c9cd9c0ab641e • 自然言語処理による文書分類の基礎の基礎、トピックモデルを 学ぶ • https://qiita.com/icoxfog417/items/7c944cb29dd7cdf5e2b1
  153. 参考文献(4) • 日本語ツイートをEkmanの基本6感情で評価 • https://qiita.com/sugiyamath/items/7cabef39390c4a07e4d8 • ツイートから学習した感情分析モデル • https://qiita.com/sugiyamath/items/dc342d53b4e4e4ef9308