当前位置:   article > 正文

【python】python自然语言处理-----计算中文文本相似度_python 中文计算文本相似度

python 中文计算文本相似度

python自然语言处理-----计算中文文本相似度

  1. from gensim import corpora,models,similarities
  2. import jieba
  3. from collections import defaultdict
  4. import urllib.request
  5. #d1=open("C:/Users/yyq/Desktop/毕业论文/文档1.txt").read()
  6. #d2=open("C:/Users/yyq/Desktop/毕业论文/文档2.txt").read()
  7. jieba.load_userdict("C:/Users/yyq/Desktop/毕业论文/词典.txt")
  8. d1=urllib.request.urlopen("file:///C:/php/WWW/%E6%96%87%E6%A1%A31.html").read().decode("gbk","ignore")
  9. d2=urllib.request.urlopen("file:///C:/php/WWW/%E6%96%87%E6%A1%A3%202.html").read().decode("gbk","ignore")
  10. #print(data2)
  11. data1=jieba.cut(d1)
  12. data2=jieba.cut(d2)
  13. data11=""
  14. for item in data1:
  15. data11+=item+" "
  16. data21=""
  17. for item in data2:
  18. data21+=item+" "
  19. documents=[data11,data21] #存储到数组
  20. texts=[[word for word in document.split()]for document in documents]
  21. #print(texts)
  22. frequency=defaultdict(int)
  23. for text in texts:
  24. for token in text:
  25. frequency[token]+=1
  26. #print(frequency)
  27. #texts=[[word for word in text if frequency[token]>2]for text in texts]
  28. dictionary=corpora.Dictionary(texts)
  29. #dictionary.save("C:/php/WWW/分词2.html")
  30. d3=urllib.request.urlopen("file:///C:/php/WWW/%E6%96%87%E6%A1%A33.html").read().decode("gbk","ignore")
  31. data3=jieba.cut(d3)
  32. data31=""
  33. for item in data3:
  34. data31+=item+" "
  35. new_doc=data31
  36. new_vec=dictionary.doc2bow(new_doc.split())
  37. #print(new_vec)
  38. corpus=[dictionary.doc2bow(text) for text in texts]
  39. #print(corpus)
  40. corpora.MmCorpus.serialize("C:/Users/yyq/Desktop/毕业论文/corpus.txt",corpus)
  41. tfidf=models.TfidfModel(corpus)
  42. featureNum=len(dictionary.token2id.keys())
  43. index=similarities.SparseMatrixSimilarity(tfidf[corpus],num_features=featureNum)
  44. sim=index[tfidf[new_vec]]
  45. print(sim)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

这里写图片描述 
结论:第三个文本和第一个第二个文本的相似度为:0.007和0.03

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号