第一种基于TF-IDF向量法计算文本相似度
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 语料库
corpus = [
'你借的钱什么时候还呀',
'你到底什么时候还钱',
'你如果不还钱的话,你的征信将会收到影响',
'欠钱不还会影响征信',
'影响征信的原因可能是欠钱不还'
]
# 分词
corpus_cut = [' '.join(list(jieba.cut(text))) for text in corpus]
# TF-IDF向量化
vectorizer = TfidfVectorizer()
corpus_tfidf = vectorizer.fit_transform(corpus_cut)
# 计算相似度
similarity_matrix = cosine_similarity(corpus_tfidf)
print(similarity_matrix)
运行结果如下:
[[1. 0.75203953 0. 0. 0. ]
[0.75203953 1. 0. 0. 0. ]
[0. 0. 1. 0.32580811 0.21520437]
[0. 0. 0.32580811 1. 0.66052491]
[0. 0. 0.21520437 0.66052491 1. ]]