Принимая во внимание предложение: «Когда я открываю ?? дверь он начинает нагрев автоматически»
Я хотел бы получить список возможных слов в ?? с вероятностью.
Основная концепция, используемая в модели word2vec, заключается в том, чтобы «предсказать» слово в заданном окружающем контексте.
Как только модель построена, какова правильная операция векторов контекста, чтобы выполнить мою задачу предсказания для новых предложений?
Это просто линейная сумма?
model.most_similar(positive=['When','I','open','the','door','it','starts' ,'heating','automatically'])
Ответы:
Word2vec работает в двух моделях CBOW и Skip-Gram. Давайте возьмем модель CBOW, поскольку ваш вопрос идет так же, как и прогнозирование целевого слова с учетом окружающих слов.
По сути, модель разрабатывает входные и выходные весовые матрицы, которые зависят от слов входного контекста и выходного целевого слова с помощью скрытого слоя. Таким образом, обратное распространение используется для обновления весов при разнице ошибок между прогнозируемым выходным вектором и текущей выходной матрицей.
По сути, прогнозирование целевого слова из заданных контекстных слов используется в качестве уравнения для получения матрицы оптимального веса для заданных данных.
Чтобы ответить на вторую часть, это кажется немного сложнее, чем просто линейная сумма.
h
размераNx1
syn1
(word2vec.c
илиgensim
), которая имеет размерVxN
syn1
наh
, результирующий вектор будет иметьz
размерVx1
y = softmax(z)
с размеромVx1
, где наибольшая вероятность обозначает горячее представление целевого слова в словаре.V
обозначает размер словаря иN
обозначает вектор вложения.Источник: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf
Обновление: модели краткосрочной памяти в настоящее время делают большую работу в предсказании следующих слов. Модели seq2seq описаны в руководстве по тензорному потоку . Также есть запись в блоге о генерации текста.
источник
syn1
, просто сохранив модель. да, порядок игнорируется, поскольку для приложения можно использовать модель seq2seq на основе LSTM.Предсказание отсутствующего слова было добавлено в качестве функциональной возможности в последней версии Word2Vec. Конечно, ваше предложение должно соответствовать синтаксису ввода модели Word2Vec, используемому для обучения модели (строчные буквы, стоп-слова и т. Д.)
Использование для предсказания трех главных слов «Когда я открою? Дверь»:
источник
center
между 3-м и 4-м словом? Это не имеет смысла для меня. Я бы предположил, что можно вставить только четные контекстные слова, и он выбрал бы слово междуfloor(len(n)/2))
иfloor(len(n)/2))+1