从单词矢量到文档向量[text2vec]

时间:2017-12-03 06:11:34

标签: r text2vec

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

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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

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, ]

我不知道为长文档获取良好文档向量的任何通用已建立的方法。