Doc2Vec実践

 
 
 
学習済みモデルのロード

 
・学習済みモデルでDoc2Vecを色々試してみる
 
 
from gensim.models.doc2vec import Doc2Vec
 
model = Doc2Vec.load('jawiki.doc2vec.dbow300d.model')
 
 
 
 
 
Doc2Vecのメソッドを確認

 
# modelオブジェクトのメソッド一覧
for x in dir(model):
print(x)
 
 
# model.docvecsオブジェクトのメソッド一覧
for x in dir(model.docvecs):
print(x)
 
 
 
 
訓練データの確認

 
model.docvecs.doctags
 
 
# tagをリスト化
tags=
for tag in model.docvecs.doctags.keys():
tags.append(tag)
 
tags[:10]
 
 
# tagの存在確認
print('東京' in model.docvecs.doctags)
 
 
 
 
 
文章の解析

 
# 文章ベクトルの表示
print(model.docvecs['東京'])
 
 
# 類似するドキュメントを表示
model.docvecs.most_similar('東京')
 
 
 
# 文書の類似度を算出する
model.docvecs.similarity('東京', '大阪')
#0.43720797
model.docvecs.similarity('東京', 'パリ')
#0.34880832
 
 
 
 
 
未知の入力文を解析

 
import MeCab
 
def tokenize(text):
wakati = MeCab.Tagger("-O wakati")
wakati.parse("")
return wakati.parse(text).strip().split()
 
text = """バーレーンの首都マナマ(マナーマとも)で現在開催されている
ユネスコ(国際連合教育科学文化機関)の第42回世界遺産委員会は日本の推薦していた
世界遺産に登録することを決定した。文化庁が同日発表した。
日本国内の文化財世界遺産登録は昨年に登録された福岡県の
「『神宿る島』宗像・沖ノ島と関連遺産群」に次いで18件目。
2013年の「富士山-信仰の対象と芸術の源泉」の文化遺産登録から6年連続となった。"""
 
# 文章を分かち書きして、ベクトル化
docs_vec = [model.infer_vector(tokenize(text))]
 
 
 
# 任意の入力文に対して類似するドキュメントを表示する
model.docvecs.most_similar(docs_vec)
 
 
 
 
単語の解析

 
# 単語のベクトル化
model.wv['東京']
 
 
# 単語の類似度計算
model.wv.most_similar('東京')