我正在为文件夹层次结构中找到的类似文件名的(模糊)聚类寻找已知的好算法。
为了保持SO规则和精神,让我详细解释一下背景,以便你的答案可以简洁而不是通用。
我的目标是开发一个应用程序:
例如,给定3个文件夹:
folder 1
:file_1
,file_7
,file_23
,... folder 2
:file_1
的副本,... folder 3
:file_5
,... 我建议:
file_1
中folder 2
的副本,而不是folder 1
中的副本,因为folder 1
中的群集中有较大部分。file_5
从folder 3
移至folder 1
,因为它会扩展现有群集。我读过两个概念:
我假设我能够创建一个图表,其中节点是文件名,边缘是距离(我已经发布了separate question用于距离计算。)
似乎this kind of algorithm可以从此图表中找到群集。
作为一名程序员,而不是数学家,我希望能找到一些最佳方向的建议,以寻找适用于这种特定聚类文件名的有效聚类算法(基于具有可比目标的现有项目)。
答案 0 :(得分:1)
由于您正在寻找良好的聚类算法,我不会进入文本和文档的相似性分数。但是,您可以在Natural Language Processing
中找到有用的研究材料。当涉及文档的上下文时,您甚至可以Topic Modeling
。
听起来你不想在算法中挖掘太多数学。我将建议一个简单的方法(下面)。
假设您已获得阈值相似度图,则该图可以表示为矩阵或列表字典。在阈值处理后,图形可以是稀疏的或密集的。
如果它非常密集,请尝试Spectral Clustering。
如果稀疏,请尝试Affinity Propagation。
它们都有很好的文档记录,并在数据科学中使用的大多数编程语言中实现。例如,在Python
中,您有Scikit-Learn;在R
中,您有This。
您提出的有趣概念。祝你好运!