Сходство контекста python word2vec с использованием окружающих слов

Я хотел бы использовать вложения, сделанные w2v, чтобы получить наиболее вероятные заменяющие слова, ДАННЫЕ контексту (окружающие слова), а не предоставлять отдельное слово.

Пример: предложение = "Я хочу пойти в парк завтра после школы"

Если я хочу найти кандидатов, похожих на «парк», обычно я просто использую функцию подобия из модели Gensim.

model.most_similar('park')

и получить семантически похожие слова. Однако это могло дать мне слова, похожие на глагол «парк», а не на существительное «парк», которое я искал.

Есть ли способ запросить модель и дать ей окружающие слова в качестве контекста, чтобы предоставить лучших кандидатов?


person chattrat423    schedule 14.07.2017    source источник


Ответы (1)


Word2vec в первую очередь не является алгоритмом предсказания слов. Внутри он пытается делать полу-предсказания, чтобы обучать свои словесные векторы, но обычно эти обучающие предсказания не являются конечным использованием, для которого требуются словесные векторы.

Тем не менее, в последних версиях gensim добавлен метод predict_output_word(), который (для некоторых режимов модели) приближает прогнозы, сделанные во время обучения. Это может быть полезно для ваших целей.

В качестве альтернативы может помочь проверка слов most_similar() исходного целевого слова, которые также чем-то похожи на контекстные слова.

Было опубликовано несколько исследовательских работ о способах устранения неоднозначности смысла нескольких слов (например, «в / парк / машину» или «прогулка в / парке /») во время словесно-векторной тренировки, но я не видел, чтобы они были реализованы в открытом исходном коде. библиотеки.

person gojomo    schedule 15.07.2017