2017年4月27日木曜日

word2vecのオプション

/usr/local/bin/word2vec -train jawiki_data.txt -output jawiki_data.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -binary 1

-train:学習させるデータ。半角スペースで区切られた単語列。1行ごとに文脈ベクトルの処理対象となる。

-output:文脈ベクトルの出力先ファイル

-cbow:Bags of words Modelを使用するときには1と指定する。defaultは1となっており、Skip-gram modelを使用する時は0とする。

-size:文脈ベクトルの次元サイズ(defaultは100)

-window:文脈ベクトルを計算する際に、対象語から調べる前後の語の数。defaultは5となっている。大きな値を指定すると、より広範囲の語まで処理対象とする。

-negative:Negative Samplingで用いる例の数。defaultは5となっており、妥当な値の範囲は3から10となっている。0を指定するとNegative Samplingを行わない。

-hs:学習にHierarchical Softmaxを用いて計算させたい場合に1と指定する。defaultは0。

-sample:Hierarchical Softmaxの際に頻出語をカットするスレッシュホールドを指定する。defaultは1e-3となっており、妥当な値の範囲は0から1e-5となっている。

-binary:Binary形式で出力したい場合に1と指定する。defaultは0となっており、テキスト形式で出力される。

参考リンク:word2vecのオプション一覧

http://repository.seinan-gu.ac.jp/bitstream/handle/123456789/1302/co-n62v3_4-p263-284-yos.pdf?sequence=1

LXDEの解像度を起動時に変更する

LXDEの解像度をGUIで変更したつもりになっても、次回起動時は元に 戻ってしまっている。毎回解像度を変更するのは鬱陶しいので、
/etc/xdg/lxsession/LXDE/autostart に
xrandr -s 1920x1080
の一行を追加すると、次の起動時から解像度が1920x1080となる

2017年4月24日月曜日

wikipediaをダウンロードしてword2vecを試すまでの手順

1.wikipediaのデータを取ってくる。
curl https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2 -o jawiki-latest-pages-articles.xml.bz2

2.テキストデータへの変換を行う。
git clone https://github.com/attardi/wikiextractor
python3 wikiextractor/WikiExtractor.py jawiki-latest-pages-articles.xml.bz2

3.ここまでやるとtextディレクトリが作成されているので、ここの情報を一つにまとめるために以下の処理を行う。
cat text/*/* > jawiki.txt

4.mecabのインストール


5.mecabで分かち書き(mecabエラー)

「mecab -Owakati jawiki.txt -o jawiki_data.txt」
としたところ、
「input-buffer overflow. The line is split. use -b #SIZE option.」
とエラーが出た。

そこで、バッファーを大きくして
「mecab -b 81920 -Owakati jawiki.txt > jawiki_data.txt」

6.word2vecで機械学習
/usr/local/bin/word2vec -train jawiki_data.txt -output jawiki_data.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -binary 1

7.word2vecで計算
/usr/local/bin/word2vec-distance jawiki_data.bin