python-jieba库的使⽤:《红楼梦》⾦陵⼗⼆钗出场次数统计
第⼀次写博客,请多多指教~
刘雨欣跳水
网上买票怎么取票根据北京理⼯⼤学嵩天⽼师课程的《三国演义》出场⼈物统计的代码做了⼀些修改,统计了⾦陵⼗⼆钗出场的次数。
#⾦陵⼗⼆钗出场统计
import jieba
#添加jieba分词
mydict =['琏⼆奶奶','凤哥⼉','凤丫头','宝姑娘','颦⼉','⼆姑娘','三姑娘','四姑娘','云妹妹','蓉⼤奶奶']
for item in mydict:
jieba.add_word(item)
txt =open('c:\mypython\\',"r", encoding='utf-8').read()
#注意这⾥的路径要⽤\\,因为在python中\r表⽰表⽰将光标的位置回退到本⾏的开头
#定义别名列表
bieming =[["林妹妹","黛⽟",'林姑娘','林黛⽟'],["宝钗",'宝姑娘','宝丫头',\
'宝','薛宝钗'],['元春','⼤姑娘','娘娘','贵妃','元妃','贾元春'],\
['迎春','⼆姑娘','贾迎春'],['探春','三姑娘','贾探春'],['惜春','四姑娘',\
'贾惜春'],["王熙凤","凤丫头",'琏⼆奶奶','凤','凤哥⼉','凤辣⼦'],['巧'],\
['湘云','云妹妹','史湘云'],['妙⽟'],['李纨','⼤嫂⼦'],['秦可卿','可卿','蓉⼤奶奶']]
words=jieba.lcut(txt)
counts={}
for word in words:
if len(word)==1:
continue
else:
counts[word]= (word,0)+1
#计算出场次数(各个别名的合计次数)
lst=list()
for i in range(12):
lt=0
for item in bieming[i]:
lt += (item,0)
lst.append(lt)
王者荣耀破浪
twelvechai=['林黛⽟','薛宝钗','贾元春','贾迎春','贾探春','贾惜春','王熙凤','巧','史湘云','妙⽟','李纨','秦可卿']
items=list()
for i in range(12):
items.append([twelvechai[i],lst[i]])
items.sort(key=lambda x:x[1], reverse=True)
for i in range(12):如何更改wifi密码
word, count = items[i]
print("{0:<10}{1:>5}".format(word, count))
交通工程专业就业方向结果
王熙凤 1215
林黛⽟ 1066
薛宝钗 763
贾探春 474
史湘云 407
贾迎春 158
贾元春 132
贾惜春 112
妙⽟ 79
巧 41
李纨 38
秦可卿 12
注意点
1. 主要⽤了jieba库和字典的⼀些功能。
阿悄2. ⼀开始想仿照《三国演义》出场⼈物次数排名统计,但是前10名的结果中出现的是贾宝⽟、王熙凤、贾母、王夫⼈,⾦陵⼗⼆钗仅出
现了⼀个,所以就想到专门做⼀个⾦陵⼗⼆钗的词频统计。
3. 因为书中对⼈物的称呼⽐较多,有些应该不属于jieba库的分词(⽐如:宝姑娘、琏⼆奶奶),为了避免这部分漏掉,我按照书中⼈物
别名添加了⼀些分词。
4. 有的⼈物在书中有不同的称呼(e.g 王熙凤、凤、凤哥⼉、凤辣⼦、琏⼆奶奶;称呼是真的多),我的做法是先把每个称呼出现的次
数统计出来,然后再进⾏求和。
不⾜
在⼈物别名上,我主要是凭⾃⼰的印象和百度,有些我不熟悉加上后⾯我不想查了,所以可能会出现统计的结果会⽐较少、不太合理(e.g 妙⽟、李纨、秦可卿),之后可能会在进⾏补充。也欢迎对《红楼梦》熟悉的⼩伙伴补充指正。
欢迎⼤家指正交流~
不会⽤markdown,写的好丑-_-||