Python現在研究にてword2vecを用いた単語の類似度の取得をしています。Gensimを用いた方法が割と手軽で、速度もまずまずであったため、残しておきます。Linuxでの実行を前提にしています。modelingに特化したpythonライブラリです。一般的に、LDAの手法を用いたテキストマイニングを行うのに使用されるらしいです。学習用データ作成gensimのword2vecにはテキスト形式のファイルを用います。今回はWikipediaのデータを用いて学習させました。ある程度の容量があるテキストファイルであれば何でも構いません。/jawiki/latest/上記のURLからjawiki-latest-pages-articles.xml.bz2もしくはjawiki-latest-pages-articles1.xmlなどをダウンロードします。xml形式のため、テキスト形式に変換します。後日知ったのですが、WikiExtractorを使う方が便利です。print(result)これはwikiの各ページのテキストタグを拾い、そこにあるテキストから記号を除いています。記号群を作りreplaceで検証しています。これの出力をリダイレクトもしくはteeコマンドで書き出しました。プログラム内で書き出しをしても良かったのですが、何度か中身から記号が正しく除去されているかを確認するために、標準出力のままにしていたような気がします。分かち書きword2vecが学習をやりやすいように単語の合間などに空欄を入れる作業です。MeCabをインストールしていない場合はインストールします。ダウンロードはMeCabのサイトから、インストールはMecabのインストールメモがわかりやすく紹介してくれています。インストールメモのwgetでのミラーは先日リンク切れになっていたため、ダウンロードは上記のサイトから行う方がいいと思われます。それでは、インストールできたら、分かち書きを行います。text.txtを読み込みdata.txtとして出力します。メモリの指定だったと思います。data.txt各処理はデータ量にもよりますが、時間がかかると思います。modelの作成それでは、gensimを用いてmodelを作成します。必要なライブラリをインストールします。学習結果を出力するmodel.save("sample(size200_mc20_w15).model")結構時間がかかります。単語の計算word2vecのメインである単語の足し引きを行います。print(r)positiveのみ入力すると、上の例であれば「王」に近似するワード群が集められます。negativeも入力すると、上の例であれば「王」から「男」が引かれたものが集められます。私が以前した時は「姫」や「女王」などだったと思います。以下のサイトを参考にさせていただきました。今回は本当にメモ程度に残します。(1)月別アーカイブはてなブログをはじめよう!krulcifer-einfolk-fafnirさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。