資深Python程序員教你統計,三國中人物名字出現的頻率,很簡單

資深Python程序員教你簡單、有趣的程序:
使用第三方庫jieba切分,統計統計名著三國演義中人物名字出現次數。

創新互聯公司主營獨山子網站建設的網絡公司,主營網站建設方案,重慶APP軟件開發,獨山子h5微信平臺小程序開發搭建,獨山子網站營銷推廣歡迎獨山子等地區企業咨詢

資深Python程序員教你統計,三國中人物名字出現的頻率,很簡單
其中一個jieba庫是一個對中文文本依照漢字間關聯概率進行詞組劃分的第三方庫,使用簡單,且非常好用

import jieba

def getWords():
 txt = open('novels/threekingdoms.txt', 'r', encoding = 'utf-8').read()
 words = jieba.lcut(txt)
 counts = {}
 for word in words:
 if len(word) == 1:
 continue
 else:
 counts[word] = counts.get(word, 0) + 1
 word_list = list(counts.items())
 word_list.sort(key = lambda x : x[1], reverse = True)
 return word_list

進行人肉優化,去掉不是人名的詞語,并將一些指同一個人物的詞合并到一個人物下。

import jieba

def countWords(excludes, merges):
 txt = open('novels/threekingdoms.txt', 'r', encoding = 'utf-8').read()
 words = jieba.lcut(txt)
 counts = {}
 # 取出長度為一的詞和符號以及excludes中的詞
 for word in words:
 if len(word) == 1 or word in excludes:
 continue
 else:
 counts[word] = counts.get(word, 0) + 1
 # 合并名稱相同的人名
 for merge in merges:
 for name in merge[1]:
 counts[merge[0]] += counts.get(name, 0)
 del counts[name]
 word_list = list(counts.items())
 word_list.sort(key = lambda x : x[1], reverse = True)
 return word_list
excludes = {'卻說','二人','不可','主公','陛下','漢中','只見','眾將','后主','蜀兵','上馬','大叫','太守','此人','夫人',
 '先主','后人','背后','城中','天子','一面','何不','大軍','忽報','先生','百姓','何故','不能','如此','如何',
 '然后','先鋒','不如','趕來','原來','令人','江東','下馬','喊聲','正是','徐州','忽然','荊州','左右','軍馬',
 '因此','成都','不見','未知','大敗','大事','之后','一軍','引軍','起兵','軍中','接應','引兵','次日','大喜',
 '進兵','大驚','可以','以為','大怒','不得','心中','下文','一聲','追趕','糧草','天下','東吳','于是','都督',
 '曹兵','一齊','分解','回報','分付','只得','出馬','三千','大將','許都','隨后','報知','今日','不敢','魏兵',
 '前面','之兵','且說','眾官','洛陽','領兵','商議','軍士','星夜','精兵','城上','之計','不肯','相見','其言',
 '一日','而行','文武','襄陽','準備','若何','出戰','親自','必有','一人','人馬','不知','何人','此事','之中',
 '伏兵','祁山','乘勢','忽見','大笑','樊城','兄弟','首級','立于','西川','傳令','當先','五百','一彪','堅守',
 '此時','之間','投降','五千','埋伏','長安','三路','遣使','將軍','關興','軍師','朝廷','三軍','大王','回見',
 '大將軍','必然','將士','是夜','小路' }

merges = [ ('劉備',('玄德','玄德曰','玄德問','劉玄德','玄德大','玄德自','玄德聞','皇叔','劉皇叔')),
 ('關羽',('關公','云長','關云長')),
 ('孔明',('諸葛亮','孔明曰','孔明笑','孔明之','孔明自')),
 ('曹操',('丞相','孟德','曹公','曹孟德')),
 ('張飛',('翼德','張翼德'))
 ]

word_list = countWords(excludes, merges)
for i in range(30):
 word, count = word_list[i]
 print('{0:^10}{1:{3}^10}{2:^15}'.format(i+1, word, count, chr(12288))) # chr(12288)為中文空格 ```
結果如下,當然其中類似將軍、英雄、主公、大哥、君這種詞語無法判斷指的是誰,這里僅統計能夠判斷的,所以這里只能做一個相對的參考。

1     劉備     1578
2     曹操     1485
3     孔明     1485
4     關羽     820
5     張飛     393
6     呂布     300
7     趙云     278
8     孫權     264
9     司馬懿     221
10     周瑜     217
11     袁紹     191
12     馬超     185
13     魏延     180
14     黃忠     168
15     姜維     151
16     馬岱     127
17     龐德     122
18     孟獲     122
19     劉表     120
20     夏侯惇     116
21     董卓     114
22     孫策     108
23     魯肅     107
24     徐晃     97
25     司馬昭     89
26     夏侯淵     88
27     王平     88
28     劉璋     85
29     袁術     84
30     呂蒙     83



以上是Python語言中的一個小案例,僅供大家參考。

新聞名稱:資深Python程序員教你統計,三國中人物名字出現的頻率,很簡單
標題URL:http://m.kartarina.com/article0/pihgoo.html

成都網站建設公司_創新互聯,為您提供服務器托管微信小程序外貿建站移動網站建設網頁設計公司網站收錄

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
主站蜘蛛池模板: 国产精品亚洲αv天堂无码| 无码人妻丰满熟妇区免费| 国产午夜无码精品免费看| 西西大胆无码视频免费| 亚洲av片不卡无码久久| 69堂人成无码免费视频果冻传媒| 人妻少妇偷人精品无码| 亚洲AV无码不卡在线播放| 人妻无码久久精品人妻| 精品无码国产AV一区二区三区 | 久久久久久无码国产精品中文字幕| 久久精品日韩av无码| 红桃AV一区二区三区在线无码AV| 无码人妻精品一区二区三区夜夜嗨| 18禁超污无遮挡无码免费网站国产 | 成人午夜精品无码区久久 | 亚洲AV无码久久精品狠狠爱浪潮| 人妻无码一区二区三区AV| 特级无码a级毛片特黄| 亚洲动漫精品无码av天堂| 亚洲AV无码AV吞精久久| 波多野结衣AV无码| 国产精品亚洲一区二区无码| 亚洲国产综合无码一区| 久久精品无码一区二区三区日韩| 免费无码又爽又刺激高潮的视频| 亚洲AV无码乱码在线观看裸奔| 免费看无码自慰一区二区| 无码人妻一区二区三区在线视频| 亚洲精品午夜无码电影网| 国产精品亚洲专区无码不卡| 日日麻批免费40分钟无码| 亚洲精品无码专区久久久| 国产精品国产免费无码专区不卡| 无码国模国产在线观看| 国产精品无码久久四虎| 97性无码区免费| 无码无需播放器在线观看| 中文字幕亚洲精品无码| 亚洲av无码日韩av无码网站冲| 亚洲另类无码一区二区三区|