Нет явного параметра max_count
в gensim's Word2Vec
.
Если вы уверены, что некоторые токены не имеют смысла, вам следует предварительно обработать текст, чтобы устранить их.
Существует также опция trim_rule
, которую можно передать как экземпляр модели, или build_vocab()
, где ваша собственная функция может отбрасывать некоторые слова;см. документацию gensim по адресу:
https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec
Аналогично, вы могли бы избежать прямого вызова build_vocab()
и вместо этого вызывать его подшаги - но перед словарем отредактируйте обнаруженный словарь необработанных счетчиковдоработан.Вы можете обратиться к исходному коду, чтобы сделать это, и можете использовать код, который отбрасывает слишком редкие слова, в качестве модели для вашего собственного нового дополнительного кода.
Классический sample
параметр Word2Vec
также управляет понижающей дискретизацией высокочастотных слов, чтобы модель не тратила слишком много относительных усилий на избыточное обучение обильным словам.Чем более агрессивно (меньше) это значение, тем больше случаев высокочастотных слов будет пропущено во время обучения.Значение по умолчанию 1e-03
(0.001
) очень консервативно;в очень больших корпусах естественного языка я видел хорошие результаты вплоть до 1e-07
(0.0000001
) или 1e-8
(0.00000001
) - так в другой области, где некоторые токены с более низким значением очень часты, аналогично агрессивныдаунсэмплинг стоит попробовать.
Более новая опция ns_exponent
изменяет отрицательную выборку для корректировки относительного предпочтения менее частых слов.В оригинальной работе word2vec
использовалось фиксированное значение 0,75, но некоторые исследования с тех пор показали, что другие области, такие как системы рекомендаций, могут извлечь выгоду из других значений, которые более или менее чувствительны к фактическим частотам токенов.(Соответствующий документ связан в gensim
документах для параметра ns_exponent
.)