Nlp 查找文件的新颖性

Nlp 查找文件的新颖性,nlp,k-means,similarity,cosine-similarity,Nlp,K Means,Similarity,Cosine Similarity,我有一个在不同时间创建的文档集合。我需要知道每个新输入的文档与已经添加的文档集有多相似。新的文件可以添加新的术语,因此在这些文件中,我希望“新颖性”很高。我需要了解这种新奇感(或者距离感) 例如,假设已经有d0、d1、d2、d3,我有一个新文档d4 我想了解d4与d0、d1、d2和d3的区别 我想到了几种方法,但有一些局限性: a) 计算(d0,d4),(d1,d4),(d2,d4),(d3,d4)中每一个之间的余弦相似性 求平均余弦相似度 或 查找新文档d4和以前看到的每个文档(即d0、d

我有一个在不同时间创建的文档集合。我需要知道每个新输入的文档与已经添加的文档集有多相似。新的文件可以添加新的术语,因此在这些文件中,我希望“新颖性”很高。我需要了解这种新奇感(或者距离感)

例如,假设已经有d0、d1、d2、d3,我有一个新文档d4

我想了解d4与d0、d1、d2和d3的区别

我想到了几种方法,但有一些局限性:

a) 计算(d0,d4),(d1,d4),(d2,d4),(d3,d4)中每一个之间的余弦相似性

  • 求平均余弦相似度

查找新文档d4和以前看到的每个文档(即d0、d1、d2、d4)之间余弦角负的最小值

其想法是,最低限度将给人一种新颖的d4的感觉

b) 合并d0、d1、d2、d3并将其与d4进行比较 然后找到余弦相似性


这些方法看起来合适吗?此外,是否有更合适的方法来获得新奇感,也许是使用K-means聚类

计算集合中单词的估计值,以及新文档中单词的单独分布。计算这些分布的距离。如果d0、d1、d2和d3不一样怎么办?d4与d0非常相似,与d3完全不同,因为d0和d3非常不同

结合d0-N可能不是一个好主意,因为N越大,d(N+1)成为d(0-N)子集的可能性越大


事实上,文档级别的新颖性检测被认为很少有用,因为几乎每个文档都会有新的内容。为了解决这个问题,您可以使用hPAM来检索主题,并使用余弦相似度来检测差异,而不是测量文档的新颖性。您也可以使用中建议的新颖性分数,这显示出更好的效果。

这些文档相对较短,KL Distance是否适用于此?是的,只要您有足够的短文本。这是否适用于我正在使用的短文档设置。而且,这些文件并没有根本的不同,这不重要。关于主题建模,由于hPAM仅在Mallet中实现,除非使用Java,否则会有点尴尬,您可以尝试使用LDA来观察初始指标。尝试组合d0、d1、d2、d3,并将它们作为OneClassSVM中的常规类使用。