4

我想使用 text2vec 中实现的 GloVe 词嵌入来执行监督回归/分类。我在 text2vec 主页上阅读了有关如何生成词向量的有用教程。但是,我无法掌握如何进一步进行,即应用或转换这些词向量并将它们附加到每个文档,这样每个文档都由一个向量表示(我假设来自其组成词的向量),用作分类器的输入。我在网上遇到了一些针对简短文档的快速修复,但是我的文档相当冗长(电影字幕),并且似乎没有任何关于如何处理此类文档的指导 - 或者至少没有与我的理解水平相匹配的指导;我有使用 n-gram、字典和主题模型的经验,

谢谢!

4

1 回答 1

4

如果您的目标是对文档进行分类——我怀疑任何 doc2vec 方法都会击败词袋/ngram。如果您仍然想尝试 - 常见的简单策略短文档(< 20 个单词)是将文档表示为词向量的加权和/平均值。

您可以通过以下方式获得它:

common_terms = intersect(colnames(dtm), rownames(word_vectors) )
dtm_averaged =  normalize(dtm[, common_terms], "l1")
# you can re-weight dtm above with tf-idf instead of "l1" norm
sentence_vectors = dtm_averaged %*% word_vectors[common_terms, ]

我不知道有任何通用的既定方法可以为长文档获取良好的文档向量。

于 2017-12-04T08:12:02.597 回答