Название этого вопроса является отдельным вопросом к его тексту, поэтому я отвечу на оба по отдельности (учитывая, что один ведет в другой).
- Как я могу вывести невидимые предложения:
# ... trained model stored in var model
list_of_words = ["this", "is", "a", "new","unseen", "sentence"]
inferred_embedding = model.infer_vector(list_of_words)
Как это работает ? Согласно исходной статье ( https://cs.stanford.edu/~quocle/paragraph_vector.pdf ) у нас есть две весовые матрицы, инициализированные случайным образом которые являются той же самой матрицей из Word2Vec, в которой каждый столбец или строка отображается на слово vector и D ∈ R M × R, который является матрицей документа, где каждый столбец или строка отображается на предложение / документ. Во время обучения классификатор softmax фиксированного размера окна k перемещается (в движущемся окне по типу моды), сводя к минимуму следующую логарифмическую вероятность (мультиклассовая кросс-энтропия):W∈ RN× PD ∈ RM× RК
1MΣя = 1M1| Dя|Σт = к| Dя - 1| -кл о г( р ( шяT| весят - к, . , , , шят + к, Dя) )
Где соответствует вектору, представляющему i t h предложение, | D я | его количество слов в этом документе , и ш я т является т т ч слово в я т ч документа. Все, что запоминает обратное распространение, - это документ, по которому мы сейчас перемещаем наш оконный softmax, и обновляет только эту строку в матрице D вместе со словами в этом окне.Dяят ч| Dя|весяTTт чят чD
WD
- Можем ли мы сделать вывод, что возможно невидимое предложение точно соответствует предложению в обучающем наборе?
D
Даже исправление случайного начального числа может не сработать, так как существует множество других переменных, которые могут повлиять на его сходимость, см. Первый ответ на https://github.com/RaRe-Technologies/gensim/issues/374 .
В любом случае вы можете найти наиболее похожую метку в вашем наборе данных на предполагаемое предложение, просто перебирая свой обучающий набор и сравнивая сходство с предполагаемым вектором. Но почему вы хотите сделать точное совпадение с чем-то в тренировочном наборе? это то, что регулярные выражения для целей встраивания этих документов предназначены для контролируемых или неконтролируемых задач обучения (например, классификация и кластеризация).