使用jieba模块简单统计西游记词频,并进行同义词处理(如合并 行者,大圣为悟空)及排除词处理。
import jieba
with open('西游记.txt','r',encoding='utf-8') as f:
content=f.read()
words=jieba.lcut(content)
counts={}
#同义词处理
for word in words:
if len(word)==1:
continue
elif word=='行者' or word=='大圣' or word=='老孙':
rword='悟空'
elif word=='师父' or word=='三藏' or word=='长老':
rword='唐僧'
elif word=='八戒' or word=='呆子':
rword='八戒'
else:
rword=word
counts[rword]=counts.get(rword,0)+1
f.close()
#排除词处理
excludes={'一个','那里','怎么','我们','不知','两个','什么','不是'}
for word in excludes:
del counts[word]
ls=list(counts.items())
ls.sort(key=lambda x:x[1],reverse=True)
for i in range(8):
word,count=ls[i]
print("{0:<10}{1:>5}".format(word,count))
文本分析结果如下:
悟空 5282
唐僧 4013
八戒 2044
沙僧 692
和尚 603
妖精 599
菩萨 578
国王 442
可见,在《西游记》中,孙悟空是当之无愧的主角。