Я совершенно новичок в word2vec, так что, пожалуйста, несите это со мной. У меня есть набор текстовых файлов, каждый из которых содержит набор твитов, между 1000-3000. Я выбрал общее ключевое слово ("kw1") и хочу найти семантически релевантные термины для "kw1", используя word2vec. Например, если ключевое слово «яблоко», я ожидаю увидеть связанные термины, такие как «ipad», «os» «mac» ... на основе входного файла. Таким образом, этот набор связанных терминов для «kw1» будет отличаться для каждого входного файла, так как word2vec будет обучаться для отдельных файлов (например, 5 входных файлов, запускать word2vec 5 раз для каждого файла).
Моя цель - найти наборы связанных терминов для каждого входного файла по общему ключевому слову («kw1»), которое будет использоваться для некоторых других целей.
Мои вопросы / сомнения:
- Имеет ли смысл использовать word2vec для такой задачи? технически правильно использовать с учетом небольшого размера входного файла?
Я загрузил код с code.google.com: https://code.google.com/p/word2vec/ и только что дал ему пробную версию следующим образом:
time ./word2vec -train $file -output vectors.bin -cbow 1 -size 200 -window 10 -negative 25 -hs 1 -sample 1e-3 -threads 12 -binary 1 -iter 50
./distance vectors.bin
Из своих результатов я увидел, что я получаю много шумных терминов (стоп-слов), когда использую инструмент «расстояние», чтобы получить связанные термины с «kw1». Поэтому я удалил стоп-слова и другие шумные термины, такие как упоминания пользователей. Но я нигде не видел, чтобы word2vec требовал очищенных входных данных ...?
Как выбрать правильные параметры? Я вижу, что результаты (от запуска инструмента расстояния) сильно меняются, когда я изменяю такие параметры, как -window, -iter. Какой метод я должен использовать, чтобы найти правильные значения для параметров. (метод проб и ошибок невозможен для меня, так как я буду расширять набор данных).