自然言語処理/Word2vec
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
#contents
Word2vec とは、単語をベクトル化する技術で、各単語を何百次...
これによって
king - man + woman = queen
などを実現する事が出来るようです。すばらしい。
**ダウンロードとインストール [#r93d71f6]
$ git clone https://github.com/svn2github/word2vec.git
$ cd word2vec/
$ make
gcc word2vec.c -o word2vec -lm -pthread -O3 -march=nativ...
gcc word2phrase.c -o word2phrase -lm -pthread -O3 -march...
gcc distance.c -o distance -lm -pthread -O3 -march=nativ...
distance.c: In function ‘main’:
distance.c:31:8: warning: unused variable ‘ch’ [-Wunused...
char ch;
^
gcc word-analogy.c -o word-analogy -lm -pthread -O3 -mar...
word-analogy.c: In function ‘main’:
word-analogy.c:31:8: warning: unused variable ‘ch’ [-Wun...
char ch;
^
gcc compute-accuracy.c -o compute-accuracy -lm -pthread ...
compute-accuracy.c: In function ‘main’:
compute-accuracy.c:29:109: warning: unused variable ‘ch’...
char st1[max_size], st2[max_size], st3[max_size], st4...
...
chmod +x *.sh
**デモ [#jf725258]
$ cat demo-word.sh
make
if [ ! -e text8 ]; then
wget http://mattmahoney.net/dc/text8.zip -O text8.gz
gzip -d text8.gz -f
fi
time ./word2vec -train text8 -output vectors.bin -cbow 1...
./distance vectors.bin
手動で順次やってみます。
*** 学習データをダウンロード [#ofb8b9c5]
$ wget http://mattmahoney.net/dc/text8.zip -O text8.gz
text8.gz 1...
$ gzip -d text8.gz -f
*** 学習処理。 [#n45b94e3]
$ time ./word2vec -train text8 -output vectors.bin -cbow...
Starting training using file text8
Vocab size: 71291
Words in train file: 16718843
Alpha: 0.000005 Progress: 100.10% Words/thread/sec: 14...
real 14m24.749s
user 28m38.580s
sys 0m2.920s
学習出来たようです
*** ベクトル的に近しい文字を探す [#taaa3cd8]
$ ./distance vectors.bin
Enter word or sentence (EXIT to break): tokyo
Word: tokyo Position in vocabulary: 4915
Word ...
--------------------------------------------------------...
osaka 0.71...
nagoya 0.68...
chiba 0.64...
yokohama 0.64...
kanto 0.63...
kobe 0.63...
niigata 0.61...
...
Enter word or sentence (EXIT to break): bouldering
Word: bouldering Position in vocabulary: 20827
Word ...
--------------------------------------------------------...
climbing 0.55...
mountaineering 0.55...
paragliding 0.47...
diving 0.47...
climbers 0.46...
....
Enter word or sentence (EXIT to break):EXIT
なるほど。。
*** ベクトル演算[#r151e593]
ベクトルの加減を行ってみます。
$ ./word-analogy vectors.bin
Enter three words (EXIT to break): man king woman
Word: man Position in vocabulary: 243
Word: king Position in vocabulary: 187
Word: woman Position in vocabulary: 1013
Word ...
--------------------------------------------------------...
queen 0.58...
daughter 0.48...
heiress 0.47...
burgundy 0.47...
vii 0.47...
marries 0.47...
ahasuerus 0.46...
infanta 0.46...
anjou 0.46...
Queenが出力されましたね。
今回、Word2vecで、英語の単語のベクトル化を行いましたが、...
** 日本語Wikipediaのデータを学習させる [#y2a861e8]
やってみます。
*** まず、Rubyなどの準備 [#be33bf26]
$ git clone https://github.com/sstephenson/rbenv.git ~/....
$ git clone https://github.com/sstephenson/ruby-build.gi...
$ vi ~/.bashrc
export PATH="$HOME/.rbenv/bin:$PATH"
を追加して
$ source ~/.bashrc
途中エラーが出ましたが、よく見ると
Try running `apt-get install -y libssl-dev libreadline-d...
などが書いてあるのでいわれたとおり対処。
$ rbenv install 2.5.0
Downloading ruby-2.5.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.t...
Installing ruby-2.5.0...
Installed ruby-2.5.0 to /home/ubuntu/.rbenv/versions/2.5.0
$ rbenv local 2.5.0
$ rbenv global 2.5.0
$ rbenv exec gem install wp2txt bundler
Ruby関連の準備は完了
***日本語Wikipediaデータのダウンロードと変換 [#wdb47da5]
日本語データはWikipediaのデータを使う事にします。
$ mkdir wikipedia && cd $_
$ curl https://dumps.wikimedia.org/jawiki/latest/jawiki-...
-o jawiki-latest-pages-articles.xml.bz2
2G以上あるのでご注意。
ダウンロードしたデータをただのテキストファイルに変換しま...
$ rbenv exec wp2txt --input-file jawiki-latest-pages-art...
WP2TXT is spawming 2 threads to process data
Preparing ... This may take several minutes or more ca.....
jawiki-latest: 8% |oooooooooooooo
…
Processing finished
$
たくさんのファイルが出来るので、ファイルをMecabで分かち書...
$ cat jawiki-latest-pages-articles.xml*.txt | \
mecab -Owakati -b 81920 > jawiki-latest-pages-article...
*** 学習 [#xe270072]
さっき英語で学習処理をしましたが、今度はこの学習データを...
$ cd ../word2vec/
$ ./word2vec -train ../wikipedia/jawiki-latest-pages-art...
-output jawiki_wakati.bin -size 200 -window 5 -sample...
日本語の学習は以上です。
*** 動かしてみる。 [#n8b66f14]
英語でやったときのようにやってみます。
$ ./distance jawiki2.bin
Enter word or sentence (EXIT to break): 東京
Word: 東京 Position in vocabulary: 323
Word ...
--------------------------------------------------------...
大阪 0.792531
名古屋 0.723404
横浜 0.711129
札幌 0.674038
京都 0.660005
関西 0.659068
神奈川 0.655541
仙台 0.654896
...
Enter word or sentence (EXIT to break): ボルダリング
Word: ボルダリング Position in vocabulary: 106315
Word ...
--------------------------------------------------------...
クライミング 0.741020
フリークライミング 0.737473
スケートボード 0.644138
ロッククライミング 0.643847
IFSC 0.63...
スノーボード 0.629231
ペタンク 0.614713
ウェイクボード 0.614535
ビリヤード 0.607626
ノルディックウォーキング 0.605544
$ ./word-analogy jawiki2.bin
Enter three words (EXIT to break): 男 王様 女
Word: 男 Position in vocabulary: 514
Word: 王様 Position in vocabulary: 13866
Word: 女 Position in vocabulary: 534
Word ...
--------------------------------------------------------...
お姫様 0.682706
お姫さま 0.616227
王さま 0.612430
花嫁 0.588165
わたし 0.586670
シンデレラ 0.583221
パパ 0.581027
魔女 0.575280
うーん、女王 でなくてお姫さまにorz。。
Enter three words (EXIT to break): 男性 王様 女性
Word: 男性 Position in vocabulary: 873
Word: 王様 Position in vocabulary: 13866
Word: 女性 Position in vocabulary: 368
Word ...
--------------------------------------------------------...
お姫様 0.696252
王さま 0.634749
神様 0.630194
お姫さま 0.614321
女王 0.603935
パパ 0.603559
魔女 0.599964
妖精 0.594210
うん、ヨシとしよう!。
**関連リンク [#rdc91f50]
-[[word2vecを使って、日本語wikipediaのデータを学習する - ...
-[[Word2Vec:発明した本人も驚く単語ベクトルの驚異的な力 -...
-[[[機械学習] Word2VecをMacで使ってみる - YoheiM .NET>htt...
-[[Ubuntu + word2vecで日本語版wikipediaを自然言語処理して...
-[[OS Xでword2vecを試してみた - amberfrog.log>http://b.am...
-[[挑戦! word2vecで自然言語処理(Keras+TensorFlow使用)...
-[[単純な単語のベクトル表現: word2vec, GloVe - Qiita>http...
-[[Word2Vec, MeCab, ComeJisyo で病気の症状類似語を出して...
-[[自然言語処理/Word2vec/Python]]
-[[【Python】Word2Vecの使い方 - Qiita>https://qiita.com/k...
-[[word2vec(Skip-Gram Model)の仕組みを恐らく日本一簡潔...
-[[日本語 Wikipedia エンティティベクトル>http://www.cl.ec...
-[[ディープラーニングで文章のカテゴリー分類を自動化する方...
-[[チュートリアル — ディープラーニング入門:Chainer...
-[[15分でできる日本語Word2Vec - Qiita>https://qiita.com/m...
-[[word2vecで佐久間まゆの類似単語を調べる - Qiita>https:/...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
#contents
Word2vec とは、単語をベクトル化する技術で、各単語を何百次...
これによって
king - man + woman = queen
などを実現する事が出来るようです。すばらしい。
**ダウンロードとインストール [#r93d71f6]
$ git clone https://github.com/svn2github/word2vec.git
$ cd word2vec/
$ make
gcc word2vec.c -o word2vec -lm -pthread -O3 -march=nativ...
gcc word2phrase.c -o word2phrase -lm -pthread -O3 -march...
gcc distance.c -o distance -lm -pthread -O3 -march=nativ...
distance.c: In function ‘main’:
distance.c:31:8: warning: unused variable ‘ch’ [-Wunused...
char ch;
^
gcc word-analogy.c -o word-analogy -lm -pthread -O3 -mar...
word-analogy.c: In function ‘main’:
word-analogy.c:31:8: warning: unused variable ‘ch’ [-Wun...
char ch;
^
gcc compute-accuracy.c -o compute-accuracy -lm -pthread ...
compute-accuracy.c: In function ‘main’:
compute-accuracy.c:29:109: warning: unused variable ‘ch’...
char st1[max_size], st2[max_size], st3[max_size], st4...
...
chmod +x *.sh
**デモ [#jf725258]
$ cat demo-word.sh
make
if [ ! -e text8 ]; then
wget http://mattmahoney.net/dc/text8.zip -O text8.gz
gzip -d text8.gz -f
fi
time ./word2vec -train text8 -output vectors.bin -cbow 1...
./distance vectors.bin
手動で順次やってみます。
*** 学習データをダウンロード [#ofb8b9c5]
$ wget http://mattmahoney.net/dc/text8.zip -O text8.gz
text8.gz 1...
$ gzip -d text8.gz -f
*** 学習処理。 [#n45b94e3]
$ time ./word2vec -train text8 -output vectors.bin -cbow...
Starting training using file text8
Vocab size: 71291
Words in train file: 16718843
Alpha: 0.000005 Progress: 100.10% Words/thread/sec: 14...
real 14m24.749s
user 28m38.580s
sys 0m2.920s
学習出来たようです
*** ベクトル的に近しい文字を探す [#taaa3cd8]
$ ./distance vectors.bin
Enter word or sentence (EXIT to break): tokyo
Word: tokyo Position in vocabulary: 4915
Word ...
--------------------------------------------------------...
osaka 0.71...
nagoya 0.68...
chiba 0.64...
yokohama 0.64...
kanto 0.63...
kobe 0.63...
niigata 0.61...
...
Enter word or sentence (EXIT to break): bouldering
Word: bouldering Position in vocabulary: 20827
Word ...
--------------------------------------------------------...
climbing 0.55...
mountaineering 0.55...
paragliding 0.47...
diving 0.47...
climbers 0.46...
....
Enter word or sentence (EXIT to break):EXIT
なるほど。。
*** ベクトル演算[#r151e593]
ベクトルの加減を行ってみます。
$ ./word-analogy vectors.bin
Enter three words (EXIT to break): man king woman
Word: man Position in vocabulary: 243
Word: king Position in vocabulary: 187
Word: woman Position in vocabulary: 1013
Word ...
--------------------------------------------------------...
queen 0.58...
daughter 0.48...
heiress 0.47...
burgundy 0.47...
vii 0.47...
marries 0.47...
ahasuerus 0.46...
infanta 0.46...
anjou 0.46...
Queenが出力されましたね。
今回、Word2vecで、英語の単語のベクトル化を行いましたが、...
** 日本語Wikipediaのデータを学習させる [#y2a861e8]
やってみます。
*** まず、Rubyなどの準備 [#be33bf26]
$ git clone https://github.com/sstephenson/rbenv.git ~/....
$ git clone https://github.com/sstephenson/ruby-build.gi...
$ vi ~/.bashrc
export PATH="$HOME/.rbenv/bin:$PATH"
を追加して
$ source ~/.bashrc
途中エラーが出ましたが、よく見ると
Try running `apt-get install -y libssl-dev libreadline-d...
などが書いてあるのでいわれたとおり対処。
$ rbenv install 2.5.0
Downloading ruby-2.5.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.t...
Installing ruby-2.5.0...
Installed ruby-2.5.0 to /home/ubuntu/.rbenv/versions/2.5.0
$ rbenv local 2.5.0
$ rbenv global 2.5.0
$ rbenv exec gem install wp2txt bundler
Ruby関連の準備は完了
***日本語Wikipediaデータのダウンロードと変換 [#wdb47da5]
日本語データはWikipediaのデータを使う事にします。
$ mkdir wikipedia && cd $_
$ curl https://dumps.wikimedia.org/jawiki/latest/jawiki-...
-o jawiki-latest-pages-articles.xml.bz2
2G以上あるのでご注意。
ダウンロードしたデータをただのテキストファイルに変換しま...
$ rbenv exec wp2txt --input-file jawiki-latest-pages-art...
WP2TXT is spawming 2 threads to process data
Preparing ... This may take several minutes or more ca.....
jawiki-latest: 8% |oooooooooooooo
…
Processing finished
$
たくさんのファイルが出来るので、ファイルをMecabで分かち書...
$ cat jawiki-latest-pages-articles.xml*.txt | \
mecab -Owakati -b 81920 > jawiki-latest-pages-article...
*** 学習 [#xe270072]
さっき英語で学習処理をしましたが、今度はこの学習データを...
$ cd ../word2vec/
$ ./word2vec -train ../wikipedia/jawiki-latest-pages-art...
-output jawiki_wakati.bin -size 200 -window 5 -sample...
日本語の学習は以上です。
*** 動かしてみる。 [#n8b66f14]
英語でやったときのようにやってみます。
$ ./distance jawiki2.bin
Enter word or sentence (EXIT to break): 東京
Word: 東京 Position in vocabulary: 323
Word ...
--------------------------------------------------------...
大阪 0.792531
名古屋 0.723404
横浜 0.711129
札幌 0.674038
京都 0.660005
関西 0.659068
神奈川 0.655541
仙台 0.654896
...
Enter word or sentence (EXIT to break): ボルダリング
Word: ボルダリング Position in vocabulary: 106315
Word ...
--------------------------------------------------------...
クライミング 0.741020
フリークライミング 0.737473
スケートボード 0.644138
ロッククライミング 0.643847
IFSC 0.63...
スノーボード 0.629231
ペタンク 0.614713
ウェイクボード 0.614535
ビリヤード 0.607626
ノルディックウォーキング 0.605544
$ ./word-analogy jawiki2.bin
Enter three words (EXIT to break): 男 王様 女
Word: 男 Position in vocabulary: 514
Word: 王様 Position in vocabulary: 13866
Word: 女 Position in vocabulary: 534
Word ...
--------------------------------------------------------...
お姫様 0.682706
お姫さま 0.616227
王さま 0.612430
花嫁 0.588165
わたし 0.586670
シンデレラ 0.583221
パパ 0.581027
魔女 0.575280
うーん、女王 でなくてお姫さまにorz。。
Enter three words (EXIT to break): 男性 王様 女性
Word: 男性 Position in vocabulary: 873
Word: 王様 Position in vocabulary: 13866
Word: 女性 Position in vocabulary: 368
Word ...
--------------------------------------------------------...
お姫様 0.696252
王さま 0.634749
神様 0.630194
お姫さま 0.614321
女王 0.603935
パパ 0.603559
魔女 0.599964
妖精 0.594210
うん、ヨシとしよう!。
**関連リンク [#rdc91f50]
-[[word2vecを使って、日本語wikipediaのデータを学習する - ...
-[[Word2Vec:発明した本人も驚く単語ベクトルの驚異的な力 -...
-[[[機械学習] Word2VecをMacで使ってみる - YoheiM .NET>htt...
-[[Ubuntu + word2vecで日本語版wikipediaを自然言語処理して...
-[[OS Xでword2vecを試してみた - amberfrog.log>http://b.am...
-[[挑戦! word2vecで自然言語処理(Keras+TensorFlow使用)...
-[[単純な単語のベクトル表現: word2vec, GloVe - Qiita>http...
-[[Word2Vec, MeCab, ComeJisyo で病気の症状類似語を出して...
-[[自然言語処理/Word2vec/Python]]
-[[【Python】Word2Vecの使い方 - Qiita>https://qiita.com/k...
-[[word2vec(Skip-Gram Model)の仕組みを恐らく日本一簡潔...
-[[日本語 Wikipedia エンティティベクトル>http://www.cl.ec...
-[[ディープラーニングで文章のカテゴリー分類を自動化する方...
-[[チュートリアル — ディープラーニング入門:Chainer...
-[[15分でできる日本語Word2Vec - Qiita>https://qiita.com/m...
-[[word2vecで佐久間まゆの類似単語を調べる - Qiita>https:/...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: