2015-06-17 2 views
0

Я пытаюсь построить модель классификации чувств с R и H2O. У меня есть файл данных с форматом:Word2Vec Sentiment Classification с R и H2O

+-----------+------------------------------------------------------+ 
| Sentiment | Text             | 
+-----------+------------------------------------------------------+ 
| 1   | This is a sample text. This is another sentence.  | 
+-----------+------------------------------------------------------+ 
| 0   | Another sentence. And another!      | 
+-----------+------------------------------------------------------+ 
| -1  | Text text and Text! Text everywhere! So much text... | 
+-----------+------------------------------------------------------+ 

Таким образом, настроения дорожит 1, 0 и -1 и текст в каждой строке может состоять из нескольких предложений. Я знаю, что хочу подготовить набор данных, чтобы использовать его с функцией deeplearning h2o. Поэтому я хотел использовать пакет tmcn.word2vec R. Но я не могу преобразовать его по-разному с этим пакетом. Я мог бы просто получить весь текстовый столбец и преобразовать его в документ word2vec, но тогда моя информация о настроении будет потеряна.

Есть ли другой способ перевести текст в числовой ввод для функции deeplearning в R? Специально для H2O?

С наилучшими пожеланиями

+1

Вот недавний пример использования word2vec в h2o: https://github.com/h2oai/h2o-3/blob/master/h2o-r/demos/rdemo.word2vec.craigslistjobtitles.R – redmode

ответ

0

Итак, есть несколько способов, вы можете идти о выполнении вашей задачи с помощью H2O для этого приложения. Прежде всего, вам нужно нормализовать тексты в вашем наборе данных.

Я предполагаю, что вы выполняете очистку текста/токенизацию, которая будет генерировать последовательность отдельных строк слов. Затем вы будете запускать свою модель Word2Vec для этих отдельных строк слов. Проблема заключается в том, что каждый текстовый документ может содержать N длин слов и поэтому вы можете попытаться усреднить векторы word2vec для данной строки.

Так что в вашем примере выше на SENTENCE2: v (другое) + v (предложение) + v (и) + v (другой)/4 (отдельные слова) Это будет производить в среднем вектор X особенности долго каждый отдельный текстовый документ.

После этого вы можете использовать нашу функцию h2o.cbind() в R. Итак, разделите свой набор данных на 2 кадра данных, в которых кадр 1 - это просто чувство документа (-1, 0, 1) и следующие данные frame - это твиты («Другое предложение и другое»). Выполните вышеуказанные шаги в твитовую фреймворк, а затем переместите два.

Обязательно передайте оба кадра данных в h2o, прежде чем использовать нашу команду h2o.cbind(), но затем вы должны быть готовы запустить нашу модель h2o.deeplearning() в вашем наборе данных!

Удачи вам!

0

Я использовал rword2vec пакет вместо tmcn.word2vec.

Обучить wordvec модели, не должно быть никаких знаков препинания и все слова должны быть в нижнем регистре для достижения лучших результатов

train=data$Text 
train=tolower(train) 
train=gsub("[[:punct:]]", "", train) 
write(train,"text_data.txt") 

Теперь поезд word2vec модель на текстовом файле. Выходной файл может быть .txt или .bin.

Pro. Выходного файла .txt: вы можете легко изменять или выполнять операции над векторами слов.

Контракт выходного файла .txt: вы не можете использовать другие функции rword2vec (расстояние, аналогию) в .txt-файле.

Обучить word2vec модель:

model=word2vec(train_file = "text_data.txt",output_file ="model1.bin",layer1_size = 300,min_count = 40,num_threads = 4,window = 10,sample = 0.001,binary=1) 

Чтобы получить.TXT-файл из двоичного файла вывода:

bin_to_txt("model1.bin","model1text.txt") 

Нам нужно «model1text.txt» для создания обучающего набора данных. Есть два популярных способа создания обучающего набора данных:

  1. Векторные Усреднение (для каждой строки создать вектор признаков, беря среднее значение всех слов векторов, присутствующих в этой строке)
  2. Сумка центроидов (кластер слов словаря и затем создать мешок центроиды как похож на мешок слов)

для получения дополнительной информации, ознакомьтесь с this учебник серии:

Я построил модель классификации настроения, используя вышеуказанные методы мешок kaggle о вр ds отвечает сумке попкорна (Github Repo link). Вы можете использовать этот код, чтобы получить набор учебных данных для ваших текстовых данных, внеся необходимые изменения.

Наконец, подготовьте это на учебном наборе данных, используя h2o или любой алгоритм обучения машине, чтобы получить модель классификации чувств.

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