真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

資深Python程序員教你統(tǒng)計(jì),三國(guó)中人物名字出現(xiàn)的頻率,很簡(jiǎn)單

資深Python程序員教你簡(jiǎn)單、有趣的程序:
使用第三方庫(kù)jieba切分,統(tǒng)計(jì)統(tǒng)計(jì)名著三國(guó)演義中人物名字出現(xiàn)次數(shù)。

創(chuàng)新互聯(lián)公司主營(yíng)獨(dú)山子網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開(kāi)發(fā),獨(dú)山子h5微信平臺(tái)小程序開(kāi)發(fā)搭建,獨(dú)山子網(wǎng)站營(yíng)銷(xiāo)推廣歡迎獨(dú)山子等地區(qū)企業(yè)咨詢

資深Python程序員教你統(tǒng)計(jì),三國(guó)中人物名字出現(xiàn)的頻率,很簡(jiǎn)單
其中一個(gè)jieba庫(kù)是一個(gè)對(duì)中文文本依照漢字間關(guān)聯(lián)概率進(jìn)行詞組劃分的第三方庫(kù),使用簡(jiǎn)單,且非常好用

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

進(jìn)行人肉優(yōu)化,去掉不是人名的詞語(yǔ),并將一些指同一個(gè)人物的詞合并到一個(gè)人物下。

import jieba

def countWords(excludes, merges):
 txt = open('novels/threekingdoms.txt', 'r', encoding = 'utf-8').read()
 words = jieba.lcut(txt)
 counts = {}
 # 取出長(zhǎng)度為一的詞和符號(hào)以及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 = {'卻說(shuō)','二人','不可','主公','陛下','漢中','只見(jiàn)','眾將','后主','蜀兵','上馬','大叫','太守','此人','夫人',
 '先主','后人','背后','城中','天子','一面','何不','大軍','忽報(bào)','先生','百姓','何故','不能','如此','如何',
 '然后','先鋒','不如','趕來(lái)','原來(lái)','令人','江東','下馬','喊聲','正是','徐州','忽然','荊州','左右','軍馬',
 '因此','成都','不見(jiàn)','未知','大敗','大事','之后','一軍','引軍','起兵','軍中','接應(yīng)','引兵','次日','大喜',
 '進(jìn)兵','大驚','可以','以為','大怒','不得','心中','下文','一聲','追趕','糧草','天下','東吳','于是','都督',
 '曹兵','一齊','分解','回報(bào)','分付','只得','出馬','三千','大將','許都','隨后','報(bào)知','今日','不敢','魏兵',
 '前面','之兵','且說(shuō)','眾官','洛陽(yáng)','領(lǐng)兵','商議','軍士','星夜','精兵','城上','之計(jì)','不肯','相見(jiàn)','其言',
 '一日','而行','文武','襄陽(yáng)','準(zhǔn)備','若何','出戰(zhàn)','親自','必有','一人','人馬','不知','何人','此事','之中',
 '伏兵','祁山','乘勢(shì)','忽見(jiàn)','大笑','樊城','兄弟','首級(jí)','立于','西川','傳令','當(dāng)先','五百','一彪','堅(jiān)守',
 '此時(shí)','之間','投降','五千','埋伏','長(zhǎng)安','三路','遣使','將軍','關(guān)興','軍師','朝廷','三軍','大王','回見(jiàn)',
 '大將軍','必然','將士','是夜','小路' }

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

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)為中文空格 ```
結(jié)果如下,當(dāng)然其中類(lèi)似將軍、英雄、主公、大哥、君這種詞語(yǔ)無(wú)法判斷指的是誰(shuí),這里僅統(tǒng)計(jì)能夠判斷的,所以這里只能做一個(gè)相對(duì)的參考。

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



以上是Python語(yǔ)言中的一個(gè)小案例,僅供大家參考。

標(biāo)題名稱:資深Python程序員教你統(tǒng)計(jì),三國(guó)中人物名字出現(xiàn)的頻率,很簡(jiǎn)單
瀏覽地址:http://weahome.cn/article/pihgoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部