文本相似性
1、相似度计算的步骤
上一篇:文本挖掘
1、读取文档
2、对要计算的多篇文档进行分词
3、对文档进行整理成指定格式,方便后续进行计算
4、计算出词语的频率
5【可选】、对频率低的词语进行过滤
6、通过语料库建立词典
7、加载要对比的文档
8、将要对比的文档通过doc2bow转化为稀疏向量
9、对稀疏向量进行进一步处理,得到新语料库
10、将新语料库通过tfidfmodel进行处理,得到tfidf
11、通过token2id得到特征数
12、稀疏矩阵相似度,从而建立索引
13、得到最终相似度结果
2、实战代码
demo实例
'''
计算文本相似度
'''
from gensim import corpora,models,similarities
import jieba
from collections import defaultdict
doc1="data/d1.txt"
doc2="data/d2.txt"
# 1、加载文档
d1=open(doc1,encoding='UTF-8').read()
d2=open(doc2,encoding='UTF-8').read()
# 2、进行分词
data1=jieba.cut(d1)
data2=jieba.cut(d2)
'''
for item in data1:
print(item)
print("")
for item in data1:
print(item)
'''
#"词语1 词语2 词语3 … 词语n"
# 3、整理文档
data11=""
for item in data1:
data11+=item+" "
# print(data11)
data21=""
for item in data2:
data21+=item+" "
documents=[data11,data21]#放入文档
texts=[[word for word in document.split()]
for document in documents]
# print(texts)
# 4、计算出词语的频率
frequency=defaultdict(int)
for text in texts