摘要:更多練習(xí)題可以在公眾號的編程教室里回復(fù)關(guān)鍵字習(xí)題主要任務(wù)找出三國演義中名字出現(xiàn)最多的人分析主要幾個人物回中,每回出現(xiàn)的次數(shù),結(jié)合具體內(nèi)容,看發(fā)生了什么分析人物之間的關(guān)系,利用簡單繪圖繪制逐字詞云。
題目源自編程教室的“每周一坑”欄目:【每周一坑】三國演義中誰的存在感最強(qiáng)主要任務(wù)
本文是一位同學(xué)(王文亞)提交的解答,因?yàn)樽龅猛茫剞D(zhuǎn)載至專欄,供各位參考。
更多練習(xí)題可以在公眾號(Crossin的編程教室)里回復(fù)關(guān)鍵字 習(xí)題
找出《三國演義》中名字出現(xiàn)最多的10人;
分析主要幾個人物120回中,每回出現(xiàn)的次數(shù),結(jié)合具體內(nèi)容,看發(fā)生了什么;
分析人物之間的關(guān)系,利用Gephi簡單繪圖;
繪制“逐”字詞云。
準(zhǔn)備工作1.由于要分析120回中主要人物的出場次數(shù),爬取《三國演義》120回,每回放在一個段落里;len(f.readlines()) = 120.
2.安裝主要的python庫,如jieba,wordcloud,pandas,codecs,matplotlib,pyecharts, bs4等,還有Gephi;
1.首先是獲取分成120回每回一行的文件;
url=http://www.purepen.com/sgyy/根據(jù)規(guī)律爬出120回;
2.找到次數(shù)最多的nr(人名)詞語;
函數(shù)findMostWords, 逐詞查看,長度小于2的自動過濾,按照出現(xiàn)次數(shù)排序,寫入到文件中,大約是長這個樣子的...
3.根據(jù)找到的詞語排序,大約有7238個詞匯,然后手動選取超過出現(xiàn)20次以上的詞語,大約200條,剔除一些非人名,如“曹兵”等,最終得到52個詞;
["曹操", "玄德", "孔明", "關(guān)公", "丞相", "孔明曰", "玄德曰", "云長", "張飛", "主公","呂布", "劉備", "孫權(quán)", "趙云", "司馬懿", "周瑜", "魏延", "袁紹", "馬超", "姜維", "黃忠", "諸葛亮", "龐德", "張遼", "劉表", "董卓", "孫策", "魯肅", "鄧艾", "大將軍", "張苞", "袁術(shù)", "劉玄德", "玄德大", "子龍", "司馬", "孔明笑", "公瑾", "操大喜", "翼德", "劉皇叔", "趙子龍", "郭嘉", "仲達(dá)", "關(guān)云長","操大怒", "玄德問", "阿斗", "劉豫州", "玄德聞", "玄德乃", "曹丞相"]
4.逐詞匹配上述的52個詞,得到52個詞分別出現(xiàn)的次數(shù);
5.整理上述52個詞匯,將玄德曰,玄德怒,玄德乃,劉皇叔等詞匯合并,繪制Top10;
6.根據(jù)上述52個詞匯,分別分析每一回,利用pandas.DataFrame很方便得到每回52個人分別出現(xiàn)的次數(shù);
表格中有大量的空白,后續(xù)使用,需要將空白填充0, DataFrame.fillna(0, inplace=True)
7.繪制一些簡單的圖;
蜀國主要人物全書分布情況,三位結(jié)拜兄弟貫穿前80回左右,等他們退出歷史舞臺,諸葛亮繼續(xù)輔佐,支撐著蜀國大業(yè)。
諸葛亮在35-40, 80-100回出現(xiàn)了較多次數(shù),自然是 “三顧茅廬”、“火燒七百里聯(lián)營”、“巧布八陣圖”、“七擒孟獲” 等較為熟知的歷史故事; 同時(shí),80回后諸葛亮出現(xiàn)次數(shù)占據(jù)了全書中較大范圍,也是 “先帝托孤”后“鞠躬盡瘁” 的具體表現(xiàn)。
四位當(dāng)權(quán)者曹操、劉備、孫權(quán)、司馬懿活動活度,前80回,曹劉孫較為活躍,體現(xiàn)出了三國紛爭的局面,讀這一部分,廝殺場面也是相當(dāng)精彩; 待三位同時(shí)代的人物退出歷史舞臺后,逐漸司馬懿開始活躍,“一統(tǒng)秦兩漢,三分魏蜀吳,兩晉前后延”,歷史朝代更替,滾滾向前。
分析數(shù)據(jù)的能力還優(yōu)待提高,想不出較好的分析的內(nèi)容,還需多寫、多與人溝通交流,提升對數(shù)據(jù)的認(rèn)識。
8.分析人物之間的關(guān)系。根據(jù)全文2700多個自然段,如果一個自然段內(nèi)同時(shí)出現(xiàn)了A和B,將A和B之間的關(guān)系+1;
得到Node和Edge兩份csv文件,輸入到Gephi,得到以下關(guān)系圖,故事還是圍繞這曹劉的紛爭開展,諸葛亮的經(jīng)緯之才也體現(xiàn)的淋漓盡致。
9.詞云制作;
PS做了一張圖,制作詞云。根據(jù)各種曰可知書中的對話部分占據(jù)了很大一部分章節(jié),讀者讀起來也更有代入感,身臨其境。
真正自己去做的時(shí)候,才能一次次填補(bǔ)自己的坑。哈哈哈,加油!
*
作者:王文亞
項(xiàng)目地址:
https://github.com/Damon0626/Crossin-Programming-Room/tree/master/09-Analysis%20The%20Three%20Kingdoms
════
其他文章及回答:
如何自學(xué)Python | 新手引導(dǎo) | 精選Python問答 | Python單詞表 | 人工智能 | 爬蟲 | 我用Python | requests | 計(jì)算機(jī)視覺
歡迎搜索及關(guān)注公眾號: Crossin的編程教室
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42901.html
摘要:部分如上,四個區(qū)塊,四大名著,嘎嘎代碼如上,寫的很爛,輕噴用來控制元素的顯示和隱藏,實(shí)際上是為了實(shí)現(xiàn)動畫效果此處有裝逼的嫌疑,因?yàn)闀璧K,而不會,另外也可以用來代替。 說明 又是一個練手的小玩意兒,本身沒什么技術(shù)含量,就是幾個不常用的CSS3特性的結(jié)合而已。 要點(diǎn) Label標(biāo)簽的for屬性 單選框的:checked偽類 CSS的加號[+]選擇器 效果圖 showImg(https...
摘要:部分如上,四個區(qū)塊,四大名著,嘎嘎代碼如上,寫的很爛,輕噴用來控制元素的顯示和隱藏,實(shí)際上是為了實(shí)現(xiàn)動畫效果此處有裝逼的嫌疑,因?yàn)闀璧K,而不會,另外也可以用來代替。 說明 又是一個練手的小玩意兒,本身沒什么技術(shù)含量,就是幾個不常用的CSS3特性的結(jié)合而已。 要點(diǎn) Label標(biāo)簽的for屬性 單選框的:checked偽類 CSS的加號[+]選擇器 效果圖 showImg(https...
繼上篇yii實(shí)戰(zhàn)之初見端倪,本篇將講解控制器和視圖的基礎(chǔ)用法。并構(gòu)建一個人物列表頁面 默認(rèn)控制器 默認(rèn)情況下,當(dāng)瀏覽器請求http://frontend.test/時(shí),實(shí)際上訪問的是frontend/controllers/SiteController.php的actionIndex方法,我們在這個方法斷點(diǎn)測試下: public function actionIndex() { retur...
閱讀 2282·2019-08-30 15:54
閱讀 2003·2019-08-30 13:49
閱讀 702·2019-08-29 18:44
閱讀 850·2019-08-29 18:39
閱讀 1133·2019-08-29 15:40
閱讀 1557·2019-08-29 12:56
閱讀 3173·2019-08-26 11:39
閱讀 3125·2019-08-26 11:37