我的主题是(一堆)文本的相似性和聚类.简而言之:我想将收集的文本聚集在一起,最后它们应该出现在有意义的聚类中.为此,我到目前为止的方法如下,我的问题在于群集.目前的软件是用PHP编写的.
1)相似性:我将每个文档视为"词袋"并将单词转换为向量.我用
作为降维的方法.之后,我正在使用余弦相似性(如网站和此处各种网站所建议/描述的那样).
结果就是这样的相似性矩阵:
A B C D E
A 0 30 51 75 80
B X 0 21 55 70
C X X 0 25 10
D X X X 0 15
E X X X X 0
Run Code Online (Sandbox Code Playgroud)
A ... E是我的文本,数字是百分比的相似度; 越高,文本越相似.因为sim(A,B)== sim(B,A)只填充了矩阵的一半.因此,文本A与文本D的相似度为71%.
我想现在从这个矩阵中生成一个先验未知(!)的簇数.群集应该一起表示相似的项目(直到某个停止标准).
我自己尝试了一个基本的实现,基本上是这样的(60%作为固定的相似性阈值)
foreach article
get similar entries where sim > 60
foreach similar entry
check if one of the entries already has a cluster number
if no: assign new cluster …Run Code Online (Sandbox Code Playgroud) cluster-analysis machine-learning distance similarity matrix