比较doc和一个单词的向量

问题描述 投票:0回答:3

所以,我要比较文章的矢量和单个单词的矢量。而且我不知道该怎么做。看起来BERT和Doc2wec可以很好地处理长文本,Word2vec可以使用单个单词。但是如何将长文本与一个单词进行比较呢?

vector nlp word2vec doc2vec
3个回答
1
投票

“段落矢量”算法的某些模式(在像Python Doc2Vec这样的库中也称为gensim)将训练doc-vectors和word-vectors进入共享坐标空间。 (具体来说,任何PV-DM dm=1模式,或PV-DBOW模式dm=0,如果你使用dbow_words=1启用非默认的交错字矢量训练。)

在这种情况下,您可以将Doc2Vec doc-vectors与经过共同训练的单词向量进行比较,并提供一些实用工具。您可以在后续文章中看到“段落矢量”算法的创始人“Document Embedding with Paragraph Vectors”中的一些示例。

但是,请注意,在使用的上下文中训练过的单个单词的向量可能没有符合我们期望的那些相同单词的向量。例如,在许多句子中使用的education不一定假设你可能期望从Education作为类别标题的所有方面/广度。

这样的单个单词向量可能比没有任何东西更好,并且可能有助于作为自举工具。但是,如果您有专家标记的属于感兴趣类别的文档示例,那就更好了。然后,您还可以使用更高级的分类算法,这些算法对于不一定被任何单个矢量点(并且在一个紧密的范围内)概括的类别敏感。在真实的兴趣领域,这可能比使用单词向量作为类别锚更好。

对于任何其他非Doc2Vec矢量化文本的方法,您可以想象通过向该方法提供单字文本来获得单个单词的可比矢量。 (即使在不创建单词向量的Doc2Vec模式下,如纯PV-DBOW,您也可以使用该模型的训练外文本推断功能来推断单词doc的doc-vector,对于已知的话。)

但同样,这种简化/退化的单字输出可能与您正在寻找的更一般/纹理类别不匹配。这些模型更常用于更大的上下文,并且将它们的输出缩小为单个单词可能反映了非自然输入情况的特性,而不是通常在实际上下文中导入单词。


0
投票

您也可以使用BERT作为单词。一个单词只是一个非常短的句子。所以,理论上,你应该可以使用任何嵌入的句子。

但如果您没有任何监督数据,BERT不是您的最佳选择,那里有更好的options

我认为最好首先尝试doc2vec,如果它不起作用,那么切换到其他东西,如SkipThoughts或USE。

对不起,我帮不了你,这完全取决于任务和数据,你应该测试不同的东西。


0
投票

基于您进一步解释您的问题的进一步评论,听起来您实际上正在尝试进行主题建模(按给定单词对文档进行分类相当于用该主题标记它们)。如果这就是你正在做的事情,我建议你研究一下LDA及其变体(例如以GuidanceLDA为例)。

© www.soinside.com 2019 - 2024. All rights reserved.