おひろめ会〜教師なしワード抽出

64
n-gram Prefix Spanによる 辞書なしワード/フレーズ抽出 1

Upload: moai-kids

Post on 21-Nov-2014

1.717 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: おひろめ会〜教師なしワード抽出

n-gram Prefix Spanによる辞書なしワード/フレーズ抽出

1

Page 2: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

文章から特定のワードを抽出する際、一般的には辞書データ(ex.ipadic)を用いますが、辞書がない言語には対応できません。

辞書なしで高頻出・特徴的なワードを抽出する手法に取り組みましたので、現在までの成果をご報告いたします。

本日のお題

2

Page 3: おひろめ会〜教師なしワード抽出

本日お伝えしたいことアジェンダ

✓ワード抽出に関わる諸々✓ついとら(仮)✓ついとらの裏側-教師なしワード抽出-言語判定-ランキング✓“ついとら”以外のケース✓まとめ

3

Page 4: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

明確な区切り文字が存在する言語の場合は、区切り文字を元にわかち書きする。(英語など。I like Masashi Sada.→I/like/Masashi/Sada/)

日本語、中国語など単語間の境界がない言語は・・・(私はさだまさしが好きです→?)(我喜欢佐田正志→?)

一般的なワード抽出方法

4

Page 5: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

日本語では辞書データを用いてわかち書きをするのが一般的。(辞書はipadic、NAIST-jdic、Unidicなどが有名)

「私はさだまさしが好きです」→ 私/名詞-代名詞-一般は/助詞-係助詞さだ/名詞-固有名詞-人名-姓まさし/名詞-固有名詞-人名-名が/助詞-格助詞-一般好き/名詞-形容動詞語幹です/助動詞 (ipadic+MeCab)

一般的なワード抽出方法

5

Page 6: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

ひらがな/カタカナだらけの文章では?

「あのにわにはにわにわとりがいる」→ あの/連体詞に/助詞-格助詞-一般わに/名詞-一般はにわ/名詞-一般にわとり/名詞-一般が/助詞-格助詞-一般いる/動詞-自立 (ipadic+MeCab)

一般的なワード抽出の問題

6

Page 7: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

新語・造語など辞書にないワードの場合は?

「木村カエラや穂のかも結構好きです。」→ 木村/名詞-固有名詞-人名-姓カエる/動詞-自立ラ/名詞-一般や/助詞-並立助詞穂/名詞-一般の/助詞-連体化かも/名詞-一般結構/副詞-一般好き/名詞-形容動詞語幹です/助動詞 (ipadic+MeCab)

一般的なワード抽出の問題

7

Page 8: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

日本語の標準文法に沿わない場合は?

「才ノl∋→→^0^彡今度、皆〒” 遊園地レこ ぃ<ω ナ=”レ†と”、男仔カゞナ=レ)ナょ<〒L+・・><;;!」(オハヨー、今度皆で遊園地にいくんだけど、男子がたりなくてさ!)

→ 才/名詞-一般ノ/未知語l/未知語∋/未知語→/記号-一般→/記号-一般^/記号-一般 .......(ipadic+MeCab)

一般的なワード抽出の問題

8

Page 9: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

日本語の標準文法に沿わない場合は?

「おめだもいづまでものんびりすねではやぐねろは。明日も仕事あんべした。」 (・・・・・)

→ お/接頭詞-名詞接続め/名詞-一般だ/助動詞も/助詞-係助詞いづ/動詞-自立まで/助詞-副助詞も/助詞-係助詞のんびり/副詞-助詞類接続 ..........(ipadic+MeCab)

一般的なワード抽出の問題

9

Page 10: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

大きく以下の問題がある。

• 新語、造語への対応、メンテナンス• 一般的な文法ルールから逸脱した文章への場合の対応

• そもそも辞書が存在しない言語への対応

一般的なワード抽出の問題

10

Page 11: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

『ノンパラメトリックベイズ法による教師なし形態素解析』http://chasen.org/~daiti-m/paper/jfssa2009segment.pdf

• 教師なしのアプローチで言語・構文によらず形態素解析を行う、というアプローチ

• n-gramモデル/階層ベイズ、Pitman-Yor過程/Gibbsサンプリング/動的計画法...

[参考]持橋大地さんの論文

11

Page 12: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと[参考]持橋大地さんの論文

12

Page 13: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと[参考]持橋大地さんの論文

13

Page 14: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと[参考]持橋大地さんの論文

14

Page 15: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと[参考]Google IME

15

Page 16: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと[参考]Google IME

「Web辞書」と「言語モデル」• Web辞書:クロールしたインターネット上の文書を使用して高頻度で出現する特徴的な単語やフレーズを抽出し生成

• 言語モデル:MeCabを用いてモデル化(TRIE構造に)

16

Page 17: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと[参考]Google n-gramデータ

http://nd-ilab.jp/emoji

http://googlejapan.blogspot.com/2007/11/n-gram.html

17

Page 18: おひろめ会〜教師なしワード抽出

本日お伝えしたいことここまでのまとめ

• 教師なしアプローチにより言語・構文によらず形態素解析を行う技術がアカデミックな領域で確立されている。

• 膨大なWeb上のデータをコーパスとして辞書・言語モデルを構築する手法が実践分野で確立されている

• 取り残されたらヤバイよね・・・(´・ω・`)

18

Page 19: おひろめ会〜教師なしワード抽出

本日お伝えしたいことアジェンダ

✓ワード抽出に関わる諸々✓ついとら(仮)✓ついとらの裏側-教師なしワード抽出-言語判定-ランキング✓“ついとら”以外のケース✓まとめ

19

Page 20: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

20

Page 21: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

Twitterのその日のトレンドワード・フレーズをトラッキングするアプリ。

7ヶ国語に対応(精度はまだまだ低い......)

21

Page 22: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)2/21の結果抜粋

22

Page 23: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

23

Page 24: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

Googleへの攻撃拠点として指摘された2校がバズってる

24

Page 25: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

25

Page 26: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

26

Page 27: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

27

Page 28: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

http://www.nicovideo.jp/watch/sm455029528

Page 29: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

29

Page 30: おひろめ会〜教師なしワード抽出

本日お伝えしたいことついとら(仮)

30

Page 31: おひろめ会〜教師なしワード抽出

本日お伝えしたいことアジェンダ

✓ワード抽出に関わる諸々✓ついとら(仮)✓ついとらの裏側-教師なしワード抽出-言語判定-ランキング✓“ついとら”以外のケース✓まとめ

31

Page 32: おひろめ会〜教師なしワード抽出

持橋大地さんの論文レベルまで行ければ文句なし・・・(国際学会で発表出来るレベル)

今回はGoogle IMEの「Web辞書」に似たものを作成。膨大なコーパス群から高頻度で現れる特徴的な語・フレーズの抽出を行う。(“ついとら”ではTwitterのデータを使用)

本日お伝えしたいこと教師なしワード抽出

32

Page 33: おひろめ会〜教師なしワード抽出

本日お伝えしたいことn-gram Prefix Span

「頻出部分文字列の マイニング」(2003:坪井)より図引用。http://2boy.org/~yuta/publications/nl158-slides.pdf

33

Page 34: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

深さ・長さ優先でパターンを抽出し、そのパターンの出現頻度を計算。

出現頻度が多いほど一般的なフレーズである可能性が高い。私はさだまさしが好きです。◯私はさだまさしが好きです。×私はさだまさしが好きです。×

頻出パターンの抽出

34

Page 35: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

普通にやると、日本語らしいフレーズが取れないケースが多い。

頻出しているパターンには違いないけれど、言葉として見たときに構文的に意味が無いケースが多い。(~~いました。など)

頻出パターンの抽出

35

Page 36: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

例:前方から頻出パターンを見た場合

新年明けましておめでとうございますご結婚おめでとうございます新年明けました新年明けましたか?今家にいます

頻出パターンの抽出

36

Page 37: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

例:後方から頻出パターンを見た場合

新年明けましておめでとうございますご結婚おめでとうございます新年明けました新年明けましたか?今家にいます

頻出パターンの抽出

37

Page 38: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

• 前方・後方、両方からパターンを走査• それぞれ最長一致のパターンのみを抽出• 前方・後方ともに存在するパターンのみをワード・フレーズとして抽出

アプローチの拡張

38

Page 39: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

例:先頭から頻出パターンを見た場合

新年明けましておめでとうございます新 年         明新年 年明        明け新年明 年明け       明けま新年明け 年明けま      明けまし新年明けま 年明けまし     明けまして新年明けまし 年明けまして    明けまして新年明けまして..... 年あけましてお.....  ......

頻出パターンの抽出

39

Page 40: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

例:後方から頻出パターンを見た場合

新年明けましておめでとうございますす          ま          います         いま         ざいいます        ざいま        ございざいます       ございま       うございございます      うございま      とうござうございます     とうございま     でとうごとうございます .....   がとうございま.....   ......  

頻出パターンの抽出

40

Page 41: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

前方・後方から走査したパターンをマージすると、結果以下のようなものが取れる。

新年新年明けまして明けましておめでとうございますおめでとうございます・・・

頻出パターンの抽出

41

Page 42: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

実際に↓な感じで動いています。

資料での説明が難しいですが・・・

42

Page 43: おひろめ会〜教師なしワード抽出

Hadoopを用いて実施。文章のn-gram解析~頻度カウント~パターン抽出(NameNode×1、DataNode×5)

100万文書(Latin)の解析におおよそ40~50分。25万文書(日本語)の解析におおよそ5~10分程度。

まだ処理が冗長で、時間がかかっている。(要改善)

本日お伝えしたいことデータ処理時間

43

Page 44: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと

• 単純に系列パターンマイニングで頻出パターンを取ろうとすると、言葉としては中途半端な切れ方でワードがとれてしまう。

• 前方・後方の両方向からn-gramで走査した結果をマージすることで、比較的言語らしい形で抽出が行えた。

ここまでのまとめ

44

Page 45: おひろめ会〜教師なしワード抽出

機械学習による判定が一般的「Lingua::LanguageGuesser」というライブラリもある。 http://gensen.dl.itc.u-tokyo.ac.jp/LanguageGuesser/LanguageGuesser_demo_ja.html

しかし精度は・・・“just do it.” がエストニア語判定“عيد احلب”が中国語判定

本日お伝えしたいこと言語判定

45

Page 46: おひろめ会〜教師なしワード抽出

今回はUnicodeの文字コード範囲で簡易的に判定。

現在はラテン語内の言語(英語、フランス語、ドイツ語)が区別できていない。TwitterのTimeZone情報を元に機械学習を試みる予定

本日お伝えしたいこと言語判定

46

Page 47: おひろめ会〜教師なしワード抽出

TF-IDF式により特徴度を算出。TF-IDFについてはググれ。

本日お伝えしたいことランキング

47

Page 48: おひろめ会〜教師なしワード抽出

ざっくり分けるとステートレスなREST APIとステートフルなStreaming APIがある。

今回はStreaming API(sample API)を使用。http://apiwiki.twitter.com/Streaming-API-Documentation全データ(firehose APIで取得可能。要契約)のうち1/25~1/30程度のデータの取得ができる模様。

本日お伝えしたいことTwitter API

48

Page 49: おひろめ会〜教師なしワード抽出

Google翻訳を使用。精度はかなり低い。JavaからAPIを使用できるライブラリが提供されている。(非公式)http://code.google.com/p/google-api-translate-java/

本日お伝えしたいこと翻訳

49

Page 50: おひろめ会〜教師なしワード抽出

本日お伝えしたいことアジェンダ

✓ワード抽出に関わる諸々✓ついとら(仮)✓ついとらの裏側-教師なしワード抽出-言語判定-ランキング✓“ついとら”以外のケース✓まとめ

50

Page 51: おひろめ会〜教師なしワード抽出

古典や、方言の文章からもワード抽出ができるはず。

いくつか試してみました。

本日お伝えしたいこと教師なしワード抽出なので

51

Page 52: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと論語

以下のサイトから中国語(繁体字)版テキストを入手し、頻出ワードを抽出http://chinese.dsturgeon.net/text.pl?node=1081&if=gb 「中國哲學書電子化計劃」

52

Page 53: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと論語「子夏曰」「曾子曰」「孔子對曰 」「而後」「而已矣」「必有」「子路曰」「君子之」「則不」「事君」「何以」「回也」......

「周公」は4回のみ出現。※孔子は周公の政治を理想として、現代に復元するために各国を行脚放浪した。

53

Page 54: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと坂口安吾

「安吾巷談」というエッセイのテキストを青空文庫から入手し、頻出ワードを抽出http://www.aozora.gr.jp/index_pages/person1095.html

54

Page 55: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと坂口安吾「というものは」「であり」「そして 」「これは」「よく」「された」「こういう」......

「ヒロポン」が頻出(12回)。

ヒロポンを用いて仕事をすると、三日や四日の徹夜ぐらい平気の代りに、いざ仕事が終って眠りたいという時に、眠ることができない。眠るためには酒を飲む必要があり、ヒロポンの効果を消して眠るまでには多量の酒が必要で、ウイスキーを一本半か二本飲む必要がある。原稿料がウイスキーで消えてなくなり足がでるから、バカげた話で、私は要するに、全然お金をもうけていないのである。

『反スタイルの記』より

55

Page 56: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと源氏物語

以下のサイトからテキストを入手し頻出ワードを抽出http://www.sainet.or.jp/~eshibuya/ 「源氏物語の世界」

56

Page 57: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと源氏物語「とて」「とのたまへば」「これは 」「にわかに」「何の」「こなたに」「になりて」「さらば」「かつは」「と思すに」「にだに」「もとより」......

「いとあはれなり」 は25回出現。(「回向の末つ方の心ばへいとあはれなり」みたいな文章もあるが、ちゃんと全部取れている)

57

Page 58: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと山形弁

「今夜はなまらナイト」のユーザの声ブログをクロールして解析。http://www.nhk.or.jp/namara03-blog/

58

Page 59: おひろめ会〜教師なしワード抽出

本日お伝えしたいこと山形弁「だっけ」「だべ」「なんだ 」「しった」「だず」「なしてだ」「だべした」「ありがどさま」.....

(若干文章量が不足気味)

59

Page 60: おひろめ会〜教師なしワード抽出

本日お伝えしたいことここまでのまとめ

• 古典だろうが方言だろうが、ある程度の文章量のデータが揃えば比較的適切にワードの抽出ができる。

• 現在のアプローチではデータが少ないとNG。(鴨長明の「方丈記」レベルだと分量が少なすぎてダメでした)

60

Page 61: おひろめ会〜教師なしワード抽出

本日お伝えしたいことアジェンダ

✓ワード抽出に関わる諸々✓ついとら(仮)✓ついとらの裏側-教師なしワード抽出-言語判定-ランキング✓“ついとら”以外のケース✓まとめ

61

Page 62: おひろめ会〜教師なしワード抽出

✓コーパス群の中の頻出ワード・フレーズの抽出は実現できた。精度・性能にはまだ課題が多い。

✓いわゆる「わかち書き」がまだ行えていない。

✓今後は、取得したワード・フレーズ群を教師データとして、文章の「わかち書き」を行えるようなアルゴリズムを実装予定(早ければ来月おひろめします)

本日お伝えしたいこと今後の展開

62

Page 63: おひろめ会〜教師なしワード抽出

✓もう少しワード抽出精度、ランキング精度が向上したら一般公開します。※パブリックスペースに設置済みなので興味のある人にはURLを教えます。

✓Amebaなうの解析もしたいが・・・ (´・ω・`)(なうとら)

本日お伝えしたいことついとら(仮)について

63

Page 64: おひろめ会〜教師なしワード抽出

ご清聴ありがとうございました。

ロケ地:自宅の近く64