3

首先,感谢您阅读我的问题。

我用过TF/IDF然后在这些值上,我计算了余弦相似度,看看有多少文档更相似。您可以看到以下矩阵。列名类似于 doc1、doc2、doc3,行名与 doc1、doc2、doc3 等相同。借助以下矩阵,我可以看到 doc1 和 doc4 具有 72% 的相似性(0.722711142)。即使我看到它们相似的两个文件也是正确的。我有 1000 个文档,我可以看到每个文档的频率。在矩阵中查看其中有多少是相似的。我使用了不同的聚类,比如 k-means 和 agnes (hierarchy) 来组合它们。它制造了集群。例如 Cluster1 有 (doc4, doc5, doc3) 因为它们的值 (0.722711142, 0.602301766, 0.69912109) 分别更接近。但是当我手动查看这三个文件是否真的相同时,它们不是。:

    1             0.067305859  -0.027552299   0.602301766   0.722711142    
    0.067305859   1             0.048492904   0.029151952  -0.034714695 
   -0.027552299   0.748492904   1             0.610617214   0.010912109    
    0.602301766   0.029151952  -0.061617214   1             0.034410392    
    0.722711142  -0.034714695   0.69912109    0.034410392   1            

PS:值可能是错误的,这只是给你一个想法。如果您有任何问题,请务必提出。谢谢

4

2 回答 2

1

我不熟悉 TF/IDF,但这个过程通常在许多阶段都会出错:

1,你删除了停用词吗?

2、你申请词干了吗?例如,波特词干分析器。

3,您是否对文档长度的频率进行了标准化?(也许 TFIDF 有一个解决方案,我不知道)

4、聚类是一种发现方法,但不是圣杯。它作为一个组检索的文档可能或多或少相关,但这取决于数据、调整、聚类算法等。

你想达到什么目标?你的设置是什么?祝你好运!

于 2010-02-08T18:34:04.787 回答
1

我的方法是根本不使用预先计算的相似度值,因为文档之间的相似度应该由聚类算法本身找到。我将简单地设置一个特征空间,在语料库中每个术语一列,以便列数等于词汇表的大小(如果需要,减去停用词)。每个特征值都包含该文档中相应术语的相对频率。我想您也可以使用 tf*idf 值,尽管我不希望这有太大帮助。根据您使用的聚类算法,应该自动找到特定术语的区分能力,即如果一个术语以相似的相对频率出现在所有文档中,那么该术语不能很好地区分类别,算法应该检测到.

于 2010-02-15T11:59:18.007 回答