n-gramコーパスを用いた類義語自動獲得手法について

86
n-gramコーパスを用いた 類義語自動獲得手法について 1

description

 

Transcript of n-gramコーパスを用いた類義語自動獲得手法について

Page 1: n-gramコーパスを用いた類義語自動獲得手法について

n-gramコーパスを用いた類義語自動獲得手法について

1

Page 2: n-gramコーパスを用いた類義語自動獲得手法について

はじめに

今日は久しぶりにNLP(自然言語処理)周りの話です。

数式が少し出てきます。

2

Page 3: n-gramコーパスを用いた類義語自動獲得手法について

アジェンダ✓n-gramコーパスについて

- n-gramモデルとは?- n-gramコーパスとは?

✓バイドゥn-gramコーパスを用いての解析- エロワードの抽出- 絵文字の共起語抽出(絵文字サジェスト)

✓Amebaなうn-gramコーパスを用いての解析- n-gramコーパスの作成- ハッシュタグの解析- 顔文字の解析

3

Page 4: n-gramコーパスを用いた類義語自動獲得手法について

n-gramモデルとは?

http://yumore.seesaa.net/article/50509547.htmlより引用4

Page 5: n-gramコーパスを用いた類義語自動獲得手法について

n-gramモデルとは?

「ある文字列の中で、N個の文字列または単語の組み合わせが、どの程度出現するか」を調べるための言語モデル。

基本的には文章をシーケンシャルに評価する(直前(n-1)の単語を見て次(n)の単語を予測する)

さだ....

5

Page 6: n-gramコーパスを用いた類義語自動獲得手法について

n-gramモデルとは?

「ある文字列の中で、N個の文字列または単語の組み合わせが、どの程度出現するか」を調べるための言語モデル。

基本的には文章をシーケンシャルに評価する(直前(n-1)の単語を見て次(n)の単語を予測する)

さだ....さだ_はる   118さだ_まさし  148さだ_お_さん  18

6

Page 7: n-gramコーパスを用いた類義語自動獲得手法について

n-gramの「n」

文字・単語の組み合わせの数が「n」。「2-gram」の場合、二文字・語の連続する組み合わせについて評価する。

さださだ_まさしさだ_まさし_のさだ_まさし_の_CDさだ_まさし_の_セイ_ヤング

2-gram

7

Page 8: n-gramコーパスを用いた類義語自動獲得手法について

n-gramの「n」

文字・単語の組み合わせの数が「n」。「2-gram」の場合、二文字・語の連続する組み合わせについて評価する。

さださだ_まさしさだ_まさし_のさだ_まさし_の_CDさだ_まさし_の_セイ_ヤング

3-gram

8

Page 9: n-gramコーパスを用いた類義語自動獲得手法について

n-gramの「n」

文字・単語の組み合わせの数が「n」。「2-gram」の場合、二文字・語の連続する組み合わせについて評価する。

さださだ_まさしさだ_まさし_のさだ_まさし_の_CDさだ_まさし_の_セイ_ヤング

4-gram

9

Page 10: n-gramコーパスを用いた類義語自動獲得手法について

n-gramの「n」

文字・単語の組み合わせの数が「n」。「2-gram」の場合、二文字・語の連続する組み合わせについて評価する。

さださだ_まさしさだ_まさし_のさだ_まさし_の_CDさだ_まさし_の_セイ_ヤング5-gram

10

Page 11: n-gramコーパスを用いた類義語自動獲得手法について

何に使用するか?

自然言語処理の確率統計的な分野で使用されることが多いです。

応用事例については後述。(ひとつ例をあげるとワードサジェストなど)

11

Page 12: n-gramコーパスを用いた類義語自動獲得手法について

n-gramコーパスとは?

ある特定の文書群(コーパス)をn-gramモデルに基づいて解析したデータセットのこと。

各社、研究機関、個人等々が公開している。

12

Page 13: n-gramコーパスを用いた類義語自動獲得手法について

google 日本語 n-gramデータ

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

Page 14: n-gramコーパスを用いた類義語自動獲得手法について

google 日本語 n-gramデータ

GSK(言語処理協会)経由で提供されている(※有償、営利使用不可)

nの単位:1~7分割単位:ワード

わかち書き:MeCab?

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

Page 15: n-gramコーパスを用いた類義語自動獲得手法について

Baiduモバイルウェブコーパス

http://www.baidu.jp/unlp/15

Page 16: n-gramコーパスを用いた類義語自動獲得手法について

Baiduモバイルウェブコーパス

「不自然言語処理コンテスト」向けに提供されているデータ(※営利使用不可)

nの単位:1~5分割単位:ワード

わかち書き:MeCab+ipadic

http://www.baidu.jp/unlp/16

Page 17: n-gramコーパスを用いた類義語自動獲得手法について

EC2使ってコーパス作ってる人

http://d.hatena.ne.jp/s-yata/20100628/127773764117

Page 18: n-gramコーパスを用いた類義語自動獲得手法について

EC2使ってコーパス作ってる人

頑張れ!!

http://d.hatena.ne.jp/s-yata/20100628/127773764118

Page 19: n-gramコーパスを用いた類義語自動獲得手法について

n-gramコーパスの中身

2874 個 の おっぱい リスト 14288 円 メーカー : ( 152880 件 を 表示 前 202881 ~ 2900 件 を 2628988 m 地図 は 北 2029 % の カスタマー が 2829 ( 土 )~ 6 5029 ( 木 ) に 1229 ) / 秀穂 那須 1029 ) が 主演 。 1029 ) 男 大阪 </S> 1829 ) 男 東京 </S> 2629 2010 夏 ・ 中学生 2429 <EMOJI_53A> 今度 行き たい 11129 HOME ( 0 ) 3829 「 釣り ロマン 」 18529 】 「 上弁天 」 9429 に なっ ちゃう ん 1429 コメント は まだ あり 172

バイドゥ ウェブコーパス5㌘より抜粋19

Page 20: n-gramコーパスを用いた類義語自動獲得手法について

アジェンダ✓n-gramコーパスについて

- n-gramモデルとは?- n-gramコーパスとは?

✓バイドゥn-gramコーパスを用いての解析- エロワードの抽出- 絵文字の共起語抽出(絵文字サジェスト)

✓Amebaなうn-gramコーパスを用いての解析- n-gramコーパスの作成- ハッシュタグの解析- 顔文字の解析

20

Page 21: n-gramコーパスを用いた類義語自動獲得手法について

Baidu絵文字入りモバイルウェブコーパス

21

Page 22: n-gramコーパスを用いた類義語自動獲得手法について

[参考]Baidu

22

Page 23: n-gramコーパスを用いた類義語自動獲得手法について

Baiduモバイルウェブコーパス

モバイル向けサイトを対象にクローリングしたデータから構築。絵文字データが含まれるのが特徴(※Googleのものには含まれていない)

エロいワードが多いのも特徴

http://japan.zdnet.com/story_media/20404271/AI/001.jpg

23

Page 24: n-gramコーパスを用いた類義語自動獲得手法について

コーパスがエロい・・・?

http://twitter.com/mhagiwara/status/1680602367624

Page 25: n-gramコーパスを用いた類義語自動獲得手法について

以下の2点について実施してみました。

• いわゆる「エロワード」の半自動獲得• 絵文字との共起語の抽出(Baidu版 絵文字サジェストツール)

Baiduコーパスを用いての解析

25

Page 26: n-gramコーパスを用いた類義語自動獲得手法について

−目的−ブログなど多くのテキスト投稿サービスでは公序良俗に反する語をブロックするためのNGワードリストが存在(多くがエロワード)

エロワードは世につれ人につれ変化・増殖し続ける。人手でメンテナンスをし続けるのは大変。

エロワードの半自動獲得

26

Page 27: n-gramコーパスを用いた類義語自動獲得手法について

−手法−いくつかの手法が考えられる。

ひとつの手法として、教師データ(あらかじめ用意した初期エロワード辞書群)との分布類似度を算出し、類似度が高いものを抽出し辞書に追加していく方法。

エロワードの半自動獲得

27

Page 28: n-gramコーパスを用いた類義語自動獲得手法について

「似た語は似た文脈で出現する」という仮説に基づいて算出される類似度。

分布類似度とは?

さだ_まさし_の_歌_は_暗い_けど_好き中島_みゆき_の_歌_は_暗い_けど_好き彼_の_性格_は_暗い_から_嫌いエグザイル_は_2038_年_に_日本_の_人口_を_抜くから_好きエグザイル_の_歌_は_嫌い。松崎_しげる_の_顔_は_暗い。いや_黒い。

28

Page 29: n-gramコーパスを用いた類義語自動獲得手法について

「似た語は似た文脈で出現する」という仮説に基づいて算出される類似度。

分布類似度とは?

さだ_まさし_の_歌_は_暗い_けど_好き中島_みゆき_の_歌_は_暗い_けど_好き彼_の_性格_は_暗い_から_嫌いエグザイル_は_2038_年_に_日本_の_人口_を_抜くから_好きエグザイル_の_歌_は_嫌い。松崎_しげる_の_顔_は_暗い。いや_黒い。

「さだまさし」と「中島みゆき」は同じような文脈で語られているので似ている、とする。

29

Page 30: n-gramコーパスを用いた類義語自動獲得手法について

1.文章群から語を抽出し、語wと、その共起語vとの組み合わせの出現頻度を計算 ※今回はn-gramコーパスで構築済み

2.語wと共起語vの相互情報量を計算(Weight関数と呼ばれる)3.語wiと語wjの類似度を算出(Measure関数と呼ばれる)

分布類似度の計算

30

Page 31: n-gramコーパスを用いた類義語自動獲得手法について

n-gramコーパスデータを使用。語の組み合わせの出現頻度はn-gramデータから(n > 1)。語単体の頻度は1-gramデータから。

1.語・共起語の出現頻度

2874 個 の おっぱい リスト 14288 円 メーカー : ( 152880 件 を 表示 前 202881 ~ 2900 件 を 2628988 m 地図 は 北 2029 % の カスタマー が 2829 ( 土 )~ 6 5029 ( 木 ) に 1229 ) / 秀穂 那須 1029 ) が 主演 。 1029 ) 男 大阪 </S> 1829 ) 男 東京 </S> 2629 2010 夏 ・ 中学生 24

31

Page 32: n-gramコーパスを用いた類義語自動獲得手法について

Weight関数を用いて算出。一般的に以下の式が用いられている模様。

freq(w):語wの出現頻度freq(v):共起語vの出現頻度freq(w,v):語wと共起語vの組み合わせの出現頻度

2.語と共起語の相互情報量

32

Page 33: n-gramコーパスを用いた類義語自動獲得手法について

Measure関数を用いて算出。[2010朝倉]によるとSimpson係数とJaccard係数を組み合わせたSimpson-Jaccardが最も精度が高いとされる。

※Vi、Vjは語wi,wjの共起ベクトル※Simpson係数・Jaccard係数ともある集合間の類似性の尺度 今回は共起集合の類似性を測るために用いられている。

3.語どうしの類似度

33

Page 34: n-gramコーパスを用いた類義語自動獲得手法について

[2010朝倉]http://nlp.nagaokaut.ac.jp/arc/10/10NLP-asakura.pdf

前記の式などに加え、共起語の各素性の出現確率を評価している。

今回はこの論文に提示されている手法にならった。

「素性の相対性による分布類似度計算」

論文より図引用

34

Page 35: n-gramコーパスを用いた類義語自動獲得手法について

エロワードの話に戻ります

35

Page 36: n-gramコーパスを用いた類義語自動獲得手法について

厳選した10のワードで計算を実施。(詳細は私の名誉に関わるので割愛)

ちなみに「エッチ」だと...

エロワードの分布類似度を計算

エッチ - エロ 0.11415440804805937エッチ - セックス 0.10653839679559782エッチ - 彼女 0.10549802659933685エッチ - 女の子 0.10453876421875694エッチ - 人妻 0.1028616330445477エッチ - <EMOJI_B0D> 0.10233967425842201エッチ - 好き 0.10187555135252273エッチ - 娘 0.10074545085596971エッチ - 体験 0.10030381251512867エッチ - 毎日 0.09940810653987928

・・

<EMOJI_B0D>=

36

Page 37: n-gramコーパスを用いた類義語自動獲得手法について

以下3手法にて精度評価を実施。1.ベーシックな分布類似度式による算出2.分布類似度+Simpson-Jaccard [朝倉2010]

3. 2+素性の相対性を考慮 [朝倉2010]

有志数名に、それぞれの結果について• 語の関連があるか?(関連語)• 同じような意味の語か?(類義語)で評価してもらいました。

精度評価

37

Page 38: n-gramコーパスを用いた類義語自動獲得手法について

精度評価結果(語の関連性)

40%

60%

80%

100%

手法1 手法2 手法3

38

Page 39: n-gramコーパスを用いた類義語自動獲得手法について

精度評価結果(語の類義性)

5%

15%

25%

35%

手法1 手法2 手法3

39

Page 40: n-gramコーパスを用いた類義語自動獲得手法について

• 手法1→手法2は大幅に精度向上している。手法2→手法3は微妙。

• 関連語で5割~9割、類義語で1~3割程度の精度で正しくワードの抽出が出来ている。

• 評価者の感性、歩んできた人生により評価の揺らぎが多いため「正しさ」の判断が少し難しい。

考察

40

Page 41: n-gramコーパスを用いた類義語自動獲得手法について

初期辞書データ(10ワード×3種類)を元にインクリメンタルな辞書拡張を実施してみました。

[手法]初期データの分布類似度を算出し、 辞書に適したワードを辞書に追加 →分布類似度算出 →辞書追加.....  を繰り返し実施。辞書未登録で分布類似度の高い語上位100語から辞書に適した語を抽出し追加

インクリメンタルな辞書拡張

41

Page 42: n-gramコーパスを用いた類義語自動獲得手法について

インクリメンタルな辞書拡張

0

10

20

30

40

1回目 2回目 3回目 4回目 5回目

42

Page 43: n-gramコーパスを用いた類義語自動獲得手法について

• 何回か繰り返すと収束する(今回は3~4回で収束してしまった)

• 抽出対象の語の範囲を広げるともう少し沢山のワードが獲得できる。

• 半自動的な辞書拡張手法としてはそれなりに有効と思われる。

• BootStrap手法としてはかなり未成熟なのでもう少し調査します。

考察

43

Page 44: n-gramコーパスを用いた類義語自動獲得手法について

エロワードばかりではアレなので

44

Page 45: n-gramコーパスを用いた類義語自動獲得手法について

一般的なワードでの結果(為替)

為替 - FX 0.0701096506659567為替 - レート 0.06259698742992559為替 - 運用0.06042366216085525為替 - 外国0.058799844151470174為替 - ディーラー 0.05735695738694635為替 - 資産0.055435815549429605為替 - 入門0.05232985446935419為替 - チャート0.04980454574094188為替 - 売買0.04927509063333216為替 - 先物0.04824717092086649

・・

45

Page 46: n-gramコーパスを用いた類義語自動獲得手法について

一般的なワードでの結果(サッカー)

サッカー - 野球0.13373671096183018サッカー - テニス 0.0918404883164821サッカー - ゴルフ 0.08504703320048444サッカー - チーム 0.07961197269662577サッカー - 試合0.07711954365644495サッカー - 大会0.07702996997666198サッカー - プロ0.07662113919947415サッカー - 高校0.0725147419575286サッカー - 漫画0.06882302518118967サッカー - メンバー0.06849300043195472

・・

46

Page 47: n-gramコーパスを用いた類義語自動獲得手法について

一般的なワードでの結果(ブログ)

ブログ - キャニオニング0.46469658771106315ブログ - 受画 0.11975034678985662ブログ - 日記 0.1097484574232766ブログ - 紹介 0.09879163577196441ブログ - 記事 0.09813513570488815ブログ - <EMOJI_546>0.09719796981762122ブログ - 画像 0.09570307958644202ブログ - 見る 0.09472409933583924ブログ - □0.09466494353310652ブログ - ゲーム0.0939216442782036

・・

47

Page 48: n-gramコーパスを用いた類義語自動獲得手法について

一般的なワードでの結果(コスメ)

コスメ - 飲料 0.1315343475643398コスメ - 食品 0.09995353106829284コスメ - <EMOJI_195>0.07684385370515374コスメ - サプリメント 0.0668208753259571コスメ - 香水 0.064557866506281コスメ - アクセサリー 0.06399098585323154コスメ - 雑貨 0.0631873841230999コスメ - インテリア0.059873448412962174コスメ - ブランド 0.058499392875879214コスメ - ファッション 0.05843526443912576

・・

48

Page 49: n-gramコーパスを用いた類義語自動獲得手法について

一般的なワードでの結果(大相撲)

大相撲 - バスケット0.05180321648370331大相撲 - 八百長0.04568992635712712大相撲 - ラグビー 0.03513069449040805大相撲 - 裁判 0.027690371652517847大相撲 - テニス0.024491134248894916大相撲 - 速報 0.024070717542493413大相撲 - 野球 0.013918762159274874大相撲 - <EMOJI_1BE>0.013795160758545503大相撲 - こい 0.011283944598435737大相撲 - プロ 0.009334867761007871

・・

49

Page 50: n-gramコーパスを用いた類義語自動獲得手法について

• エロワードのような特徴・偏りの激しいと思われるワードでなくても、一般的なワードでも関連性の高い語の抽出が行えている。

• ただし精度はコーパス次第のところがある。

考察

50

Page 51: n-gramコーパスを用いた類義語自動獲得手法について

絵文字サジェストツールの話

51

Page 52: n-gramコーパスを用いた類義語自動獲得手法について

Baiduさんのn-gramコーパスデータを使って絵文字サジェストツールを作成。以前作成したサジェストフレームワークで構築。UIは酷い。

1. 絵文字と、絵文字の直前に出現する語群の出現頻度を算出。一定しきい値で枝刈り。

2. 語群の文字を反転処理(候補絵文字を後方一致で探索するため)3. 2.のデータをTrie木構造に変換(今回はDouble Array Trie Tree)4. 入力された文字列を反転した上でTrie木からCommon Prefix Searchで検索し、一致するデータがあればサジェスト候補として表示。

Baidu版 絵文字サジェストツール

52

Page 53: n-gramコーパスを用いた類義語自動獲得手法について

デモ

http://nd-ilab.jp/suggest/sample/baidu/index.html

53

Page 54: n-gramコーパスを用いた類義語自動獲得手法について

Amazon EC2上で提供されているHigh Performance Computing(HPC)向けのインスタンス。2010/07/13にリリース。

これがたったの1.6$ / hour (約150円くらい)

[おまけ]Amazon EC2 HPC

-23 GB of memory-33.5 EC2 Compute Units (2 x Intel Xeon X5570, quad-core “Nehalem” architecture)-1690 GB of instance storage-64-bit platform-I/O Performance: Very High (10 Gigabit Ethernet)

54

Page 55: n-gramコーパスを用いた類義語自動獲得手法について

トライ木構造の辞書作成は作成時に瞬間的に巨大なメモリ空間が必要になります。

Amazon EC2 HPCを辞書作成時だけ使用して今まで(メモリ4GB環境)では作れなかった規模の辞書の作成を実施しました。

[おまけ]Amazon EC2 HPC

55

Page 56: n-gramコーパスを用いた類義語自動獲得手法について

アジェンダ✓n-gramコーパスについて

- n-gramモデルとは?- n-gramコーパスとは?

✓バイドゥn-gramコーパスを用いての解析- エロワードの抽出- 絵文字の共起語抽出(絵文字サジェスト)

✓Amebaなうn-gramコーパスを用いての解析- n-gramコーパスの作成- ハッシュタグの解析- 顔文字の解析

56

Page 57: n-gramコーパスを用いた類義語自動獲得手法について

Amebaなうn-gramコーパス

57

Page 58: n-gramコーパスを用いた類義語自動獲得手法について

Amebaなうの直近1ヶ月(6月分)のつぶやきデータを用いてn-gramコーパスを作成。

Amebaなう n-gramコーパス

nの単位:1~7分割単位:ワード

わかち書き:MeCab+ipadic異なり1グラム数:122,500 / 異なり2グラム数:1,195,628異なり3グラム数:1,586,205 / 異なり4グラム数:1,021,938異なり5グラム数:499,788 / 異なり6グラム数:231,064

異なり7グラム数:117,515

58

Page 59: n-gramコーパスを用いた類義語自動獲得手法について

異なりn㌘数の比較。

Amebaなう n-gramコーパス

0

750000

1500000

2250000

3000000

1-gram 2-gram 3-gram 4-gram 5-gram 6-gram 7-gram

AmebaなうBaidu(DoCoMo)

59

Page 60: n-gramコーパスを用いた類義語自動獲得手法について

• ノイズが少ない(ツールからのアクセスが無い等の理由)• ニュースサイトやブログなどよりも口語表現が多い

• 絵文字、顔文字が多い• 絵文字はメタ文字表現(<EMOJI_xxx>)に置換し1文字として抽出

• 顔文字も出来る限り1文字で抽出(約7,500パターンの独自顔文字辞書を自動作成)

• Amebaのユーザー特性が凝縮

なうn-gramコーパスの特徴

60

Page 61: n-gramコーパスを用いた類義語自動獲得手法について

• わかち書きツール:MeCab+ipadic• わかち書き処理:Hadoop

• Map/Reduceそれぞれ5タスク割り当て• 1~7-gramの生成におおよそ4~5時間位。

• 文字正規化• 全角英数字→半角小文字英数字• 半角カナ→全角カナ• Unicode正規化(NFKC)

• ヒューリスティックルール(辞書ベース)• 顔文字の抽出

今回の処理

61

Page 62: n-gramコーパスを用いた類義語自動獲得手法について

Unicodeは複数の語を結合して一文字にする事ができる。その形式を定めるのが正規化ルール。

※見た目「ガ」の文字を表すのに、「ガ」でも、「カ」+濁点の合成でも構わない

正規化ルールは以下4種。• Normalization Form D(NFD)• Normalization Form C(NFC)• Normalization Form KD(NFKD)• Normalization Form KC(NFKC)「D」は「Decomposition(分解)」(ガ→カ+濁点)「C」は「Composition(合成)」(カ+濁点→ガ)「K」は「Compatibility(互換性)」(全角/半角カナを等価とするかどうか)

[補足]Unicode正規化

http://ameblo.jp/just-do-neet/entry-10206014900.html62

Page 63: n-gramコーパスを用いた類義語自動獲得手法について

以下の2点について実施してみました。

• 絵文字の分布類似度• 顔文字の分布類似度

Amebaなうコーパスを用いての解析

63

Page 64: n-gramコーパスを用いた類義語自動獲得手法について

先に述べた分布類似度を用いて、ある絵文字と同じような文脈で用いられている絵文字・単語を抽出。

以下いくつか抜粋して結果を紹介。

絵文字の分布類似度解析

64

Page 65: n-gramコーパスを用いた類義語自動獲得手法について

(031)での結果

<EMOJI_031> - <EMOJI_123> 0.25245663283888076<EMOJI_031> - ♪0.23865945647496203<EMOJI_031> - ☆0.2233787922434289<EMOJI_031> - <EMOJI_139> 0.21505030767963476<EMOJI_031> - <EMOJI_320> 0.20905272608162664<EMOJI_031> - <EMOJI_176> 0.20767832299973635<EMOJI_031> - ww0.20396530274266259<EMOJI_031> - <EMOJI_035> 0.1952646415960877<EMOJI_031> - <EMOJI_029> 0.19118380193173534<EMOJI_031> - ー0.18532801238518545

・・

65

Page 66: n-gramコーパスを用いた類義語自動獲得手法について

(022)での結果

<EMOJI_022> - てらっ5.05433098481788<EMOJI_022> - <EMOJI_106> 0.21255982715221317<EMOJI_022> - <EMOJI_178> 0.20371824309787556<EMOJI_022> - <EMOJI_105> 0.19694261277461542<EMOJI_022> - <EMOJI_324> 0.1960739883132334<EMOJI_022> - <EMOJI_028> 0.19591157145392102<EMOJI_022> - <EMOJI_143> 0.19367459051404434<EMOJI_022> - <EMOJI_089> 0.1894972913601391<EMOJI_022> - <EMOJI_319> 0.1853140205685605<EMOJI_022> - <EMOJI_187> 0.18316119166397835

・・

66

Page 67: n-gramコーパスを用いた類義語自動獲得手法について

(021)での結果

<EMOJI_021> - 雨0.1980766824375306<EMOJI_021> - 降っ 0.160789228797033<EMOJI_021> - <EMOJI_143> 0.15832172025846883<EMOJI_021> - <EMOJI_325> 0.15752899334689507<EMOJI_021> - 暑い 0.15600103135195192<EMOJI_021> - <EMOJI_089> 0.15588927293536636<EMOJI_021> - <EMOJI_144> 0.15288842785042273<EMOJI_021> - <EMOJI_141> 0.15264128047608577<EMOJI_021> - <EMOJI_022> 0.1524110403297163<EMOJI_021> - 晴れ 0.1520281112500744

・・

67

Page 68: n-gramコーパスを用いた類義語自動獲得手法について

(077)での結果

<EMOJI_077> - ビール0.20100120017122702<EMOJI_077> - <EMOJI_075> 0.16814782000472359<EMOJI_077> - <EMOJI_188> 0.16407662484190644<EMOJI_077> - <EMOJI_134> 0.1598560562097877<EMOJI_077> - 淲0.15753861586037332<EMOJI_077> - <EMOJI_007> 0.1520971768068388<EMOJI_077> - <EMOJI_014> 0.15101611087607572<EMOJI_077> - <EMOJI_162> 0.15081721574211884<EMOJI_077> - <EMOJI_044> 0.14580103348348722<EMOJI_077> - 酒0.13778630432134603

・・

68

Page 69: n-gramコーパスを用いた類義語自動獲得手法について

(181)での結果

<EMOJI_181> - <EMOJI_150> 0.0998223599336455<EMOJI_181> - <EMOJI_169> 0.09619906986114168<EMOJI_181> - 推し 0.09407484828035773<EMOJI_181> - はる 0.0751037382171799<EMOJI_181> - <EMOJI_008> 0.06918233066750942<EMOJI_181> - メイク0.05804747259025906<EMOJI_181> - こじ 0.05277048261006679<EMOJI_181> - ミ0.05059336124231738<EMOJI_181> - 化粧 0.049448742078198986<EMOJI_181> - <EMOJI_113> 0.04768875635910332

・・

69

Page 70: n-gramコーパスを用いた類義語自動獲得手法について

絵文字間の相関関係をグラフ化。凝縮度が高くてカオス

相関関係をグラフで可視化

70

Page 71: n-gramコーパスを用いた類義語自動獲得手法について

Markov Clustering Algorithmを用いて絵文字のクラスタリングを試みました。(分布類似度=2絵文字間の距離≒遷移確率と置き換えて算出。)

※MCL:http://www.micans.org/mcl/

MCLによるクラスタリング

71

Page 72: n-gramコーパスを用いた類義語自動獲得手法について

実施結果(カッコ<>内は絵文字の注釈表記)

MCLによるクラスタリング

<足あと> <あじさい> <てんとうむし> <しっぽフリフリ> <かたつむり> <自転車> <旗> <クラブ> <電車>

<あじさい> <てんとうむし> <車> <流れ星> <しっぽフリフリ> <右下矢印> <夜の街>

<end> <雪> <流れ星> <かさ> <夜の街>

<あじさい> <雪> <かさ> <クマノミ> <雪> <しっぽフリフリ> <かさ>

<足あと> <宇宙人> <雪> <かさ> <クマノミ> <足あと> <カバン> <しっぽフリフリ>

<とかげ> <あじさい> <かさ> <あじさい> <電車> <かさ>

<雪> <かさ> <ドクロ> <あじさい> <電車> <流れ星> <CD> <ビル>

<流れ星> <お月様> <ビル> <夜の街> <スペード> <ダイヤ> <フラッグ> <クラブ>

<電車> <車> <CD> <病院> <射手座> <山羊座> <乙女座> <牡羊座> <宇宙人> <蠍座> <水瓶座> <獅子座> <蟹座> <牡牛座> <クマノミ> <双子座>

<ヒマワリ> <足あと> <流れ星> <夜の街> <メガネ> <耳> <ドクロ>

<チューリップピンク> <チューリップ黄> <チューリップ紫> <チューリップオレンジ>

<流れ星> <ビル> <夜の街>

<地下鉄> <流れ星> <夜の街> <観覧車> <天使> <CD> <クマ> <カメ> <がま口財布> <満月> <演劇> <チケット> <お金> <ゴルフ>

<メガネ> <メモ> <メモ> <NEW> <てんとうむし> <流れ星> <NEW> <夜の街>

<電車> <流れ星> <病院> <ビル> <夜の街>

72

Page 73: n-gramコーパスを用いた類義語自動獲得手法について

特におもしろかったものを抜粋

MCLによるクラスタリング

<足あと> <あじさい> <てんとうむし> <しっぽフリフリ> <かたつむり>

<流れ星> <お月様> <ビル> <夜の街>

<チューリップピンク> <チューリップ黄> <チューリップ紫> <チューリップオレンジ>

<メガネ> <メモ> <メモ> <NEW>

<スペード> <ダイヤ> <フラッグ> <クラブ>

<射手座> <山羊座> <乙女座> <牡羊座> <宇宙人> <蠍座> <水瓶座> <獅子座> <蟹座> <牡牛座> <クマノミ> <双子座>

 ..........

73

Page 74: n-gramコーパスを用いた類義語自動獲得手法について

• 分布類似度の算出により、各絵文字と意義・用途が似ている絵文字や語の抽出を行うことができた。

• グラフ構造を元にクラスタリングすることで、類似性のあるグループにクラスタリングすることができた。

考察

74

Page 75: n-gramコーパスを用いた類義語自動獲得手法について

顔文字についても同様に分布類似度を調査。ある顔文字と同じような文脈で用いられている絵/顔文字・単語を抽出。

顔文字の分布類似度解析

75

Page 76: n-gramコーパスを用いた類義語自動獲得手法について

(`・ω・) での結果

(`・ω・) - キリッ0.1768694301100037(`・ω・) - ⊃ 0.09913242362438676(`・ω・) - ({( 0.09405018119300235(`・ω・) - ぐ0.031062102211042445(`・ω・) - 頑張る0.028857016807085342(`・ω・) - ぬ0.02608930784914413(`・ω・) - σ0.022498088286870093(`・ω・) - つ0.016193426515270032(`・ω・) - ω0.016122858488317616(`・ω・) - くる 0.01345138088760404

・・

76

Page 77: n-gramコーパスを用いた類義語自動獲得手法について

(^∀^)ノでの結果

(^∀^)ノ - ただいま0.06916344408426699(^∀^)ノ - かえり 0.06890434881805171(^∀^)ノ - らっしゃい 0.06795858079282872(^∀^)ノ - お疲れさま 0.05823929001282186(^∀^)ノ - おっ0.05591209864361552(^∀^)ノ - おやすみなさい 0.055199102468491(^∀^)ノ - シ 0.0529766713691993(^∀^)ノ - 帰り0.04651788654030653(^∀^)ノ - なさい 0.04506786291842584

・・

77

Page 78: n-gramコーパスを用いた類義語自動獲得手法について

(* ́д`) での結果

(* ́д`) - ハァハァ 0.11168727359492218(* ́д`) - はあ 0.10079146007557346(* ́д`) - はぁ 0.09144542975809382(* ́д`) - 萌え 0.08668152231221557(* ́д`) - あら 0.0828216114116598(* ́д`) - ハア 0.07886784003012988(* ́д`) - あい 0.07516063088790395(* ́д`) - д0.04393643491834669(* ́д`) - ハァ 0.04391789518745296(* ́д`) - うん 0.041770270015884854

・・

78

Page 79: n-gramコーパスを用いた類義語自動獲得手法について

(/ω\) での結果

(/ω\) - 照 0.16208491557582996(/ω\) - /// 0.12872038557250623(/ω\) - 照れる 0.1280711164456965(/ω\) - 恥ずかしい 0.11152828905321341(/ω\) - イヤ 0.09964963425187295(/ω\) - きゃ 0.09765195595553885(/ω\) - きゃー 0.09551633971030135(/ω\) - いえいえ 0.08766541396665446(/ω\) - \0.0857860000269694(/ω\) - かっこいい 0.07871911676808412

・・

79

Page 80: n-gramコーパスを用いた類義語自動獲得手法について

\(^0^)/での結果

\(^0^)/ - オワタ 0.09445225976273072\(^0^)/ - おめでとう 0.036873637365873665\(^0^)/ - ああ 0.026846223878548046\(^0^)/ - 0 0.024911172513660745\(^0^)/ - 終わっ 0.019634091253330398\(^0^)/ - ありがとう 0.01680880907554066\(^0^)/ - ^ 0.016789481994256183\(^0^)/ - ぜ 0.016144113065194438\(^0^)/ - ください 0.015391342223916664\(^0^)/ - くれ0.01494851710964888

・・

80

Page 82: n-gramコーパスを用いた類義語自動獲得手法について

• 顔文字についても、分布類似度の算出により意義・用途が似ている絵文字や語の抽出を行うことができた。

考察

82

Page 83: n-gramコーパスを用いた類義語自動獲得手法について

まとめ

83

Page 84: n-gramコーパスを用いた類義語自動獲得手法について

• 分布類似度という概念を用いると似た語同士の抽出を行うことができます。(一般的な単語、絵文字、顔文字関わらず)

• n-gramコーパスデータがあると、上記のような自然言語処理を行うのにとても便利です。

まとめ

84

Page 85: n-gramコーパスを用いた類義語自動獲得手法について

• 100%の精度は難しいですが(そもそも人間にも無理)、大規模なデータを統計的に扱うことである程度の類義語や意味の自動獲得は既に可能な領域にあります。

• 身の回りの言葉まわりの処理を自動化していきましょう。手作業を減らしましょう。サービスにも活かしましょう。

自然言語処理は自動化できる

85

Page 86: n-gramコーパスを用いた類義語自動獲得手法について

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

86