vector - 比较一个文档的向量和一个单词
问题描述
所以,我必须比较文章的向量和单个单词的向量。而且我不知道该怎么做。看起来 BERT 和 Doc2wec 可以很好地处理长文本,而 Word2vec 可以处理单个单词。但是如何比较长文本和一个单词呢?
解决方案
“段落向量”算法的某些模式(也称为Doc2Vec
Python 等库gensim
)会将文档向量和单词向量训练到共享坐标空间中。(具体来说,任何 PV-DMdm=1
模式,或 PV-DBOW 模式dm=0
,如果您使用 启用非默认交错词向量训练dbow_words=1
。)
在这种情况下,您可以使用一些实用程序将Doc2Vec
doc-vectors 与 co-trained word-vectors 进行比较。您可以在后续论文中看到一些示例,这些示例来自“段落向量”算法的创始人,“文档嵌入与段落向量”。
但是,请注意,在使用上下文中经过训练的单个词的向量可能没有与我们对这些相同词的预期作为总体类别的向量相匹配。例如,education
如在许多句子中使用的那样,不一定会假定您可能期望从Education
类别标题中获得的所有方面/宽度。
这样的单个词向量可能比没有更好,并且可能有助于作为引导工具。但是,如果您有属于感兴趣类别的专家标记的文档示例,那就更好了。然后,您还可以使用更高级的分类算法,对不一定由任何单个矢量点(并且在一个紧密的范围内)总结的类别敏感。在真正感兴趣的领域中,这可能比使用单个词向量作为类别锚更好。
对于任何其他非Doc2Vec
向量化文本的方法,您可以通过向该方法提供单个词文本来获得单个词的可比较向量。(即使在Doc2Vec
不创建词向量的模式下,例如纯 PV-DBOW,您也可以使用该模型的训练外文本推断能力来推断单个词文档的文档向量,用于已知词.)
但同样,这种简化/退化的单字输出可能与您正在寻找的更一般/纹理类别不太匹配。这些模型更典型地用于更大的上下文,并且将它们的输出缩小到单个单词可能比在实际上下文中通常导入单词更能反映非自然输入情况的特殊性。