Оценка модели Word2Vec путем нахождения линейной алгебраической структуры слов

Я построил Word2Vecmodel, используя библиотеку gensim в python. Я хочу оценить встраивание своего слова следующим образом.

Если A связано с B, а C связано с D, то A-C+B должно быть равно D. Например, вложение векторной арифметики «Индия»-«Рупия»+«Япония» должно быть равно вложению «Йена».

Я использовал встроенные функции gensim, такие как прогнозирование_выходного_слова, наиболее_подобное, но не смог получить желаемых результатов.

new_model.predict_output_word(['india','rupee','japan'],topn=10)
new_model.most_similar(positive=['india', 'rupee'], negative=['japan'])

Пожалуйста, помогите мне в оценке моей модели в соответствии с указанными выше критериями.


person Jayashree    schedule 12.08.2017    source источник


Ответы (1)


Вы должны использовать аргументы positive и negative метода most_similar() так же, как метод accuracy():

https://github.com/RaRe-Technologies/gensim/blob/718b1c6bd1a8a98625993d73b83d98baf385752d/gensim/models/keyedvectors.py#L697

В частности, если у вас есть аналогия в форме «A относится к B, как C к [ожидаемому]», вы должны посмотреть на:

results = model.most_similar(positive=[word_b, word_c], negative=[word_a])

Или в вашем примере:

results = model.most_similar(positive=['rupee', 'japan'], negative=['india'])
person gojomo    schedule 12.08.2017