這個也是學習過程中的乙個成果吧,希望大家能批評指正。
紅樓夢人物出場次數統計。亮點在於,考慮了人物的別稱,以及有較為豐富的排除詞庫。如鳳姐的稱謂就有許多,鳳辣子,鳳姐,王熙鳳等等,還有黛玉,有林黛玉,林妹妹,林丫頭等等。很多人如果不把這些考慮在內,就容易導致錯誤的結果。
不得不說,寶玉是絕對的主角。人們通常認為黛玉是第二主角,寶黛戀是全文的絕對主線。結果出場次數最多的除了寶玉,卻是賈母、鳳姐和王夫人。接下來才是黛玉。挺吃驚的,不是嗎?
下面上**:
這個也是學習過程中的乙個成果吧,希望大家能批評指正。
#caldreamsv1.py
import jieba
txt = open("dreams.txt", "r", encoding="utf-8").read()
excludes =
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
elif word == "老太太" or word == "太太" or word == "老祖宗" or word == "史太君":
rword = "賈母"
elif word == "老爺":
rword = "賈政"
elif word == "寶二爺":
rword = "寶玉"
elif word == "王熙鳳" or word == "熙鳳" or word == "鳳辣子":
rword = "鳳姐"
elif word == "林黛玉" or word == "瀟湘妃子" or word == "林丫頭" or word == "林妹妹":
rword = "黛玉"
elif word == "寶姑娘" or word == "寶丫頭" or word == "蘅蕪君" or word == "寶姐姐":
rword = "寶釵"
else:
rword = word
counts[rword] = counts.get(rword, 0) + 1
for word in excludes :
del counts[word]
items = list(counts.items())
items.sort(key = lambda x:x[1], reverse=true)
print("《紅樓夢》人物出場次數")
for i in range(10):
word , count = items[i]
print("".format(word, count))
紅樓夢人物與詩詞
可嘆停機德,堪憐詠絮才。玉帶林中掛,金簪雪裡埋。詠絮其實是詠雪,女子詠雪。指女子工於吟詠,有非凡的才華。賈不假,白玉為堂金作馬。阿房宮,三百里,住不下金陵乙個史。東海缺少白玉床,龍王請來金陵王。豐年好大雪,珍珠如土金如鐵。史湘雲 翠縷,和襲人等大丫鬟一樣是從賈母身邊派過去的 為官的,家業凋零 富貴的...
python 統計紅樓夢人員姓名出現次數
使用到jieba庫 python 第三方中文分詞庫 1 安裝jieba庫 2 紅樓夢 txt 文件 import jieba txt open 紅樓夢.txt r encoding utf 8 read wenben jieba.lcut txt 使用精確模式對文字進行分詞 counts 通過鍵值對...
Python3紅樓夢人名出現次數統計分析
本程式流程是讀取紅樓夢txt檔案 使用jieba進行分詞 借助counter讀取各人名出現次數並排序 使用matplotlib將結果視覺化 這裡的統計除了將 熙鳳 出現的次數合併到 鳳姐 中外並沒有其他處理,但應該也大體能反映人物提及次數情況 條形圖 餅狀圖 此函式用於繪製條形圖 defshowna...