首页 文章

比较文件 - 文件相似性

提问于
浏览
0

我目前正在进行一个NLP / IR的java项目,对此我是相当新的 . 该项目由一个包含大约1000个文档的集合组成,每个文档大约有100个单词,结构为带有术语频率的单词包 . 我想根据文档(来自集合)找到类似的文档 .

使用TF-IDF,计算查询(给定文档)和集合中的每个其他文档的tf-idf,然后将这些值作为具有余弦相似性的向量进行比较 . 这可以对它们的相似性有所了解吗?或者它是不合理的,因为大查询(文档)?还有其他相似性措施可以更好地运作吗?

谢谢您的帮助

2 回答

  • 1

    基于TF-IDF的相似性,通常使用余弦来将表示查询项的向量与表示文档的TF-IDF值的向量集进行比较,是计算“相似性”的常用方法 .

    请注意,“相似性”是一个非常通用的术语 . 在IR域中,您通常会说“相关性” . 文本可以在许多层面上相似:使用相同的语言,使用相同的词,使用相同的人,使用类似的复杂语法结构等等 - 因此,有许多措施 . 在Web上搜索文本相似性以查找许多出版物,以及实现不同度量的开源框架和库 .

    今天,"semantic similarity"比传统的基于关键词的IR模型更受关注 . 如果这是您感兴趣的领域,您可以查看2012 - 2015年SemEval共享任务的结果 .

  • 1

    如果您只想使用TF-IDF比较两个文档,则可以这样做 . 由于您提到每个文档包含100个单词,在最坏的情况下可能会有1000 * 100个唯一单词 . 所以,我假设你的向量是 Build 在所有独特的单词上(因为所有文档都应该用相同的维度表示) . 如果没有 . 如果唯一字词太高,您可以尝试使用一些降维技术来缩小尺寸(如PCA) . 但是你要做的是对的,你可以随时比较这样的文档来找到文档之间的相似性 .

    如果你想在语义意义上更多相似性,你应该看看使用LDA(主题建模)类型技术 .

相关问题