2016-01-10 4 views
4

Я совершенно не знаком с word2vec, поэтому, пожалуйста, несите его со мной. У меня есть набор текстовых файлов, каждый из которых содержит набор твитов, между 1000-3000. Я выбрал общее ключевое слово ("kw1"), и я хочу найти семантически релевантные термины для "kw1" с использованием word2vec. Например, если ключевое слово "apple", я бы ожидал увидеть связанные термины, такие как "ipad" "os" "mac" ... на основе входного файла. Таким образом, этот набор связанных терминов для "kw1" будет отличаться для каждого входного файла, поскольку word2vec будет обучаться на отдельных файлах (например, 5 входных файлов, запустите word2vec 5 раз для каждого файла).Применение word2vec в небольших текстовых файлах

Моя цель - найти наборы связанных терминов для каждого входного файла с учетом общего ключевого слова ("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 
  • Из моих результатов, которые я видел, я получаю много шумные термины (стоп-слова), когда я использую инструмент 'distance' для получения связанных терминов до "kw1". Поэтому я удалил стоп-слова и другие шумные термины, такие как упоминания пользователей. Но я не видел нигде, что word2vec требует очистки входных данных?

  • Как вы выбираете правильные параметры? Я вижу, что результаты (от запуска инструмента distance) сильно меняются при изменении таких параметров, как '-window', '-iter'. Какой метод я должен использовать, чтобы найти правильные значения для параметров. (ручная пробная версия и ошибка для меня невозможны, поскольку я буду расширять набор данных).

+0

Интересный, но не совсем правильный stackexchange, чтобы задать эти вопросы. Я предлагаю задать вопрос о datascience.stackexchange.com или https://groups.google.com/forum/#!forum/gensim – alvas

ответ

4

Первый вопрос:

Да, почти любая задача, которую я могу себе представить, word2vec применяется к вам придется очистить данные - особенно, если вы заинтересованы в семантике (не синтаксис), который это обычная причина для запуска word2vec. Кроме того, это не просто удаление стоп-слов, хотя это хороший первый шаг. Как правило, вы захотите также иметь токенизатор и сегмент предложений, я думаю, что если вы посмотрите на документ для deeplayning4java (который имеет реализацию word2vec), он показывает использование этих инструментов. Это очень важно, так как вы, вероятно, не заботитесь об отношениях между яблоком и цифрой «5», яблоко и «'s», и т.дом ... Для более детального обсуждения на предварительной обработке для word2vec см https://groups.google.com/forum/#!topic/word2vec-toolkit/TI-TQC-b53w

Второго вопрос:

Нет автоматической настройки для word2vec AFAIK, поскольку это означает, что автор реализации знает, что вы планируете с ней делать. Обычно значения по умолчанию для реализации являются «лучшими» значениями для тех, кто реализован в (или наборе) задач. Извините, word2vec не является решением «под ключ». Вам нужно будет понять параметры и настроить их для исправления своей задачи.

+0

но я еще не видел упоминания об удалении стоп-слов? Разве word2vec не должен обрабатывать стоп-слова, даже если вы их не удаляете? – KillBill

+0

С помощью word2vec вы имеете в виду алгоритм или реализацию, которую вы цитируете выше? Я читал статью Томаса в 2013 году и не упоминается о секундомерах, это детализация реализации, алгоритм не требует этого. Кроме того, я был бы удивлен, если их реализация word2vec, которую вы упоминаете в группах google, удаляет их, поскольку нет согласованного набора слов остановки. Некоторая лингвистика, занимающаяся специализированными задачами, может даже хотеть включить традиционные слова остановки, хотя я думаю, что это было бы редко на английском языке. Это помогает? – ozborn

 Смежные вопросы

  • Нет связанных вопросов^_^