自動外鏈工具 在線排版工具 搜索引擎提交入口 wordpress主題推薦 批量打開網址工具 【老域名購買】 思享SEO導航 【網站合作】

cygwin下用Python比較兩個文本的相似性

1083
文章目錄
  1. 參考資料

cygwin下用Python比較兩個文本的相似性,使用到了結巴分詞以及余弦定理。

關于結巴分詞,大家可以看看這篇文章《cygwin下用Python+jieba給文本分詞并提取高頻詞》

  1. #!/usr/bin/env?python
  2. #?-*-?coding:?utf-8?-*
  3. import?re
  4. from?math?import?sqrt
  5. #You?have?to?install?the?python?lib
  6. import?jieba
  7. def?file_reader(filename,filename2):
  8. ????file_words?=?{}
  9. ????ignore_list?=?[u'的',u'了',u'和',u'呢',u'啊',u'哦',u'恩',u'嗯',u'吧'];
  10. ????accepted_chars?=?re.compile(ur"[\\u4E00-\\u9FA5]+")
  11. ????file_object?=?open(filename)
  12. ????try:
  13. ????????all_the_text?=?file_object.read()
  14. ????????seg_list?=?jieba.cut(all_the_text,?cut_all=True)
  15. ????????#print?"/?".join(seg_list)
  16. ????????for?s?in?seg_list:
  17. ????????????if?accepted_chars.match(s)?and?s?not?in?ignore_list:
  18. ????????????????if?s?not?in?file_words.keys():
  19. ????????????????????file_words[s]?=?[1,0]
  20. ????????????????else:
  21. ????????????????????file_words[s][0]?+=?1
  22. ????finally:
  23. ????????file_object.close()
  24. ????file_object2?=?open(filename2)
  25. ????try:
  26. ????????all_the_text?=?file_object2.read()
  27. ????????seg_list?=?jieba.cut(all_the_text,?cut_all=True)
  28. ????????for?s?in?seg_list:
  29. ????????????if?accepted_chars.match(s)?and?s?not?in?ignore_list:
  30. ????????????????if?s?not?in?file_words.keys():
  31. ????????????????????file_words[s]?=?[0,1]
  32. ????????????????else:
  33. ????????????????????file_words[s][1]?+=?1
  34. ????finally:
  35. ????????file_object2.close()
  36. ????sum_2?=?0
  37. ????sum_file1?=?0
  38. ????sum_file2?=?0
  39. ????for?word?in?file_words.values():
  40. ????????sum_2?+=?word[0]*word[1]
  41. ????????sum_file1?+=?word[0]**2
  42. ????????sum_file2?+=?word[1]**2
  43. ????rate?=?sum_2/(sqrt(sum_file1*sum_file2))
  44. ????print?'rate:?'
  45. ????print?rate
  46. file_reader('thefile.txt','thefile2.txt')
  47. #該片段來自于http://outofmemory.cn

我們先試一下,a1.txt和a2.txt為同一個文件時結果是什么?

結果

這回rate值為0,說明兩篇文章主題相似度非常低。

再找一篇原創文章和一篇偽原創文章來對比一下:

不相關的內容

rate值為0.96,說明這兩篇文章相似度非常高!可以像百度這樣專業的搜索引擎,想要判斷一篇文章是否是偽原創的,是多么容易.......

參考資料

1、《數學之美系列十二:余弦定理和新聞的分類
2、《【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算

來源:本文由思享SEO博客原創撰寫,歡迎分享本文,轉載請保留出處和鏈接!
seo培訓評論廣告

搶沙發

昵稱*

郵箱*

網址

七乐彩选号技巧