Несколько заметок:
Этот критерий «точности ()» является только тестом векторов слов для задач аналогии - его легко выполнить, он используется в ряде статей, но не окончательное решение о том, является ли набор слов-векторов лучше других для определенной цели. (Когда у меня был метод оценки для конкретного проекта, иногда векторы слов, которые лучше всего оценивают цели проекта, не получают лучших по этим аналогиям, особенно если векторы слов используются для классификации или информации. поисковое задание.)
Кроме того, популярный и быстрый режим PV-DBOW Doc2Vec
(dm=0
в gensim) вообще не обучает векторы слов, если вы не добавите другую настройку (dbow_words=1
). Такие неподготовленные слова-векторы будут находиться в случайных местах, ужасно выигрывая по точности аналогий.
Но, используя режим PV-DM (dm=1
) или добавив dbow_words=1
к PV-DBOW, вы получите векторы слов из Doc2Vec
, и вам все равно может потребоваться запустить тест на аналогии. К счастью, параметры оценки аналогии были сохранены и даже расширены для объекта KeyedVectors
, который содержится в свойстве Doc2Vec
wv
. Вы можете вызвать старый accuracy()
метод там:
https://radimrehurek.com/gensim/models/keyedvectors.html#gensim.models.keyedvectors.Word2VecKeyedVectors.accuracy
Но есть и немного другая оценка evaluate_word_pairs()
:
https://radimrehurek.com/gensim/models/keyedvectors.html#gensim.models.keyedvectors.WordEmbeddingsKeyedVectors.evaluate_word_pairs
(А в версии 4.0.0 будет [evaluate_word_analogies()][1]
, который заменяет `точность ().)