首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何克服在使用Word嵌入时训练示例的不同长度(word2vec)

如何克服在使用Word嵌入时训练示例的不同长度(word2vec)
EN

Data Science用户
提问于 2016-08-01 10:03:07
回答 5查看 5.2K关注 0票数 12

我使用word2vec作为单词表示,在tweet上进行情感分析。

我已经训练了我的word2vec模型。但是当我要训练分类器时,我面临的问题是,每条推文都有不同的长度,分类器(RandomForest)需要所有的例子都是相同大小的。

目前,对于每一条推文,我平均了它所有单词的向量,最后得到了tweet的向量表示。

例如:我的word2vec模型将每个单词表示为大小为300的向量。

我的Tweet1由10个单词组成,Tweet2由5个单词组成。

所以我要做的是,对于Tweet1

代码语言:javascript
复制
(v1_Tweet1 + v2_Tweet1 + ... +v10_Tweet1)/10 = v_Tweet1 #avg vector of 300 elements.

对于Tweet2

代码语言:javascript
复制
(v1_Tweet2 + v2_Tweet2 + ... +v5_Tweet1)/5 = v_Tweet2 #avg vector of 300 elements.

* v1_TweetX是TweetX第一个单词的向量,依此类推。

这很好,但我想知道你还有什么其他的方法来克服火车上的不同尺寸和分类器的文本示例。

谢谢。

EN

回答 5

Data Science用户

发布于 2017-03-03 21:28:24

让我提出三个简单的选择:

  1. 平均向量(按分量计),即计算文本中每个单词的单词嵌入向量,并对它们进行平均。(如其他人所建议)。
  2. 取矢量的(分量方向)最大值.(最大,而不是平均)
  3. 取矢量的(分量)最小值.(最小,而不是平均)

每个特征向量都与文本的长度无关。

有研究表明,将最大值和最小值串联在一起会产生一个非常有效的特征空间:它不是绝对最优,但接近最优,而且简单且易于实现。详情请参见关于Statistics.SE的这个问题

这里有一个由库伯恩的回答启发的替代想法,据我所知,这个想法以前还没有被测试过。其思想是使用词性标注器对文本进行标记,然后使用这些标记通知特征化过程。

特别是,写下POS标签可能发出的所有可能的POS标记的列表。假设有20个可能的标签(CC,DT,JJS,MD,NNP,.)。然后特征向量将是20*300 = 6000元素长:它将有一个300向量每个POS标签,串联在一定的规范顺序。每个标签的300个向量可以通过平均由POS标记者用该标记标记的所有单词的单词嵌入向量来计算。或者,你可以得到一个600矢量每个POS标签,通过计算的最小和最大的所有向量的文字与该标签。

这可能会产生一个更丰富的特性空间,我不知道它是否会带来任何改进,但如果您想尝试不同的想法,您可以尝试。

票数 7
EN

Data Science用户

发布于 2016-08-04 20:12:59

这里有两个非常不同的建议,以避免将向量平均化:

  1. 使用Word Mover's still (https://github.com/mkusner/wmd)计算这些tweet之间的距离(不确定它在像tweet这样的短文本上工作得有多好,我还需要自己尝试.)
  2. 对单词向量本身进行聚类(使用例如kmeans),然后为每条tweet创建一个带有k个条目(每个集群一个)的向量,对其是否包含属于该集群的单词进行编码。我想我在word2vec上的一个Kaggle教程中看到了这个,如果你找到了这个链接,我会很高兴的!
票数 4
EN

Data Science用户

发布于 2016-08-01 10:11:48

与其为tweet平均和获取单个向量,您还可以为每个单词和不同长度的向量大小获取向量,填充可以用零来完成。

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

https://datascience.stackexchange.com/questions/13120

复制
相关文章

相似问题

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