Word2Vecの足し算・引き算の計算
Y' = (Y - X) + X'
これのY - Xの部分にフランス - パリを当てはめる
意味は首都
ではX'に日本を当てはめると結果は?
analogy.py
def analogy(X_Y, x):
X, Y = X_Y
results = []
try:
for word, sim in model.most_similar(positive=[Y, x], negative=[X], topn=10):
results.append({'term': word, 'similarity': sim})
except:
pass
return results
結果
[
{
"term": "東京",
"similarity": 0.5726803541183472
},
{
"term": "京都",
"similarity": 0.5042847990989685
},
{
"term": "北京",
"similarity": 0.4632992744445801
},
{
"term": "ロンドン",
"similarity": 0.4597439765930176
},
{
"term": "大阪",
"similarity": 0.4592345654964447
},
{
"term": "上海",
"similarity": 0.4372062683105469
},
{
"term": "ソウル",
"similarity": 0.4371134638786316
},
{
"term": "京第",
"similarity": 0.41076335310935974
},
{
"term": "ニューヨーク",
"similarity": 0.40882599353790283
},
{
"term": "ベルリン",
"similarity": 0.39789241552352905
}
]