英辞郎を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 みたいなのが出てくるだけでなく訳語が一緒にくっついて来る感じ。