赞
踩
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. ]]
import jieba from gensim import corpora, models, similarities # 语料库 corpus = ['你借的钱什么时候还呀', '你到底什么时候还钱', '你如果不还钱的话,你的征信将会收到影响', '欠钱不还会影响征信', '影响征信的原因可能是欠钱不还'] # 分词 corpus_cut = [list(jieba.cut(text)) for text in corpus] # 构建词典 dictionary = corpora.Dictionary(corpus_cut) # 构建语料库 corpus_bow = [dictionary.doc2bow(text) for text in corpus_cut] # 训练LSI模型 lsi_model = models.LsiModel(corpus_bow, id2word=dictionary, num_topics=2) # 计算文本相似度 corpus_lsi = lsi_model[corpus_bow] index = similarities.MatrixSimilarity(corpus_lsi) # 计算相似度 similarity_matrix = index[corpus_lsi] print(similarity_matrix)
运行结果如下:
[[1. 0.99816966 0.7902421 0.119727 0.13108377]
[0.99816966 1. 0.75173587 0.05946621 0.07088902]
[0.7902421 0.75173587 0.99999994 0.7030001 0.7110951 ]
[0.119727 0.05946621 0.70300007 1. 0.9999345 ]
[0.13108377 0.07088902 0.7110951 0.9999345 1. ]]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。