Doshisha_2011: 言語データの視覚化

2,842
-1

Published on

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,842
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
44
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Doshisha_2011: 言語データの視覚化

  1. 1. 言語データの視覚化 小林 雄一郎 (大阪大学/日本学術振興会) 同志社大学文化情報学部ジョイント・リサーチ I-5 (言語テキスト解析) 2011年12月7日(水) 1
  2. 2. 前回(2011年6月22日)の概要• 1. 自己紹介• 2. 言語学と統計 • 2.1. 何故、言語学に統計が必要か • 2.2. 統計的言語研究の手順 • 2.3. 統計的言語研究の小史• 3. 統計的言語研究の例 • 3.1. 仮説検定―単語の頻度差を調べる • 3.2. コロケーション統計―共起の強さを計る • 3.3. 多変量解析―大量のデータを俯瞰する• 4. 統計的言語研究を行う際の注意点• 5. 統計的言語研究の参考文献 2
  3. 3. 今回の概要• 1. データの視覚化 • 成績データの視覚化• 2. 『機動戦士ガンダム』の分析 • キャラクター間のつながりを可視化 • 使用語彙の共起関係を可視化• 3. スパムメールの分類 • 決定木 • ランダムフォレスト • 多次元距離尺度法• 4. おわりに 3
  4. 4. 今回の概要• 1. データの視覚化 • 成績データの視覚化• 2. 『機動戦士ガンダム』の分析 • キャラクター間のつながりを可視化 • 使用語彙の共起関係を可視化• 3. スパムメールの分類 • 決定木 • ランダムフォレスト • 多次元距離尺度法• 4. おわりに 4
  5. 5. 1. データの視覚化• 単なる数字の羅列を直観的に分かりやすい形に – ヒストグラム – 箱ひげ図 – 円グラフ 1 2 a nd 1.67 2.61 we 1.70 1.63 or 0.19 0.26 our 0.15 0.26 a ls o 0.22 0.33 but 0.37 0.00 then 0.07 0.00 ma y 0.32 0.07 ・・・ ・・・ ・・・ CLASS Poor Poor 3 2.92 0.52 0.73 0.24 0.10 0.14 0.49 0.17 ・・・ Poor – 散布図 4 5 6 3.45 1.99 2.51 0.78 0.19 1.12 0.33 0.56 0.37 0.62 0.00 0.34 0.21 0.08 0.16 0.08 0.04 0.08 0.08 0.08 0.08 0.12 0.15 0.23 ・・・ ・・・ ・・・ Poor Poor Poor ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ 776 2.49 1.03 0.23 0.33 0.05 0.14 0.56 0.09 Good – ・・・ 777 1.94 1.25 0.34 0.28 0.19 0.06 0.09 0.06 ・・・ Good 時系列プロット 778 779 3.00 2.66 0.45 1.18 0.39 0.63 0.22 0.54 0.15 0.16 0.13 0.39 0.05 0.15 0.10 0.18 ・・・ ・・・ Good Good 780 2.25 0.64 0.25 0.24 0.21 0.11 0.24 0.07 ・・・ Good etc. etc. 781 2.53 0.82 0.66 0.18 0.22 0.13 0.19 0.10 ・・・ Good 5
  6. 6. • 様々な視覚化 6
  7. 7. 成績データの分析• Excelファイルからデータを読み込む – 例として、「得点サンプルA」を使用 – 800人分の成績データ(クラス、性別、学部の情報つき)# クリップボード経由で読み込む(Windowsのみ)# 読み込みたい範囲をマウスで指定し、キーボードの「Ctrl」+「C」でコピーしてから> dat001 <- read.delim("clipboard")# (大きいデータなので)データの最初の部分だけを表示> head(dat001) student class sex faculty score1 S001 1 M A 72 Macでは、2 S002 1 F A 94 read.delim(pipe(“pbpaste”))3 S003 1 M A 904 S004 1 F A 885 S005 1 F A 706 S006 1 M A 82◆小林雄一郎 「Rによる教育データ分析入門」 外国語教育メディア学会2011年大会(2011年8月6日、名古屋学院大学) 7
  8. 8. • データの全体像をざっくりと把握する# 要約統計量(データの5列目、つまりは、scoreだけを対象にする)> summary(dat001[,5]) Min. 1st Qu. Median Mean 3rd Qu. Max. 32.00 54.00 65.00 64.06 73.00 98.00# ヒストグラム> hist(dat001[,5])# ヒストグラムのデザインやラベルを指定> hist(dat001[,5], col="red", xlab="students", ylab="score", main="Test", xlim=c(0, 100)) 【引数(ひきすう)】 col: グラフの色 xlab: X軸(横軸)のラベル ylab: Y軸(縦軸)のラベル main: グラフのタイトル xlim: X軸の目盛の範囲 * 画像を保存するには、Graphic windowの「ファイル」→「別名で保存」 8
  9. 9. • クラス間の差を視覚化する – 箱ひげ図 (boxplot) を用いる# 関数「split」を使って、成績をクラス別に集計# split(元のデータ名[[点数の入った列数]], 元のデータ名[[調べたい項目の列数]])> class.dat <- split(dat001[[5]], dat001[[2]])# クラス別に集計した結果を表示> class.dat (省略)# 箱ひげ図で視覚化> boxplot(class.dat)# 箱ひげ図のデザインを修正> boxplot(class.dat, col="green", ylim=c(0, 100), xlab="class", ylab="score")【引数】 col: グラフの色 ylim: Y軸の目盛の範囲 xlab: X軸(横軸)のラベル ylab: Y軸(縦軸)のラベル 9
  10. 10. • クラス間の差を視覚化する(続き) 10
  11. 11. • 【補足】箱ひげ図の見方 箱ひげ図 (boxplot)# 【宿題】同様の手順で、成績を学部別に集計しなさい# splitした結果は、class.datに上書きせずに、faculty.datという変数に入れること# ヒント:学部は、元のデータの何列目にあるか? 11
  12. 12. • 【おまけ】箱ひげ図を並びかえる – 中央値の順に、クラスを並びかえたい# 箱ひげ図の並びかえ(中央値で)# 「sort.list」は、リストを並べかえる関数# 「sapply」は、複数のデータに対して関数を適用する関数> boxplot(class.dat[sort.list(sapply(class.dat, median))])# 箱ひげ図のデザインの修正> boxplot(class.dat[sort.list(sapply(class.dat, median))], col="green", ylim=c(0, 100), xlab="class", ylab="score") 12
  13. 13. 今回の概要• 1. データの視覚化 • 成績データの視覚化• 2. 『機動戦士ガンダム』の分析 • キャラクター間のつながりを可視化 • 使用語彙の共起関係を可視化• 3. スパムメールの分類 • 決定木 • ランダムフォレスト • 多次元距離尺度法• 4. おわりに 13
  14. 14. 3. 『機動戦士ガンダム』の分析• ネットワーク分析 • キャラクター間のつながりを可視化 • アムロとシャアの使用語彙の共起 関係を可視化• 著作権に関する注記 • 『機動戦士ガンダム』は、矢立肇氏・富野喜幸氏の原作に基づい て、名古屋テレビ・創通エージェンシー・日本サンライズによって 制作されました • 本発表では、学術的な目的により、『機動戦士ガンダム』のいくつ かのシーンを引用させて頂いています◆小林雄一郎 「R言語による『機動戦士ガンダム』分析」 Nagoya.R #5 (2011年3月26日、名古屋大学) 14
  15. 15. 『機動戦士ガンダム』とは?• 『機動戦士ガンダム』(きどうせんしガンダム、MOBILE SUIT GUNDAM)は、 日本サンライズ(現・サンライズ)制作の日本のロボットアニメ。テレビシリ ーズアニメとして1979年から名古屋テレビ(現・メ~テレ)ほかで放映された 。• 「ガンダムシリーズ」の第1作である。• 舞台は、スペースコロニーへの宇宙移民が始まって半世紀あまりが過ぎた 未来世界、宇宙世紀0079年。地球から最も遠いコロニー群サイド3はジオ ン公国を名乗り、地球連邦からの独立を求め、独立戦争を挑んできた。圧 倒的な連邦軍の戦力数に対して、ジオン軍は人型機動兵器「モビルスーツ (MS)」を実戦投入し、戦争は膠着状態に陥る。• サイド7に住む少年アムロ・レイは、コロニーに侵入したジオン軍MS ザクの 攻撃に巻き込まれ、偶然が重なって連邦軍の新型MS ガンダムのパイロッ トになってしまう。ガンダムの母艦であるホワイトベースは正規乗組員のほ とんどを失い、アムロをはじめこれに避難した少年少女たちは、生き残った 乗組員達と協力しながらサイド7を脱出する。しかし宇宙には、「赤い彗星」 と呼ばれるジオン軍のエースパイロット、シャア・アズナブルが待ち構えて いた。• 本作は、宇宙や地球の激戦地帯を転戦しながら、宿敵シャアをはじめ様々 な人々との出会いや戦い、そして別れを経て数々の困難を乗り越え、閉鎖 的な極限状態に悩み傷つきながらも一歩ずつ成長していく、アムロたち少 年少女の姿を描いた物語である。 (Wikipedia) 15
  16. 16. 分析データ• ファースト・ガンダム(全43話)のセリフ <デニム>スレンダー、お前はここに残れ。</デニム> <スレンダー>はっ、曹長。</スレンダー> <ジーン>曹長、軍の施設は右上のブロックのようです。出勤時間のはずですが、車が 一台行っただけです、人影はありません。 …いました、子供のようです。</ジーン> <フラウ>アムロ。アムロ? まあ、まだ食べてない。アムロ?</フラウ> <フラウ>こんなことだと思ったわ。ちゃんと朝食を取らないと、体の為に良くないのよ。 </フラウ> <ハロ>ハロ、アムロ、ハロ、アムロ。</ハロ> <アムロ>ハロ、今日も元気だね。</アムロ> <ハロ>サンキュ、アムロ。</ハロ> <フラウ>何を着ていくつもり? アムロ、アムロ。</フラウ> <アムロ>このコンピューター組んだら食べるよ。</アムロ> <フラウ>避難命令聞いてなかったの?</フラウ> <アムロ>避難命令? あのサイレン、そうなの?</アムロ> <フラウ>あきれた。軍の放送聞かなかったの? 軍艦が入港するから避難するんだって さ。</フラウ> <アムロ>なんで?</アムロ> <フラウ>知らないわよ。アムロ、時間がないのよ。</フラウ> <アムロ>わかったよ。</アムロ> 16
  17. 17. キャラクター間のつながりを可視化• キャラクター発話内の人名を抽出 – (例)了解、セイラさん。しかし。シャア、これが最後だ。• 自分の名前への言及は除外 – (例)ガンダムのパイロットのアムロ・レイです。• Rのigraphパッケージを使用 – Fruchterman and Reingoldのアルゴリズムで描画 (註)これ以降、Rのスクリプトは省略 17
  18. 18. ネットワーク分析 18
  19. 19. ジオン軍 vs.連邦軍 19
  20. 20. 使用語彙の共起関係を可視化• アムロ– 頻度5以上の語のみ 20– 形態素解析の誤りは未修正
  21. 21. • シャア– 頻度5以上の語のみ 21– 形態素解析の誤りは未修正
  22. 22. Rk. アムロ シャア 1 です な 2 さん の 3 ます ララァ 4 あっ を 5 僕 は• 【おまけ】アムロとシャアの特徴語 6 ください 君 7 セイラ 攻撃 – 対数尤度比検定で抽出 8 っ いる 9 はい モビルスーツ 10 シャア に 11 ん という – 「さん」 (アムロ)vs. 「お前」「貴様」 12 あ よく 13 ホワイトベース と (シャア) 14 じゃ しろ 15 ハヤト ニュータイプ – 「です」「ます」「ください」(アムロ) 16 ブライト すぎる 17 vs. 「しろ」「など」(シャア) リュウ リア 18 フラウ その 19 って もの – アムロは、「あっ」「ん」「あ」「うっ」 20 うっ する 21 マチルダ で 「っ」「あー」などが多い 22 ませ 実戦 23 けど 戦争 24 了解 貴様 25 父さん 第 26 カイ お前 27 てる パイロット 28 こいつ 手 29 ボゥ せ 30 あー など 22
  23. 23. • シャアの特徴語には、「の」「は」「に」といった助詞が多い ↓• 平均文長を計算すると、アムロが5.14語でシャアが7.07語• 「という」や「で」も、文構造の拡張? ↓• 今後、RCaBoCha (http://rmecab.jp/wiki/index.php? RCaBoCha) を使った文構造の分析、KWICでの質的分析 が期待される 23
  24. 24. 今回の概要• 1. データの視覚化 • 成績データの視覚化• 2. 『機動戦士ガンダム』の分析 • キャラクター間のつながりを可視化 • 使用語彙の共起関係を可視化• 3. スパムメールの分類 • 決定木 • ランダムフォレスト • 多次元距離尺度法• 4. おわりに 24
  25. 25. 3. スパムメールの分類• 統計的な分類手法 – 言語データ(e.g. 書き手、テキスト)を複数のグループに分 ける場合、判別の基準を決めるのは容易ではない – また、何百・何千というデータを手作業で分類するのも難 しい ↓ – 機械学習・パターン認識(e.g. 判別分析、決定木、SVM)• 「分ける」ことは「分かる」こと – 統計的にデータを分類することで、何が分類に寄与して いるのかという情報も得られる◆小林雄一郎 「樹木モデルによる言語データ解析―RのmvpartとrandomForestを用いて」 LETメソドロジー研究部会2011年度第1回研究会(2011年7月16日、関西大学) 25
  26. 26. • 樹木モデル – 非線形回帰分析、非線形判別分析の1つ – 回帰問題では回帰木、分類問題では分類木あるいは決 定木とも呼ばれる – 単語の頻度のような手がかり(説明変数)を何らかの基準 に基づき分岐し、判別・予測のモデルを構築する – 分岐の過程は木構造で視覚化することができ、IF-THEN のような簡潔なルールで表すこともできる ↓ – 結果の解釈がしやすいため、マーケティングなどの分野 でも幅広く活用されている 26
  27. 27. 決定木とは – 回帰分析のような明示的な関数を用いずに、一連の手続 きに沿ってデータを分けていくことによって、予測や判別 を行うことを決定木(あるいは回帰木)という First division Whole data set YSecond First branching (X)division X>10 X≦10 Importance 5 Second branching (Y) Y>5 Y≦5 10 X 27
  28. 28. 主な決定木・回帰木の手法• C5.0 – エントロピーに基づくゲイン比という基準で分割• CHAID – 統計検定(連続変数のときはF検定、カテゴリー変数のと きはカイ2乗検定)の有意確率を基準に分割• CART Rでは 主にこの手法! – 不純度を表すGINI係数を基準に分割 – ノードを分岐させることによって、不純度が減少する(=分 岐後のそれぞれのノードの純度が増す)ような分岐点を 探す – 「純度が増す」=「バラツキが少なくなる」 28
  29. 29. • 決定木をやってみる – CART (Classification And Regression Tree) – mvpartパッケージ• 分析データ – kernlabパッケージのspam e-mail dataset(4601通のメール) – 【1~57列目】スパムメールに特徴的な57種類の単語・記号 など(説明変数) – 【58列目】spamであるかnonspamであるかのラベル(結果変 数)、列名はtype 29
  30. 30. 30
  31. 31. • 学習データと評価データの分割 習学 ターデ習学 ターデ全 割分 ターデ価評 ターデ価評 価評 価評• なぜ、データを分割するのか – あるデータから分類ルールを作成し、それと同じデータを使 って検証を行うと、不当に高い精度が出てしまう(過学習) – そのデータに適合するようにルールを作ったのだから、同じ データをうまく説明できるのは当然 – 別のデータで検証して初めて、作成したルールの本当の精 度が分かる 31
  32. 32. • 分類結果 評価データに このモデルを適用した結果、 分類精度は85.79% 32
  33. 33. ランダムフォレストとは – 1) 与えられたデータセットから、N組のブートストラップサン プルを作成 – 2) 各々のブートストラップサンプルデータを用いて、未剪 定の最大の決定・回帰木を生成(但し、分岐のノードは、ラ ンダムサンプリングされた変数のうち最善のものを使用) – 3) 全ての結果を統合し(回帰問題では平均、分類問題で は多数決)、新しい予測・分類器を構築 ↓• ランダムフォレスト = 決定木 + アンサンブル学習 33
  34. 34. • アンサンブル学習とは – 必ずしも精度の高くない分類器を複数組み合わせること で、分類精度を向上させる手法 ↓ – つまりは、こういうこと 「三人寄れば文殊の知恵」(日本語) 「三個臭皮匠、賽過一個諸葛亮」(中国語) "Two heads are better than one"(英語) 34
  35. 35. a nd we or our also but then ma y ・・・ CLASS 1 1.67 1.70 0.19 0.15 0.22 0.37 0.07 0.32 ・・・ jp 2 2.61 1.63 0.26 0.26 0.33 0.00 0.00 0.07 ・・・ jp 3 2.92 0.52 0.73 0.24 0.10 0.14 0.49 0.17 ・・・ jp 4 3.45 0.78 0.33 0.62 0.21 0.08 0.08 0.12 ・・・ jp 5 1.99 0.19 0.56 0.00 0.08 0.04 0.08 0.15 ・・・ jp 6 2.51 1.12 0.37 0.34 0.16 0.08 0.08 0.23 ・・・ jp ・・・ 301 302 ・・・ 2.49 1.94 ・・・ 1.03 1.25 ・・・ 0.23 0.34 ・・・ 0.33 0.28 ・・・ 0.05 0.19 ・・・ 0.14 0.06 ・・・ 0.56 0.09 ・・・ 0.09 0.06 ・・・ ・・・ ・・・ ・・・ us us Training data 303 3.00 0.45 0.39 0.22 0.15 0.13 0.05 0.10 ・・・ us 304 2.66 1.18 0.63 0.54 0.16 0.39 0.15 0.18 ・・・ us 305 2.25 0.64 0.25 0.24 0.21 0.11 0.24 0.07 ・・・ us 306 2.53 0.82 0.66 0.18 0.22 0.13 0.19 0.10 ・・・ usRandom Forest(s) Bootstrap Sample 1 Sample 2 … Sample N Forest Tree 1 Tree 2 … Tree N Result 1 Result 2 … Result N Ensemble learning Regression / classification 35
  36. 36. • ランダムフォレストの利点 – 1) 精度が高い – 2) 大きいデータに効率的に作用し、何百・何千の変数を扱 うことができる – 3) 分類に用いる変数の重要度を推定する – 4) 欠損値の推測、多くの欠損値を持つデータの正確さの 維持に有効である – 5) 分類問題における各クラスの個体数がアンバランスであ るデータにおいてもエラーのバランスが保たれる – 6) 分類と変数の関係に関する情報を計算する – 7) クラス間の近似の度合が計算できる – 8) 外的基準がないデータにも適用できる(個体の類似度の 計算など) etc. etc. 36
  37. 37. • ランダムフォレストをやってみる – randomForestパッケージ• 分類結果 – 学習した分類モデルを 評価データに適用 – 92.92% Importance ランダムフォレストでは、 分類に寄与した変数の 重要性のランキングを 視覚化できる 37
  38. 38. • ランダムフォレストの分類結果の視覚化 – MDSplotによる多次元距離尺度法 – 前回紹介した対応分析とよく似た手法 spam nonspam 38
  39. 39. 今回の概要• 1. データの視覚化 • 成績データの視覚化• 2. 『機動戦士ガンダム』の分析 • キャラクター間のつながりを可視化 • 使用語彙の共起関係を可視化• 3. スパムメールの分類 • 決定木 • ランダムフォレスト • 多次元距離尺度法• 4. おわりに 39
  40. 40. 4. おわりに• 今回紹介した手法を自分のデータにどう応用するか を考えることが重要 ↓• それができるようになれば、他分野で活用されてい る手法にも興味がわき、自分の研究におけるデータ 解析の幅も広がるはず ↓• そして、手法の選択以上に大切なことは、変数の選 択(=手持ちのデータのどこに注目するか) 40
  41. 41. 参考文献• データマイニング関連 – 金明哲 (2007). 『Rによるデータサイエンスーデータ解析の 基礎から最新手法まで』 東京: 森北出版. – 鈴木努 (2009). 『ネットワーク分析』(Rで学ぶデータサイエ ンス8) 東京: 共立出版.• グラフィックス関連 – H. ウィッカム (2011). 『グラフィックスのためのRプログラミ ングーggplot2入門』 東京: シュプリンガー・ジャパン. – D. ショーカー (2009). 『Rグラフィックス自由自在』東京: シ ュプリンガー・ジャパン. – P. Murrell (2009). 『RグラフィックスーRで思いどおりのグラ フを作図するために』 東京:共立出版. 41
  42. 42. ご清聴ありがとうございました 小林 雄一郎 kobayashi0721@gmail.comhttp://www.geocities.jp/langstat/ twitter id: @langstat 42
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×