Онлайн обновление Word2Vec - PullRequest
       8

Онлайн обновление Word2Vec

0 голосов
/ 04 декабря 2018

У меня проблема с онлайн-обновлением модели Word2Vec.

У меня есть документ и модель сборки по нему.Но этот документ может обновляться новыми словами, и мне нужно обновить словарный запас и модель в целом.

Я знаю, что в gensim 0.13.4.1 мы можем сделать это

Мой код:

model = gensim.models.Word2Vec(size=100, window=10, min_count=5, workers=11, alpha=0.025, min_alpha=0.025, iter=20)
model.build_vocab(sentences, update=False)

model.train(sentences, epochs=model.iter, total_examples=model.corpus_count)

model.save('model.bin')

И после этого у меня появились новые слова.Например:

sen2 = [['absd', 'jadoih', 'sdohf'], ['asdihf', 'oisdh', 'oiswhefo'], ['a', 'v', 'b', 'c'], ['q', 'q', 'q']]

model.build_vocab(sen2, update=True)
model.train(sen2, epochs=model.iter, total_examples=model.corpus_count)

Что не так и как я могу решить мою проблему?

1 Ответ

0 голосов
/ 04 декабря 2018

Ваша модель настроена на игнорирование слов с менее чем 5 вхождениями: min_count=5.Фактически для этого потребуется не менее 5 вхождений в одном вызове build_vocab().(Он не вспомнит, что было 3 раньше, затем увидит 2 новых вхождения, затем потренируется на всех 5. Для этого нужно все 5 или более в одной партии.)

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

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

...