Slide 1

Slide 1 text

一橋大学 「経済学のための 実践的データ分析」 2020秋: 8/12 8.テキスト分析をやってみよう 8.1.テキスト分析でできること 8.2.WordCloudを書いてみよう 8.3.Word2vecやTopicモデル 8.4.計量テキスト分析をやろう APPENDIX 感情分析 一橋大学大学院経済学研究科 原泰史 [email protected]

Slide 2

Slide 2 text

今日の内容 • 13:00-13:15 • プレ講義 [録画なし] • 13:15-13:35 • 8.1テキスト分析でできること [録画あり] • 13:35-13:40 • インターミッション[録画なし] • 13:40-14:00 • 8.2 wordcloud を書いてみ よう [録画あり] • 14:00-14:05 • インターミッション2[録画なし] • 14:05-14:25 • 8.3 word2vec やtopic model [録画] • 14:25-14:30 • インターミッション3[録画なし] • 14:30-14:50 • 8.4 khcoder で計量テキスト 分析 [録画]

Slide 3

Slide 3 text

8.1 テキスト分析 でできること

Slide 4

Slide 4 text

はじめに; (経済学や経営学にとっての)テキスト分析 • これまでとりあげたデータ (企業情報, 特許, 論文, スクレイピング で取れるデータ etc…) にはいろいろなテキストが含まれている • だけど、処理の仕方がわからないため今までどちらかというと放 置していた • たとえば、特許の請求項 (Claim) の文字数をカウントするなどはあったけ れど • ところが、自然言語処理 (Natural Language Processing) の技法 が発達したため、適用できる分野が増えつつあるところ • 今回は、そんな自然言語処理で今までに紹介したデータをいろい ろと調理してみる回です

Slide 5

Slide 5 text

これまでメインに使っていたところ 出典: ローソンの報告書 売上や営業総収入や営業利益がどうなっているか グラフがどんな風に推移しているか

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

テキストを使うことで分析出来そうなこと • 口コミの製品ブランディングへの効果 • 組織体制の変化 • 特許の新規性の測定 • 論文のトレンド変化 • スタートアップがいかに資金を調達しているか • 企業の打ち出したい姿と、市場での評価の差分

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

今日の流れ • Step1; 分析を行うための前環境を準備する • 分かち書き, 形態素解析, 正規化 etc… • Step2; テキストを取得する (これまでの数回で詳説したため省 略) • Step3; テキストを処理する • Step4; テキストを分析する

Slide 10

Slide 10 text

テキスト分析のレシピ • Jupyter Notebook/Google Colaboratory • Mecab • Mecab-ipadic-neologd • Mecab-python-windows (Windows ユーザーの場合) 利用するもの • テキストデータ • 企業の概要データ • 日本の社会科学研究者リスト データセット

Slide 11

Slide 11 text

今日利用するデータセット +Notebook • https://drive.google.com/open?id=1psenA lby9XPL-np_yZX70GFYvZps-hGD

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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解 可能 不可能 不可能 不可能

Slide 14

Slide 14 text

形態素解析 • 文章を意味を持つ最小限の単位に分解すること • 例 • 「何処の誰か知らないが出会う前の君に捧ぐ。この世未来切り開く何 でもない君に」(Hello song, 星野源) → • 「何処/の/誰/か/知ら/ない/が/出会う/前/の/君/に/捧ぐ/。/この/世 /未来/切り/開く/何でも/ない/君/に」 • 主語と述語と目的語… など, 品詞ごとに分割し文章の意味合いを抽出することを 可能にする。

Slide 15

Slide 15 text

日本語の品詞 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

Slide 16

Slide 16 text

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/

Slide 17

Slide 17 text

Mecab のインストール (Windows ver.) • 言語を指定する • 文字コードを指定する

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Mecab-ipadic-NEOlogd とは • https://github.com/neologd/ mecab-ipadic- neologd/blob/master/READ ME.ja.md • 多数のWeb上の言語資源から 得た新語を追加することでカ スタマイズした MeCab 用の システム辞書 • Web上の文書の解析をする際 に活用できる • 収録データ(一部) • 人名(姓/名)エントリデータ • ニュース記事から抽出した新語 や未知語をエントリ化したデー タ • ネット上で流行した単語や慣用 句やハッシュタグをエントリ化 したデータ • Web からクロールした大量の 文書データ • 一般名詞/固有名詞の表記ゆれ 文字列とその原型の組のリスト をエントリ化したデータ

Slide 23

Slide 23 text

Mecab-ipadic-neologd を取得する git clone –depth 1 https://github.com/neologd/mecab-ipadic-neologd.git (git のインストールが必要)

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

辞書をMeCab ディレクトリ内に配置

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

ここまでが下ごしらえ

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

8.2 wordcloud を書いてみよう

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

1. 分かち書きする • 品詞ごとに言葉を取り出す • Mecab (7.1参照)で分かち書 きする • 品詞ごとに、出てきたター ムの数をカウントする • While 文とif 文の組み合わせ • 参照 • https://qiita.com/ganariya/it ems/68fdcfed953f066ad4b7

Slide 38

Slide 38 text

1. 分かち書きする • 品詞ごとの単語数をカウントする • 名詞や動詞や記号が多い感じ

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

2. Wordcloud • 必要なパッケージをインポートする • 開くファイルを指定する • 今回は, DBpedia.org から取得した経済学者の概要を抽出し, UTF-8 で エンコーディングしたテキストデータとして保存 • データの取得の仕方は前回講義を参照 • マスク画像も別途用意(使わない場合はコメントアウト)

Slide 42

Slide 42 text

2. wordcloud • Mecab パッケージを用いて, 分かち書きを行う • Text.replace() を用いて, 改行を取り外す • Windows の場合には ¥r¥n

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

2. Wordcloud • Wordcloud関数を用いて, ワードクラウドを出力する • Font_path で利用する日本 語フォントを指定する(今回 は同じパスに配置) • Mask で, プロットするマス ク画像を指定する • Stopwords に, プロットしな いタームを指定したベクト ル stop_wordsを指定する • wordc.to_file でファイルの 保存名を指定する

Slide 45

Slide 45 text

2. Wordcloud • 出力結果 • Dbpediaから取得した経済学者の概要データが, 分かち書きされている

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

まとめ; これっぽい - なんとなくの傾向を可 視化する - レポートやインゼミの 表紙がこれだと相手に 対する示威行為になる 気がする - リアルタイムのリアク ションを可視化する (ツ イッターで時々みつけ るやつ)

Slide 52

Slide 52 text

8.3 word2vecとTopicModel

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

Word2vec • テキストデータを解析し, 各 単語の意味をベクトル表現 化する • 単語間の近接性などを測定 することが可能に • Skip-Gram Model • 入力された単語を元に周辺語 を出力する, 入力層, 隠れ層, 出力層から構成されたニュー ラルネットワークを規定する 引用; https://www.randpy.tokyo/entry/word2vec_skip_gram_model

Slide 55

Slide 55 text

Word2Vec • 文を単語に分かち書きし, そ れぞれ入力層と出力層にイ ンプットしニューラルネッ トに学習させていく • 入力層から隠れ層への重み行列; W 隠れ層から出力層への重み行列; W’ をそれぞれ計算する • このとき、重み行列の各行のベクトルが, 単語の特徴を示すベクトルになる 引用; https://www.randpy.tokyo/entry/word2vec_skip_gram_model

Slide 56

Slide 56 text

word2vec • “Mecabと word2vec で解析する” Notebook を参照のこと • https://drive.google.com/open?id=1ps enAlby9XPL-np_yZX70GFYvZps-hGD

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

Word2vec • 出力結果

Slide 59

Slide 59 text

Word2vec • 分かち書きしたファイルに 基づき, Word2vec モデル を生成する • このとき • Min_count; 単語の出現回数 • Window; 入力単語からの最 大距離 • Size; ベクトルの次元数 • Sg=1; skip-gram 形式での モデリング • iter; 学習の反復回数 • 最後にファイルを保存する

Slide 60

Slide 60 text

わりと時間がかかるので, コーヒーでも飲んで待つ

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

2. Word2vec • 特定タームのベクト ル表現を確認する 出力結果

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

3. Topic モデル • 文章における単語の出現確率 を推定するためのモデル • 出現する単語の種類と数が, トピック(カテゴリ) によって 異なると仮定する • 各文章は複数のトピックによっ て構成されており, 各トピック の単語分布を合算された形で単 語が生成される https://qiita.com/icoxfog417/items/7c944cb29dd7cdf5e2b1

Slide 69

Slide 69 text

3. Topic モデル • “トピックモデルで解析する” Notebook を参照のこと • https://drive.google.com/open?id=1psenAlby9XPL- np_yZX70GFYvZps-hGD

Slide 70

Slide 70 text

3. Topic モデル • 必要なパッケージ をインポートする • 元文章からターム を取り出し, キー ワードを抽出する • 今回のデータの場 合, 社会学者ひとり ひとりのタームが 抽出されたベクト ルが形成される 参考文献; https://paper.hatenadiary.jp/entry/2016/11/06/212149

Slide 71

Slide 71 text

3. Topic モデル • 出力結果

Slide 72

Slide 72 text

3. Topic モデル • 辞書とコーパスをそれぞれ作成する • no_below; 2回以下表示しない単語は無視する • no_abobe; 全体の文章の10%以上に出現するタームを無視する

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

3. Topic モデル • 辞書とコーパスを読み込む

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

3. Topic モデル

Slide 77

Slide 77 text

まとめ; テキスト分析で出来そうなこと • WordCloud • みんなのなんとなくのイメージの可視化 • Word2vec • 言葉のベクトル化により, モデルへの組み込みが可能 • 被説明変数?説明変数? • Topic モデル • グルーピングの可視化 • 類似語の提案

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

今日の実習 • テキストデータ取得して、そ れを用いて, 分析を行いま しょう • Wordcloud の作成 • Word2vec モデルの作成 • Topic モデルの作成 などを試行して, 結果を出力す ること Extended;) Dbpedia.org を使いテキスト データを取得して解析する

Slide 80

Slide 80 text

8.4 計量テキスト分析をやろう

Slide 81

Slide 81 text

計量テキスト分析 • 語句と語句の結びつきや、関係 性について可視化を行う • 多変量のテキストデータから意 味や傾向を取り出すことに活用 する • 実用例 • 松井剛「ことばとマーケティン グ」 • 佐々木ほか (2020)新型コロナウィ ルス感染症への組織対応に関する 緊急調査: 第三報 • http://pubs.iir.hit- u.ac.jp/admin/ja/pdfs/show/2393 • COVID-19 に関連して、企業が どのように対応したかをサーベ イの自由記述欄から可視化する

Slide 82

Slide 82 text

計量テキスト分析(cont.) • COVID-19 調査

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

レシピ 1. KHCoder をインストールする 2. Dbpedia.org から SPARQL Endpoint 経由でデータセットを取得する • 前回の内容 3. Manaba からデータセットをダウンロードする 4. KHCoder に定点調査の自由記述データを読み込む 5. データ分析前の処理をする 6. 頻出語の取り出しを行う 7. 共起ネットワークを書く 8. 属性情報ごとの特徴を抽出する 9. 対応分析を行う 2020/10/8 84

Slide 85

Slide 85 text

1. KHCoder をインストールする • KHCoder とは? • テキスト型データの計量的な内容分析(計量 テキスト分析)もしくはテキストマイニング のためのフリーソフトウェアである。各種の 検索を行えるほか、どんな言葉が多く出現し ていたのかを頻度表から見ることができる。 さらに多変量解析によって、一緒に出現する ことが多い言葉のグループや、同じ言葉を含 む文書のグループを見ることで、データ中に 含まれるコンセプトを探索できる。 • また一部の文書群に注目した場合に、その文 書群に特に多く出現する言葉をリストアップ することで、その文書群の特徴を探索できる。 あるいは分析者が指定した基準によって、文 書の分類を自動的に行うこともできる。 • 引用: https://ja.wikipedia.org/wiki/KH_Coder 2020/10/8 85

Slide 86

Slide 86 text

1. KHCoder をインストールする • https://khcoder.net/dl3. htmlにアクセスする • Download をクリックす る 2020/10/8 86

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

1. Khcoder をインストールする • スタートメニューなどに登録して, 起動する 2020/10/8 88

Slide 89

Slide 89 text

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

Slide 90

Slide 90 text

1. Khcoder をインストールする • Tips: Mac な場合 • かなりめんどくさい • Perl やR の個別パッケージの導 入が必要 • 有償版のインストールパッケー ジが提供されている. • https://khcoder.stores.jp/#!/it ems/536a53268a56108414000 1dd 2020/10/8 90

Slide 91

Slide 91 text

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

Slide 92

Slide 92 text

2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • Jupyter Notebook で以下のように記述する (詳しくは前回配布 した notebook を参照のこと)

Slide 93

Slide 93 text

2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • 以下の通り, 企業名と概要がアウトプットされる

Slide 94

Slide 94 text

2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • 同様の作業を, 東証一部と東証二部で繰り返す #東証マザーズ上場企業の情報を取得する sparql2 = SPARQLWrapper(endpoint='http://ja.dbpedia.org/sparql', returnFormat='json') sparql2.setQuery(""" PREFIX dbpedia-owl: select distinct ?name ?abstract where { ?company . ?company rdfs:label ?name . ?company ?abstract . } """) results2 = sparql2.query().convert()

Slide 95

Slide 95 text

2. Dbpedia.org から SPARQL Endpoint 経 由でデータセットを取得する • Excel or panda で適宜整形する

Slide 96

Slide 96 text

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/10/8 96

Slide 97

Slide 97 text

3. KHCoder に定点調査の自由記述データ を読み込む • KHCoder を開く • [プロジェクト] –[新規] を選択する 2020/10/8 97

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

4. データ分析前の処理をする • [前処理] – [テキストのチェッ ク]をクリックする • OKをクリックする 2020/10/8 99

Slide 100

Slide 100 text

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

Slide 101

Slide 101 text

4. データ分析前の処理をする • 問題点が修正される. • [閉じる]をクリックする. 2020/10/8 101

Slide 102

Slide 102 text

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

Slide 103

Slide 103 text

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

Slide 104

Slide 104 text

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

Slide 105

Slide 105 text

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

Slide 106

Slide 106 text

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

Slide 107

Slide 107 text

5. 頻出語の取り出しを行う • “抽出語リストの形式” • 品詞別 • “記入する数値” • 出現回数(TF) • “出力するファイルの形式” • Excel (*.xlsx) を選択し, OK をクリックする 2020/10/8 107

Slide 108

Slide 108 text

5. 頻出語の取り出しを行う • 品詞ごとにタームが抽出される 2020/10/8 108

Slide 109

Slide 109 text

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

Slide 110

Slide 110 text

6. ストップワードの設定 • 品詞リストをみると, 企業 データでは当たり前のものが たくさん含まれている • 解析に使わない言葉は、ス トップワードとして指定する 必要がある • [前処理]から[語の取捨選択] をクリックする

Slide 111

Slide 111 text

6. ストップワードの設定 • Force ignore “使用しない語の指定” にス トップワードを指定する • 株式会社 • 本社 • 会社 • 企業 • LTD. • CO., • CORPORATION • INC. • ょ • CO.,LTD. • HOLDINGS • THE • ELECTRIC • コーポレート など….

Slide 112

Slide 112 text

6. ストップワードの指定 • --cell– は消さないようにして, 項目に指定しOK をクリックする

Slide 113

Slide 113 text

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

Slide 114

Slide 114 text

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

Slide 115

Slide 115 text

6.共起ネットワークを書く • 共起では, ある特定の タームで共に出てくる語 の確認ができる • 東証一部と東証二部とマ ザーズでは企業が取り組 んでいることが違う • マザーズはインターネッ ト系, 東証二部は自動車や 食品, 東証一部は持ち株な どのタームが出ている 2020/10/8 115

Slide 116

Slide 116 text

7. 対応分析を行う • 抽出語を用いた対応分析を行 い、その結果を二次元の散布 図に示す • 出現パターンの似通った語に はどのようなものがあったの か探ることができる • [ツール]-[抽出語]-[対応分析] を選択する 2020/10/8 116

Slide 117

Slide 117 text

7. 対応分析を行う • “対応分析のオプション” – “分析に仕様するデータ表の 種類”から, [抽出語 x 外部変 数] から分類を選択し, OK を クリックする 2020/10/8 117

Slide 118

Slide 118 text

7. 対応分析を行う • マザーズ • 東証一部 • 東証二部 ごとに特徴的な言葉が抽出される 2020/10/8 118

Slide 119

Slide 119 text

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

Slide 120

Slide 120 text

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

Slide 121

Slide 121 text

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

Slide 122

Slide 122 text

9. マッチングルールを作成する • 特定の語のグループを作成し, それらでグルーピングするこ とで特徴を抽出する • 今回の場合, 自動車産業, 電気 産業, 銀行, ICT など産業分類 ごとにグルーピングする • 記述方法 *グループ名1 みかん or いちご or りんご *グループ名2 ごりら or らっこ or こんどる *グループ名3 るびー or びーどる

Slide 123

Slide 123 text

9. マッチングルールを作成する • 例.

Slide 124

Slide 124 text

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

Slide 125

Slide 125 text

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

Slide 126

Slide 126 text

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

Slide 127

Slide 127 text

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

Slide 128

Slide 128 text

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

Slide 129

Slide 129 text

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

Slide 130

Slide 130 text

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

Slide 131

Slide 131 text

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

Slide 132

Slide 132 text

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

Slide 133

Slide 133 text

13. コーディングルールに基づき対応分 析を行う • マザーズはIT と製薬系 (おそ らくバイオスタートアップ) • 東証一部は自動車と銀行 • 東証二部は半導体が近いこと が確認できる • 市場ごとの特性が見える

Slide 134

Slide 134 text

14. コーディングルールに基づき共起 ネットワーク分析を行う • [ツール]-[コーディング]-[共 起ネットワーク] をクリック する

Slide 135

Slide 135 text

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

Slide 136

Slide 136 text

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

Slide 137

Slide 137 text

今日の実習 (windows ユーザ向け) • アップロードされている • (1) 東証一部/二部/マザーズの 企業概要データ • (2)日本の経済/経営/社会/法学 者の概要データ • (3)日本のロック/ヒップホップ /フォークグループの概要デー タ を用いて, テキスト分析を行う • 語句の抽出 • 共起ネットワーク • 対応分析 • 多次元尺度構成法 • コーディングルールの設定 などを行い解析すること

Slide 138

Slide 138 text

No content

Slide 139

Slide 139 text

共起ネットワーク • KHCoder で共起ネットワー クを作成(いくつかストップ ワードを指定済み)。 • 経済学者は政策と、経済学者 と社会学者は社会と、経営学 者は企業と共起する。法学者 は弁護士や民法や憲法と。こ れもいろんな意味で妥当。

Slide 140

Slide 140 text

対応分析 • 経済と経営が近い距離に • マルクスは経営の近くに

Slide 141

Slide 141 text

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

Slide 142

Slide 142 text

Slide 143

Slide 143 text

Appendix. 感情分析

Slide 144

Slide 144 text

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.

Slide 145

Slide 145 text

利用する Notebook • Google Colaboratory • https://colab.research.google.com/driv e/1EZ3NMw3I9FrjTFEPBQQRiD4TtUD zJ4YF

Slide 146

Slide 146 text

5. 感情分析 • git から sentiment_ja パッ ケージを取得する • https://github.com/sugiyam ath/sentiment_ja • 展開したディレクトリ (sentiment_ja) に移動する

Slide 147

Slide 147 text

5. 感情分析 • “!python setup.py install” でインストールする

Slide 148

Slide 148 text

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

Slide 149

Slide 149 text

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 で分類される

Slide 150

Slide 150 text

参考文献 • 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

Slide 151

Slide 151 text

参考文献(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

Slide 152

Slide 152 text

参考文献(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

Slide 153

Slide 153 text

参考文献(4) • 日本語ツイートをEkmanの基本6感情で評価 • https://qiita.com/sugiyamath/items/7cabef39390c4a07e4d8 • ツイートから学習した感情分析モデル • https://qiita.com/sugiyamath/items/dc342d53b4e4e4ef9308