首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于R和H2O的Word2Vec情感分类

基于R和H2O的Word2Vec情感分类
EN

Stack Overflow用户
提问于 2015-06-17 20:18:20
回答 3查看 9.9K关注 0票数 0

我试图用R和H2O建立一个情感分类模型。我有一个格式的数据文件:

代码语言:javascript
复制
  +-----------+------------------------------------------------------+
| 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... |
+-----------+------------------------------------------------------+

因此,情感值a为1,0和-1,每一行的文本可以由几个句子组成。我知道想要准备数据集,以便将其与h2o的深度学习函数一起使用。因此,我想使用tmcn.word2vec R包。但是我不能用这个包把它按行变换。我只需获取整个文本列并将其转换为word2vec文档,但这样我的情感信息就会丢失。

是否有另一种方法将文本转换为R中的深度学习函数的数字输入?尤其是对H2O?

诚挚的问候

EN

回答 3

Stack Overflow用户

发布于 2016-09-01 16:56:06

https://www.kaggle.com/c/word2vec-nlp-tutorial/details/part-3-more-fun-with-word-vectors

上面的Kaggle文章解释了克服这一挑战的几种方法(但是,用Python)。确实有,

  1. 向量平均(如Avni所述)
  2. 聚类
  3. 段落向量检查这张纸

我认为这些想法可能会有帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-08-13 23:22:38

因此,有几种方法可以帮助您完成在此应用程序中使用H2O的任务。不过,首先,您需要对数据集中的文本进行规范化。

我假设您正在进行一些文本清理/标记化,这将产生一系列单独的字串。然后您将在这些单独的字串上运行您的Word2Vec模型。问题是每个文本文档都可以是N个字长,所以您可能需要尝试将给定字符串的word2vec向量平均。

因此,在上面关于sentence2的示例中:v(另一个)+v(句子)+v(和)+v(另一个)/4(单个单词),这将为每个单独的文本文档生成一个X特征的平均向量。

在此之后,您可以在R中使用我们的h2o.cbind()函数,因此将您的数据集划分为两个数据帧,其中框架1只是文档的情感(-1,0,1),下一个数据帧是tweet(‘另一个句子。和另一个’)。在tweet dataframe上运行上述步骤,然后对这两个步骤进行绑定。

但是,在使用我们的h2o ()命令之前,请确保将这两个数据帧传递到h2o.cbind,然后您应该已经准备好在数据集中运行h2o.deeplearning()模型了!

祝好运!

票数 0
EN

Stack Overflow用户

发布于 2016-03-16 07:36:14

我用的是rword2vec包而不是tmcn.word2vec。

为了训练wordvec模型,不应该有标点符号,所有单词都应该小写,这样才能取得更好的效果。

代码语言:javascript
复制
train=data$Text
train=tolower(train)
train=gsub("[[:punct:]]", "", train)
write(train,"text_data.txt")

现在在这个文本文件上训练word2vec模型。输出文件可以是.txt或.bin。

支持.txt输出文件:您可以很容易地更改或操作字向量。

.txt输出文件的Con :不能在.txt文件上使用其他rword2vec函数(距离、类推)。

为了训练word2vec模型:

代码语言:javascript
复制
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文件,请执行以下操作:

代码语言:javascript
复制
bin_to_txt("model1.bin","model1text.txt") 

我们需要"model1text.txt“来创建训练数据集。有两种常见的创建培训数据集的方法:

  1. 向量平均(为每一行创建一个特征向量,取该行中所有单词向量的平均值)
  2. 中心包(聚类词词汇表,然后创建类似于单词袋的质心包)

有关更多信息,请参阅教程系列:

利用上述方法对kaggle's书包与爆米花袋(Github回购链接)建立了情感分类模型。通过进行一些必要的更改,您可以使用此代码获取文本数据的培训数据集。

最后,利用h2o或任何机器学习算法对训练数据集进行训练,得到情感分类模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30901595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档