Я абсолютно новачок у 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'. Яку техніку я повинен використовувати, щоб знайти правильні значення параметрів. (пробна і помилка вручну неможлива для мене, оскільки я буду масштабувати набір даних).