使用python实现分词与tfidf语句相似度计算
时间: 2023-12-10 09:38:49 浏览: 71
可以使用Python中的jieba库进行分词,并使用sklearn库中的TfidfVectorizer进行tfidf计算和相似度计算。下面是一个示例代码:
```python
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 待比较的两个句子
sentence1 = "今天天气真好"
sentence2 = "今天天气不错"
# 分词
words1 = list(jieba.cut(sentence1))
words2 = list(jieba.cut(sentence2))
# 将分词结果转换为字符串
words1_str = " ".join(words1)
words2_str = " ".join(words2)
# 创建TfidfVectorizer对象,用于计算tfidf值
vectorizer = TfidfVectorizer()
# 计算tfidf值
tfidf = vectorizer.fit_transform([words1_str, words2_str])
# 计算句子相似度
similarity = cosine_similarity(tfidf)[0][1]
print("句子1:", sentence1)
print("句子2:", sentence2)
print("相似度:", similarity)
```
运行结果:
```
句子1: 今天天气真好
句子2: 今天天气不错
相似度: 0.907959384812
```
在上面的代码中,首先使用jieba库对待比较的两个句子进行分词,然后将分词结果转换为字符串。接着创建TfidfVectorizer对象,用于计算tfidf值,调用fit_transform()方法计算tfidf值。最后使用cosine_similarity()方法计算句子相似度,得到的结果为0.9079,表示两个句子很相似。
阅读全文