以下のサイトに従ってチュートリアルを実施した
gensim のinstall
pip install gensim
Successfully installed gensim-4.1.2 numpy-1.22.2 scipy-1.8.0 smart-open-5.2.1
上記のように4つのファイルが(入っていなければ)インストールされる
学習済みモデルのダウンロード
以下2種類の学習済みモデルの実装を試みた
- WikiEntVec : 日本語の固有表現の情報が多い
- 追加予定
今回使うのは東北大学 乾・岡崎研究室で作られたモデルです。これは、日本語 Wikipedia の本文全文を元に学習したもので、ベクトルは200次元です。
特徴はwikipediaの性質上,日本語の固有表現に関する情報が多いこと
このリンクで研究室のホームページに行き、 20170201.tar.bz2 (2017年2月1日版, 1.3GB, 解凍後 2.6GB)をダウンロードして下さい。
今回はgithubのページ からリリースページへジャンプし 一番最新かつ容量の多い、jawiki.all_vectors.300d.txt.bz2 (2019年5月20日版, 1.74GB, 解凍後 5.0GB)をダウンロードした。
と思ったが、最新のくんれん済みデータはtxtファイルしか入っていない。参考元を見ても、必要なのはbinファイルなので,おとなしく参考元と同じ2017年のモデルを使用することとする。
ダウンロードファイルの展開(linux環境です。windowsはソフト入れな)
cd 10_trainedVector/WikiEntVec/
拡張子が.bz2だけの場合
bzip2 -d jawiki.all_vectors.300d.txt.bz2
拡張子が.tar.bz2の場合
tar xvzf 20170201.tar.bz2
解凍待ちの完全に余談だが、tarのオプションはそれぞれ以下の意味らしい (参考)
-
x : eXtract(展開)
-
v : verbose(言葉の多い、展開内容を表示)
-
z : gzip対応
-
f : file から展開(デフォルトはテープデバイスになってるので。)
ls entity_vector
entity_vector/entity_vector.model.binがあることを確認。 解凍前の圧縮ファイルは消してよし
やってみた
モデルの読み込み
from gensim.models import KeyedVectors
import os
モデルのパス
project_root = '..'
model_dir = os.path.join(project_root, '10_trainedVector/WikiEntVec/entity_vector')
model_txt = os.path.join(model_dir, 'entity_vector.model.bin')
model = KeyedVectors.load_word2vec_format(model_txt, binary=True)
指原莉乃 + 悪 = ?
results = model.most_similar(positive=[u'[悪]',u'[指原莉乃]'])
for result in results:
print(result)
- ('[恋]', 0.6308125257492065)
- ('[小嶋陽菜]', 0.6083012819290161)
- ('[両性具有]', 0.6051624417304993)
- ('[善]', 0.6046913266181946)
- ('[柏木由紀]', 0.5923081636428833)
- ('[つるの剛士]', 0.5916614532470703)
- ('悪', 0.589141845703125)
- ('[秋元才加]', 0.5883554220199585)
- ('[大島優子]', 0.586757242679596)
- ('[知念侑李]', 0.5830826163291931)
指原莉乃 - AKB48 = ?
results = model.most_similar(positive=[u'[指原莉乃]'], negative=['[AKB48]'])
for result in results:
print(result)
- ('[川平慈英]', 0.44735950231552124)
- ('[ハーヴェイ・カイテル]', 0.44733762741088867)
- ('[ウィル・アーネット]', 0.43451210856437683)
- ('[竹内靖夫]', 0.432728111743927)
- ('[矢野誠_(ミュージシャン)]', 0.42878034710884094)
- ('[置鮎龍太郎]', 0.4265846312046051)
- ('[渡辺徹_(俳優)]', 0.42566490173339844)
- ('[クリス・タッカー]', 0.42323005199432373)