naoya_t@hatenablog

いわゆるチラシノウラであります

word2vecに英辞郎データを放り込んでみた

英辞郎word2vecに放り込んでみたらちょっと面白かったのでメモを。word2vecについては前回の記事を参照。

使ったのはEIJI-138.TXT(最新より1つ古いバージョンです)
EDPさんから1980円ぐらいで買えます。

■semantically-motivated  {形} : 意味論的{いみろん てき}に動機付けられた
■semantically-restricted  {形} : 意味的{いみ てき}に制限{せいげん}された
■semantics  {名-1} : 意味論{いみろん}、記号論{きごうろん}
■semantics  {名-2} : 《コ》〔プログラムの〕動作
■semantics : 【@】セマンティックス、【分節】se・man・tics
■semantics course : 意味論{いみろん}のコース
■semaphore  {名-1} : 手旗信号{てばた しんごう}、信号装置{しんごう そうち}
■semaphore  {名-2} : 《コ》セマフォ◆共有リソースへの同時アクセスを一定数以下に制限する手続き
■semaphore  {自他動} : 〔手旗{てばた}などで〕信号{しんごう}を送る
■semaphore : 【発音】se'mэfo`:(r)、【分節】sem・a・phore
■semaphore signal : 腕木信号機
■semaphorically  {副} : シグナル[信号{しんごう}]のように[を使って]
■Semarang  {地名} : スマラン◆インドネシア

みたいな、いわゆるPDIC一行形式のテキストです

前処理(pre.sed)は適当。→https://gist.github.com/naoyat/6511066

$ nkf -Sw EIJI-138.TXT | sed 's|^■||g; s| : | |g' | mecab -Owakati | sed -f pre.sed > eiji-sep.txt
$ ./word2vec -train eiji-sep.txt -output eijiro.bin -cbow 0 -size 200 -window 5 -ne 1e-3 -threads 12 -binary 1

で。さっきの例だと

semantically motivated 意味 論 的 に 動機付け られ た 
semantically restricted 意味 的 さ れ た 
semantics 意味 論 
semantics 動作 
semantics se man tics 
semantics course 意味 論 の コース 
semaphore 手旗 信号 
semaphore セマフォ 共有 リソース へ の 同時 アクセス を 一定 数 以下 に 制限 する 手続き 
semaphore 手旗 を 送る 
semaphore sem a phore 
semaphore signal 腕木 信号 機 
semaphorically シグナル 
semarang スマ ラン インドネシア 

みたいな形で出てきます。この作業は数分で終わります。

distance

英語だけ / 日本語だけ出てきた例

(1) "find"

$ ./distance eijiro.bin 
Enter word or sentence (EXIT to break): find

Word: find  Position in vocabulary: 540

                                              Word       Cosine distance
------------------------------------------------------------------------
                                          discover		0.647269
                                              have		0.579349
                                           perhaps		0.573466
                                            enjoys		0.573027
                                           wanting		0.569895
                                           explain		0.569127
                                             finds		0.568667
                                              make		0.563059
                                         remembers		0.558325
                                             prove		0.558116
                                             seems		0.557699
...

(2) "found"

Enter word or sentence (EXIT to break): found

Word: found  Position in vocabulary: 3623

                                              Word       Cosine distance
------------------------------------------------------------------------
                                              came		0.632690
                                               was		0.619852
                                          murdered		0.618065
                                        discovered		0.597480
                                              knew		0.596393
                                          believed		0.594432
                                            warned		0.580562
                                            always		0.580353
                                           arrived		0.579750
                                           perhaps		0.567445
...

(3) 「決める」

Enter word or sentence (EXIT to break): 決める

Word: 決める  Position in vocabulary: 2919

                                              Word       Cosine distance
------------------------------------------------------------------------
                                      確かめる		0.549179
                                            日時		0.487234
                                               範		0.486695
                                         定める		0.474006
                                               否		0.466640
                                            試す		0.464715
                                      知らせる		0.460535
                                         ゴール		0.459710
                                      見つける		0.455723
                                         日取り		0.454051
                                      そろえる		0.453285
                                            選ぶ		0.448462
...

Wordの右端が揃わないのはword2vecさんがprintfで"%-50s"とかで出力してるからだけど気分悪いのでそろそろパッチあてたい…

英語と日本語がいい感じに混ざって出てくる例

(1) 「甘い」

Enter word or sentence (EXIT to break): 甘い

Word: 甘い  Position in vocabulary: 5821

                                              Word       Cosine distance
------------------------------------------------------------------------
                                            美味		0.557716
                                         いため		0.543678
                                         気立て		0.535328
                                            臭い		0.523367
                                            香り		0.519421
                                   甘ったるい		0.514284
                                      おいしい		0.514217
                                            甘党		0.512827
                                         食べる		0.504979
                                             sweet		0.504394
                                               汁		0.503534
                                            甘み		0.502789
                                            sweets		0.501972
                                      おいしく		0.501309
                                         食べ物		0.499953
                                         お菓子		0.497123
                                            風味		0.497013
                                         飲める		0.496544
                                         味わい		0.496355
                                      口当たり		0.495846
                                            菓子		0.495530
                                            sugary		0.493757
                                      ごちそう		0.491298
                                            触り		0.491183
                                            快い		0.486044
                                            派手		0.485320
                                      着こなし		0.483575
                                ドッグフード		0.483424
                                            塩気		0.482835
                                      柔らかい		0.477246
                                      にんにく		0.477052
                                            果物		0.476662
                                      おおらか		0.476204
                                      柔らかく		0.475804
                                      脂っこい		0.475188
                                            濁す		0.474357
                                            野菜		0.471492
                                           tasting		0.470279
                                チョコレート		0.468524
                                            砂糖		0.467779

日本語の類義語が出てきたり、対応する英単語が出てきたりで面白い。

(2) "semaphore"

Enter word or sentence (EXIT to break): semaphore

Word: semaphore  Position in vocabulary: 91870

                                              Word       Cosine distance
------------------------------------------------------------------------
                                            手旗		0.747331
                                       chrominance		0.696490
                                        tachometer		0.659605
                             マルチプレクサ		0.655955
                                       demodulator		0.646253
                                        commutator		0.623882
                                      シンクロ		0.620550
                                           decoder		0.619331
                                          selector		0.613113
                                       transmitter		0.613081
                                      energization		0.612786
                                       transceiver		0.611227
                                       regenerator		0.608915
                                            信号		0.602611
                             ジャイロトロン		0.600938
                                            sorter		0.599987
                             トランスポンダ		0.599316
                                          gyrotron		0.598349
                                            除算		0.596615
                                            励磁		0.596164
                                         アレー		0.595458
                                           sounder		0.593749
                                   ストローブ		0.593125
                                        transducer		0.593007
                                            腕木		0.592226
                                       multiplexer		0.591710
                                      ディザー		0.591218
                                           exciter		0.590356
                                            測深		0.587591
                                   セレクター		0.586178
                                            signal		0.586045
                                        reproducer		0.585224
                                   サイリスタ		0.585093
                                      energisation		0.584465
                                          clocking		0.583642
                                        theodolite		0.583461
                                            復調		0.582414
                                          baseband		0.580201
                                ファインダー		0.579673
                                          repeater		0.579630

word-analogy してみる

訳語を探すならこれ。
("see" と「見る」の関係が、"find" と何の関係に似ているかを調べます)

$ ./word-analogy eijiro.bin 
Enter three words (EXIT to break): see 見る find

Word: see  Position in vocabulary: 345
Word: 見る  Position in vocabulary: 68
Word: find  Position in vocabulary: 540

                                              Word              Distance
------------------------------------------------------------------------
                                      見つける		0.450238
                                      見いだす		0.439524
                                            喜ぶ		0.435330
                                      ちらりと		0.422546
                                      垣間見る		0.412824
                                とてつもなく		0.398096
                                         盗み見		0.397557
                                      食い入る		0.396959
...

"bread" における「パン」は "rice" における何?

Enter three words (EXIT to break): bread パン rice

Word: bread  Position in vocabulary: 5895
Word: パン  Position in vocabulary: 3637
Word: rice  Position in vocabulary: 3062

                                              Word              Distance
------------------------------------------------------------------------
                                            穀物		0.532821
                                               稲		0.521359
                                            小麦		0.507522
                                            鶏肉		0.502062
                                            白米		0.492565
                                         トマト		0.481958
                                            cereal		0.477263
                                            穀類		0.476511
                                            水稲		0.474788
                                         全粒粉		0.470013

なんかこれ日本語Wordnetみたいな使い方が出来そうな気がしますね。meronym/holonym, hyponym みたいなのが出てくるだけでなく訳語が一緒にくっついて来る感じ。