Python3 - Doc2Vec: получить документ по вектору / идентификатору - PullRequest
0 голосов
/ 13 июня 2019

Я уже построил свою модель Doc2Vec, используя около 20 000 файлов. Я ищу способ найти строковое представление заданного вектора / идентификатора, который может быть похож на index2entity Word2Vec. Я могу получить сам вектор, используя модель ['n'], но теперь мне интересно, есть ли способ также получить какое-то его строковое представление.

1 Ответ

0 голосов
/ 13 июня 2019

Если вы хотите посмотреть свой фактический обучающий текст, для данного текста + тега, который был частью обучения, вы должны сохранить это отображение вне модели Doc2Vec. (Модель не хранит обучающие тексты - только смотрит на них многократно во время обучения.)

Если вы хотите сгенерировать текст из Doc2Vec вектора документа, это не существующая функция, и я не знаю ни одной опубликованной работы, описывающей надежную технику для этого.

Существует умозрительная / экспериментальная часть незавершенной работы для gensim Doc2Vec, которая будет распространять вектор документа через нейронную сеть модели и сообщать о наиболее предсказуемых целевых словах. (Это несколько противоположно тому, как работает infer_vector().)

Что может , вероятно, дать своего рода сводный текст. Для получения дополнительной информации см. Этот открытый выпуск и прилагаемый PR-проект:

https://github.com/RaRe-Technologies/gensim/issues/2459

Пока неясно, действительно ли это полезно или может стать частью генсима.

Однако обратите внимание, что такой набор слов не будет грамматическим. (Это будет просто ранжированный список наиболее предсказуемых слов. Возможно, какая-то другая подсистема могла бы попытаться связать эти слова естественным, грамматическим способом.)

Кроме того, тонкости того, имеет ли концепт много потенциальных ассоциированных слов или только одно, могут сильно повлиять на «лучшие N» результаты такого процесса. Придумать возможный пример: есть много слов для описания «холодной» среды. В результате вектор документа для текста о чем-то холодном может иметь много почти синонимов для слова «холодный» в позициях 11–20-го ранга, так что «полная вероятность» хотя бы одного холодного слова очень велика. высокий, может быть выше, чем любое другое слово. Но просто взглянув на топ-10 самых предсказуемых слов, можно вместо этого перечислить другие «более чистые» слова, вероятность которых не настолько разделена, и упустить (более важно-общее) чувство «холодности». Таким образом, этот экспериментальный метод псевдосуммирования может выиграть от второго прохода, который каким-то образом «объединяет» группы связанных слов в их наиболее представительные слова до некоторой общей пропорции (а не фиксированной вершины N) документа. предсказанные слова вектора передаются. (Этот процесс может быть смутно похож на поиск набора из М слов, чье «Расстояние движка слов» к полному набору предсказанных слов сведено к минимуму - хотя это может быть очень дорогим поиском.)

...