Нет простой формулы для лучшего size
- это будет зависеть от ваших данных и целей.
Лучшей практикой является разработка надежного, автоматизируемого способа оценки набора слов-векторов для ваших целей - скорее всего, с помощью некоторого созданного вручную репрезентативного подмножества типов суждений и предпочтительных результатов, которые вам нужны. Затем попробуйте много значений size
(и других параметров), пока не найдете значения, которые имеют наивысший балл для ваших целей.
В области моделирования на естественном языке, где словари состоят как минимум из десятков тысяч уникальных слов, но, возможно, из сотен тысяч или миллионов, типичные значения size
обычно находятся в 100-1000 диапазон, но очень часто в диапазоне 200-400. Таким образом, вы можете начать поиск альтернативных значений, если ваша задача / словарь похожи.
Но если ваши данные или словарь малы, вам, возможно, придется попробовать меньшие значения. (Word2Vec действительно нуждается в больших, разнообразных данных обучения для лучшей работы.)
Относительно вашего кода, как показано:
вряд ли есть смысл вычислять новый model
для каждого item
в вашем наборе данных (отбрасывая предыдущий model
на каждой итерации цикла). Если вы хотите подсчитать количество уникальных токенов в любом из токенизированных предметов, вы можете использовать идиоматический Python, такой как len(set(word_tokenize(item)))
. Любая интересующая модель Word2Vec
, вероятно, должна быть обучена на комбинированном корпусе токенов из всех предметов.
обычно бывает, что min_count=1
делает модель хуже, чем большие значения (например, значение по умолчанию min_count=5
). Слова, которые появляются только один раз, как правило, не могут получить хорошие слова-векторы, поскольку для работы алгоритма требуется несколько тонко контрастирующих примеров. Но попытка создать из этих одиночных векторов полезные векторы слов обычно требует тренировочных усилий и модельного состояния, которые могут быть более полезными для других слов с адекватными примерами - поэтому сохранение этих редких слов даже делает другими слова-векторы хуже. (Совершенно определенно не случай, когда «сохранение каждого необработанного слова делает модель лучше», хотя почти всегда так «более реальные разнообразные данные делают модель лучше».)