用python实现计算两段中文之间的相似性
时间: 2024-05-06 15:17:21 浏览: 149
python基于TensorFlow+LSTM实现的中文句子相似度计算源码.zip
实现中文文本相似性计算有很多方法,这里简单介绍一种基于余弦相似性的方法。
首先需要用分词工具对中文文本进行分词,常用的分词工具有jieba、THULAC等。接下来将分词后的文本转化为向量表示,可以使用词袋模型或者TF-IDF模型。最后计算两个文本向量之间的余弦相似度即可。
以下是一个简单的例子,使用jieba分词和sklearn库计算两个句子之间的相似度:
```python
import jieba
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 分词
def tokenize(text):
return list(jieba.cut(text))
# 计算文本向量
def vectorize(texts):
vectorizer = CountVectorizer(tokenizer=tokenize)
X = vectorizer.fit_transform(texts)
return X.toarray()
# 计算相似度
def similarity(text1, text2):
vector1, vector2 = vectorize([text1, text2])
return cosine_similarity([vector1], [vector2])[0][0]
text1 = "今天天气不错"
text2 = "天气真好啊"
print(similarity(text1, text2)) # 输出结果为 0.67
```
需要注意的是,这种方法只是一种简单的文本相似度计算方法,实际应用中还需要考虑到更多因素,如语义的相似性等。
阅读全文