- 不需要人为参与的真·无监督文本聚类
主要思路为文本向量化 + 聚类,通过文本向量化,获取两两文本之间相似度,然后根据相似度进行聚类。
文本向量化使用的是目前中文句向量效果最好的方案:chinese-roformer-sim
聚类使用InfoMap 进行无监督聚类,参考:最小熵原理(五):“层层递进”之社区发现与聚类
- 下载对应的模型文件后修改
vectorizer.py
中的配置目录; - 函数
informap_cluster
方法中的threshold
是只保留两个边的最小阈值,主要作用是减少图中的边,减少计算量
from cluster import infomap_cluster
data = ['早上好', '你好啊', 'hello', '奥运健儿加油', '冬奥会真好看', 'good morning']
print(infomap_cluster(data, keep_outlier=True, threshold=0.9))
"""
[['早上好', 2], ['你好啊', 1], ['hello', 1], ['奥运健儿加油', 3], ['冬奥会真好看', 4], ['good morning', 2]]
"""