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