0

我有多个文本文件,我正在尝试找到一种方法来识别相似的文本主体。文件本身由一个“平均”大小的段落组成。除此之外,我还有一些数据可以用作数据的标签,如果我要深入了解诸如 saimese 网络之类的神经网络的话。

虽然这是一个选项,但我想知道的另一种可能性是使用诸如 doc2vec 之类的东西来处理所有段落(删除停用词等),然后尝试根据来自 doc2vec 的余弦找到类似的文本文件。

我想知道上述方法在产生的结果方面通常如何相互比较,并且 doc2vec 是否足够强大和准确,可以将其视为一个可行的选择?我也可能忽略了一个很好的方法。

4

1 回答 1

0

在 gensim 库中名为 Doc2Vec 的“段落向量”算法可以解决这个问题。您不一定要删除停用词。对于非常小的文档(少于 10-20 个单词)或小的语料库(少于 100,000 个文档),结果可能会有点不稳定。

鉴于你有标签,Facebook 对 word2vec 的 FastText 改进还包括一个“分类器”模式,它优化词向量不仅可以预测它们的邻居,而且可以很好地预测已知标签,当对所有词向量进行平均时一起运行文本。他们也值得一试。

对于任何一组词向量,称为“词移动距离”的计算给出了文本之间相似性的有趣度量。但是,针对所有候选匹配进行计算是很昂贵的。

还有许多其他技术——有“fastSent”、“sent2vec”、“skip-thought vectors”和更多改进。哪种效果最好通常取决于您的语料库和特定的最终目标,以及您可以调整语料库和算法的程度,以及“相似性”的哪些方面对您的用户最重要。您确实必须尝试它们,然后针对您的项目目标进行严格的评估。

于 2017-07-10T23:59:22.810 回答