基于余弦相似度进行文本聚类,请提供一个简单实例并给出代码
时间: 2024-09-21 18:11:49 浏览: 49
基于K-Means的文本聚类(Java实现)
4星 · 用户满意度95%
基于余弦相似度进行文本聚类是一种常用的信息检索技术,它通过计算两个文档之间的角度来衡量它们的相似程度。在这种方法中,我们将文本看作是一组词向量的集合,而每个词对应向量的一个维度。
假设我们有两篇简单的文本:
1. 文本A:“这是一段关于机器学习的示例。”
2. 文本B:“这是另一个关于人工智能的例子。”
我们可以将每篇文章转换成词频向量(TF-IDF),这是一种常用的文本特征表示方法。然后,我们会计算这两向量之间的余弦相似度:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 创建TF-IDF向量化器
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(['文本A', '文本B'])
# 计算矩阵
similarity_matrix = cosine_similarity(X)
# 对角线元素代表自身的相似度,取第二个行第二个列作为例子
cosine_sim = similarity_matrix[1][0]
# 将0-1范围内的相似度标准化到0-100(方便理解)
normalized_sim = (cosine_sim + 1) * 50
print(f"文本A和文本B的余弦相似度为: {normalized_sim}%")
```
在这个例子中,如果余弦相似度接近1,说明两篇文章非常相似;若接近0,则表示内容差异较大。
阅读全文