В общем, наименее часто встречающиеся слова в ваших тренировочных данных также безопаснее всего отбрасывать.
Это особенно касается «word2ve c» и подобных алгоритмов. Может быть недостаточно разнообразных примеров использования каждого редкого слова для изучения надежных представлений - в отличие от слабых / идиосинкратированных c представлений, основанных на нескольких не обязательно репрезентативных примерах их использования, которые у вас есть.
Кроме того, в будущих текстах редкие слова не будут повторяться так часто, что снижает их относительную ценность в модели.
И, благодаря типичному «zipfian» распределению частот слов в материале на естественном языке, в то время как каждое отдельное редкое слово встречается всего несколько раз, всего таких слов много. Таким образом, простое отбрасывание слов в одном или нескольких случаях часто значительно сокращает словарный запас (и, следовательно, общую модель) вдвое или более.
Наконец, в 'word2ve c' было замечено, что отбрасываются те промежуточные редкие слова, которых в общем количестве много, хотя у каждого из них есть только примеры с ограниченным качеством - качество выживания чаще словосочетания часто улучшаются. Эти более важные слова имеют меньше промежуточных «шумных» слов с меньшим значением, которые выводят их из контекста друг друга windows или тянут веса модели в других направлениях с помощью чередующихся обучающих примеров.
(Аналогичным образом, в адекватных корпусах использование более агрессивной понижающей дискретизации часто встречающихся слов, контролируемой параметром sample
, часто может повысить качество словосочетания и одновременно ускорить обучение - хотя и без экономии общего словарного запаса. размер, так как никакие слова полностью не исключаются этим параметром.)
С другой стороны, «стоп-слов» недостаточно, чтобы обеспечить значительную экономию словарного запаса при отбрасывании. Откажитесь от них или нет, в зависимости от того, помогает ли их присутствие или вредит вашим последующим шагам и конечным результатам, а не для того, чтобы сэкономить небольшое количество словарного пространства, управляемого моделями.
Обратите внимание, что для модели Word2Vec
gensim и связанных с ней алгоритмов, в дополнение к параметру min_count
, который отбрасывает все слова, появляющиеся меньше этого значения, существует также параметр max_final_vocab
, который будет динамически выберите значение min_count
, достаточное для достижения окончательного размера словаря, не превышающего значение max_final_vocab
.
Так что, если вы знаете, что у вас есть системная память для поддержки модели с миллионным словом, вам не нужно использовать метод проб и ошибок для значений min_count
, чтобы достичь чего-то близкого: вы можете просто укажите max_final_vocab=1000000, min_count=1
.
(С другой стороны, будьте осторожны с параметром max_vocab_size
. Он должен использоваться только для предотвращения перерасчета доступной оперативной памяти при первоначальном опросе по количеству слов, и поэтому должен быть установлен до максимальной величины, которой может управлять ваша система - намного, намного больше, чем вы хотели бы, чтобы ваш фактический конечный размер словаря был равен. Это потому, что max_vocab_size
применяется всякий раз, когда текущее обследование достигает этого размера - не только на конец - и отбрасывает большое количество меньших слов, а затем применяет более высокий уровень каждый раз, когда он применяется.Если этот предел достигнут вообще, это означает, что окончательный счет будет только приблизительным - а возрастающий этаж означает иногда бегущий словарь будет сокращено до 10% или около того max_vocab_size
.)