有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的数学将相似的值分组

首先,感谢阅读我的问题

我用TF/IDF然后在这些值上,我计算余弦相似性,看看有多少文档更相似。你可以看到下面的矩阵。列名类似于doc1、doc2、doc3,行名类似于doc1、doc2、doc3等。借助下面的矩阵,我可以看到doc1和doc4有72%的相似性(0.722711142)。即使我看到两份文件都是相似的,这也是正确的。我有1000个文档,我可以在矩阵中查看每个文档的频率,看看其中有多少是相似的。 我使用了不同的聚类,比如k-means和agnes(层次结构)来组合它们。它形成了集群。例如,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            

附言:价值观可能是错误的,这只是给你一个想法。 如果你有任何问题,请一定要问。 谢谢


共 (1) 个答案

  1. # 1 楼答案

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

    1.你删除了stopwords吗

    2.你应用词干分析了吗?比如波特·斯特默

    3.你是否规范了文档长度的频率?(也许TFIDF的事情有解决办法,我不知道)

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

    你想要实现什么?你的设置是什么? 祝你好运