前回
ensekitt.hatenablog.com
をやったので、このデータを使いたい。
Word2Vecに突っ込むまでの手順
残っているXMLタグを削除する
前回作成したデータには
<doc id="1856" url="https://ja.wikipedia.org/wiki?curid=1856" title="VHS"> VHS 〜〜〜中略〜〜〜 </doc>
こんなタグが残っているのでこれを削除する。
とりあえずタグっぽいものは全部消せばいいかと思ってsedで消してみた。
sed '/^<[^>]*>$/d' wikipedia_ja.txt > wikipedia_ja_cleaned.txt
MeCabで分かち書きをする
分かち書きは、スペース区切りで英語みたいな感じに単語間を分けた書き方。
mecab -b 100000 -Owakati wikipedia_ja_cleaned.txt -o wikipedia_ja_wakati.txt
オプションは以下の通り。
- bはバッファサイズ変更してる(大きくしてる)
- Owakati はわかち書きしてる
Word2Vecで学習する
まずはpipでgensimをインストールする
pip install gensim
from gensim.models import word2vec data = word2vec.Text8Corpus("wikipedia_ja_wakati.txt") model = word2vec.Word2Vec(data, size=200)
こんな感じで実行するとさっき作った分かち書きのデータを使ってモデルを作成してくれる。
(ここは結構時間がかかった。とはいえ会社に行ってる間に終わってたし時間をはかりそこねましたごめんなさい。)
遊んで見る
エンジニアから技術を取ると何になるんだろう?オタクかな?とか思ってやってみた結果がこちら。
さっきのmodelを使って以下のようなコードで実行できる。
out = model.most_similar(positive=["エンジニア"], negative=["技術"]) for x in out: print(x[0], x[1])
その結果がこちら。
バンドマン!!!!(なんで
ただ、今年の夏頃にEnTechのSlackで、
「近年のエンジニアって夢の大きさはバンドマンだけど、ヒモになれないぶん稼げるの便利だよな」
みたいなバンドマンの皆様には大変失礼な話をしてたことを思い出した。
次、早大から酒を取り上げて資本を渡したら慶應になってくれっ
なった!!!
*1
みたいな遊びをしてたら日付が変わりそうになったので今日はここまで。
Wikipediaの題名を辞書登録しておけばよかったって思ったのと、
これもやっぱりJUMAN++で分かち書きしたデータでやってみたいなって思ってる。
*1:これらの結果は面白い結果になるように単語を選びました。資本→金とかすると全然うまくいかない。いろいろ試してみてね。