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

#経済学のための実践的データ分析 3.10 テキスト分析(後半; SNS 口コミ分析, KHcoder etc...))

yasushihara
October 25, 2019

#経済学のための実践的データ分析 3.10 テキスト分析(後半; SNS 口コミ分析, KHcoder etc...))

#経済学のための実践的データ分析 3.10
一橋大学 経済学部 原泰史 [email protected]
38番教室

Contents
- KHCoder の使い方
- SNS (Twitter) からのデータ取得
- 感情分析
- レポートのアナウンス

yasushihara

October 25, 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 5
  2. 結果 • 1996/3/6 OA 版 • 1998/3/25 OA 版 3/8/2015

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

    3/8/2015 7 ※. 動詞, 名詞, 形容詞を抽出
  4. b. Twitter の API キーを取得する • Access Token & access

    token secret の Create をクリックする
  5. d. ハッシュタグに基づきデータを取得す る • 利用するパッケージ (tweepyと datetime) をインポートする • b.

    の作業で取得した Consumer_key, Consumer_secret, Access_token, Access_secret を 指定する • 検索キーワードを変数として格 納する • ツイートを取得する 参考; https://qiita.com/kngsym2018/items/3719f8da1f129793257c
  6. やること 1. KHCoder をインストールする 2. Dbpedia.org から SPARQL Endpoint 経由でデータセットを取得する

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

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

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

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

    で以下のように記述する (詳しくは前回配布 した notebook を参照のこと)
  11. 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()
  12. 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 • 2019/10/24 48
  13. 5. 頻出語の取り出しを行う • “抽出語リストの形式” • 品詞別 • “記入する数値” • 出現回数(TF)

    • “出力するファイルの形式” • Excel (*.xlsx) を選択し, OK をクリックする 2019/10/23 59
  14. 6. ストップワードの設定 • Force ignore “使用しない語の指定” にス トップワードを指定する • 株式会社

    • 本社 • 会社 • 企業 • LTD. • CO., • CORPORATION • INC. • ょ • CO.,LTD. • HOLDINGS • THE • ELECTRIC • コーポレート など….
  15. 6.共起ネットワークを書く • 共起では, ある特定の タームで共に出てくる語 の確認ができる • 東証一部と東証二部とマ ザーズでは企業が取り組 んでいることが違う

    • マザーズはインターネッ ト系, 東証二部は自動車や 食品, 東証一部は持ち株な どのタームが出ている 2019/10/23 67
  16. 9. マッチングルールを作成する • 特定の語のグループを作成し, それらでグルーピングするこ とで特徴を抽出する • 今回の場合, 自動車産業, 電気

    産業, 銀行, ICT など産業分類 ごとにグルーピングする • 記述方法 *グループ名1 みかん or いちご or りんご *グループ名2 ごりら or らっこ or こんどる *グループ名3 るびー or びーどる
  17. 今日の実習; その1 (windows ユーザ向け) • アップロードされている • (1) 東証一部/二部/マザーズの 企業概要データ

    • (2)日本の経済/経営/社会/法学 者の概要データ • (3)日本のロック/ヒップホップ /フォークグループの概要デー タ を用いて, テキスト分析を行う • 語句の抽出 • 共起ネットワーク • 対応分析 • 多次元尺度構成法 • コーディングルールの設定 などを行い解析すること
  18. 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.
  19. 5. 感情分析 • git から sentiment_ja パッ ケージを取得する • https://github.com/sugiyam

    ath/sentiment_ja • 展開したディレクトリ (sentiment_ja) に移動する
  20. 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 で分類される
  21. 参考文献 • 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
  22. 参考文献(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
  23. 参考文献(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
  24. レポート(2+3回目)の内容 • 概要 • テーマ; とても細かくやってみる「企業研究」 • 講義で取り上げたデータセット (BigQuery Sandbox/RESAS/Lens.org)

    ないしは 企業の財務データベースからデータセットを入手し, 特定の産業, 企業グループに ついて比較分析を行い, レポートにまとめる. • レポートでは • (1) とりあげた産業/企業グループの特徴の抽出, 基礎統計の分析 • (2) 売上高, 資本金, ROE, ROA など主なパフォーマンスのデータおよびその比較 を行った上で, 「もしも自分が就職するのなら」どの企業を選択するか明記するこ と • 提出期間: 2019/10/29 13:15:00 (JST) • 提出方法:Slack DM
  25. 日本標準産業分類 • 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
  26. 日本標準産業分類から, ローソンが属す る産業群を抽出する 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 企業名辞書
  27. 1. これらを踏まえ, 本レポートでの市場 画定 • 特定の企業をひとつ取り上げてください • 当該企業と同じ産業に属するであろう、複数の企業を抽出する。 このとき、レポートでは抽出方法について明らかにすること。 抽出方法については

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

    RESAS etc… • 論文データベース • Lens.org, Google Scholar, Web of Science etc… • 特許データベース • Lens.org, Google Big Query, 特許庁データベース, IIP パテントデータベース etc… • 1. で指定した企業群について, 解析にあたり必要なデータを取 得すること. これら以外のデータベースを利用しても構わない
  29. 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.”
  30. 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.”
  31. 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.”
  32. Lens.org • 出来ること • 特許関連 • 特定企業/産業の特許数の変化についてデータを取得する • AI や機械学習に関する特許がどのくらい出ているか調査する

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

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

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

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

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

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

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

    Google Docs で用意します。 • 評価基準 • (A.) グループ内の役割分担 (B.) データセットのユニークさおよび、それが適切に処理されているか (C.) 分析手法のユニークさおよび、それが適切に解析されているか (D.) プレゼンテーションのユニークさ (E.) 質疑応答にうまくリプライすることが出来ているか • 納品物 • プレゼンテーションに利用したSlack グループにアップロードすること
  40. グループ分け(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
  41. グループ分け(2) • グループG • 2115183a • 2116190y • 2117110s •

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