1. 程式人生 > >python實例:三國演義TXT文本詞頻分析

python實例:三國演義TXT文本詞頻分析

沒有 ltib str 詞頻 lse 文件讀取 == 分享 bsp

0x00 前言

找不到要寫什麽東西了!今天有個潭州大牛講師 說了個 文本詞頻分析

我基本上就照抄了一遍

中間遇到一些小小的問題 自我百度 填坑補全了 如下 :

效果演示

技術分享圖片

0x01 準備環境及介紹

python3.x版本 隨意

安裝jieba庫

pip install jieba

jieba三種模式:

  1.精準模式 lcut函數,返回一個分詞列表

  2.全模式

  3.搜索引擎模式

詞頻:

  <單詞>:<出現次數>的鍵值對

  IPO描述 imput output process

  輸入 :從文件讀取三國演義的內容

  處理 :采用jiedb進行分詞,字典數據結構統計詞語出現的頻率

  輸出 :文章中出現最對的前10個詞

代碼:

  第一步:讀取文件

  第二步:分詞

  第三步:統計

  第四步:排序

介紹完畢了!那麽進入實戰吧!

0x02 實戰

完整代碼如下:

 1 import jieba
 2 
 3 content = open(三國演義.txt, r,encoding=utf-8).read()
 4 words =jieba.lcut(content)#分詞
 5 excludes={"將軍","卻說","二人","後主","上馬","不知","天子","大叫","眾將","不可","主公","蜀兵","只見","如何","商議","都督","一人
","漢中","不敢","人馬","陛下","魏兵","天下","今日","左右","東吳","於是","荊州","不能","如此","大喜","引兵","次日","軍士","軍馬"}#排除的詞匯 6 words=jieba.lcut(content) 7 counts={} 8 9 for word in words: 10 if len(word) == 1: # 排除單個字符的分詞結果 11 continue 12 elif word == 孔明 or word == 孔明曰: 13 real_word = 孔明 14 elif
word == 關公 or word == 雲長: 15 real_word = 關羽 16 elif word == 孟德 or word == 丞相: 17 real_word = 曹操 18 elif word == 玄德 or word == 玄德曰: 19 real_word = 劉備 20 else: 21 real_word =word 22 counts[word] = counts.get(word, 0) + 1 23 24 25 26 for word in excludes: 27 del(counts[word]) 28 items=list(counts.items()) 29 items.sort(key=lambda x:x[1],reverse=True) 30 for i in range(10): 31 word,count=items[i] 32 print("{0:<10}{1:>5}".format(word,count))

0x03 註意事項

 ① 在執行的過程中遇到:‘gbk‘ codec can‘t decode byte 0x82 in position 20: illegal multibyte sequence 編碼錯誤:content = open("C:\\Users\\geek\\Desktop\\python.txt", "r",encoding= ‘utf-8‘)

  這裏是我下載的txt文件 《三國演義》是ASCII,怎麽辦呢!搜索過後得知,要正常運行就得把TXT的編碼改為UTF-8的形式才能運行成功,怎麽做呢!

  首先:打開TXT文本→文件→另存為→編碼→UTF-8 →確定 完成第一個坑。 到這裏呢!配合以上代碼你成功了,但是我遇到的遠遠要多2個的所以我準備一並寫出來。

 ②  坑②,這裏呢!就是他在在線講課啊 ,沒有TXT三國演義文件怎辦呢!沒辦法 自己找個三國演義文本 附上下載地址: http://vdisk.weibo.com/s/AfY-rVkr38Gg

  ③  下載好以後就可以就可以愉快的玩耍了,但是我要說但是了,要問我為什麽?容我一一道來! 15個字組太多會出現什麽呢!我截圖

技術分享圖片

運行後會出現很多不相幹的詞匯,行,沒辦法只能清理 ,但是我清理大多數還是有 ,實在沒辦法了,本為了練手所用所以我降到10個詞組,不錯,那麽想要完整的名字詞組呢?就需要排除的詞匯增多,所以這個玩法就到此結束。

0x04 謝幕

python實例:三國演義TXT文本詞頻分析