from janome.tokenizer import Tokenizer
from gensim.models import word2vec
with open('meros.txt', 'r', encoding='ANSI') as file: # 抽出するファイル名を記載
text = file.read()
t = Tokenizer()
words_list = []
for sentence in text.split('。'): # 1文ずつ抽出
token_list = []
tokens = t.tokenize(sentence)
for token in tokens:
if token.part_of_speech.split(',')[0] in ['名詞', '動詞']: # 名詞か動詞のみを抽出
token_list.append(token.base_form)
words_list.append(token_list)
model = word2vec.Word2Vec(words_list,min_count=5,window=5)
similar = model.wv.most_similar(positive=['メロス'], topn=5) # 「メロス」に関係性の深い単語を5つ抽出
print(similar)
→ [('結婚式', 0.38387778401374817),
('帰る', 0.22828556597232819),
('れる', 0.21429498493671417),
('心', 0.21371948719024658),
('おまえ', 0.20446088910102844)]
similar = model.wv.most_similar(positive=['メロス','妹'], negative=['王'],topn=5)
# 「メロス」と「妹」を足して、「王」を引く。
print(similar)
→ [('帰る', 0.2504352629184723),
('約束', 0.21765188872814178),
('人', 0.2161809206008911),
('結婚式', 0.20376107096672058),
('思う', 0.19854386150836945)]