对文本相似度进行无监督学习层次聚类python代码示例
时间: 2024-12-23 10:20:20 浏览: 2
无监督学习层次聚类(Hierarchical Clustering)是一种将文本相似度作为输入,并通过不断合并最相似的样本形成聚类的过程。这里提供了一个使用`sklearn`库在Python中进行无监督文本聚类的简单例子,我们将使用`TfidfVectorizer`进行词频转换,并利用`AgglomerativeClustering`进行层次聚类:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import AgglomerativeClustering
import numpy as np
# 假设你有一个包含文本的列表
texts = ['这是一段文本', '这是另一段文本', '这是第三段文本', ...]
# 将文本转换成TF-IDF特征矩阵
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(texts)
# 创建层次聚类模型,设定连接策略(如ward、average、complete等)
n_clusters = None # 如果不知道具体分几类,可以设置为None,系统会自动选取适当的簇数
linkage_method = 'ward' # 可选链接法,这里用ward方法(倾向于生成较小的类)
agglo_clustering = AgglomerativeClustering(n_clusters=n_clusters, affinity='cosine', linkage=linkage_method)
# 训练模型
labels = agglo_clustering.fit_predict(tfidf_matrix)
# 打印聚类结果
for i in range(len(texts)):
print(f"文本{i}属于类别{labels[i]}")
# 现在你可以分析聚类结果,比如查看每个类别的文档主题
阅读全文