アナロジーの計算 | python3Xのブログ

python3Xのブログ

ここでは40代、50代の方が日々の生活で役に立つ情報や私の趣味であるプログラム、Excelや科学に関する内容で投稿する予定です。

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
    }
]