python统计三国演义人物出场次数

喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!

有些人可能觉得学习编程很枯燥,今天我们就来干一点有趣的事吧!用python统计三国演义人物的出场次数,看看谁是当之无愧的主角?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

import jieba

excludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此", "商议", "如何", "主公",

            "军士", "左右", "军马", "引兵", "次日", "大喜", "天下", "东吴", "于是", "今日",

            "不敢", "魏兵","人马", "陛下", "一人", "不知", "汉中", "只见", "众将"#排除

txt = open("三国演义.txt", "r", encoding="utf-8").read()

words = jieba.lcut(txt)

counts = {}

for word in words:

   if len(word) == 1:

       continue

   elif word == "诸葛亮" or word == "孔明曰":

       rword = "孔明"

   elif word == "关公" or word == "云长":

       rword = "关羽"

   elif word == "玄德" or word == "玄德曰":

       rword = "刘备"

   elif word == "孟德" or word == "丞相":

       rword = "曹操"

   elif word == "公瑾" or word == "周都督":

       rword = "周瑜"

   else:

       rword = word

   counts[rword] = counts.get(rword, 0) + 1

#如果word在counts中,返回word对应的值,否则返回0

for word in excludes:

   del(counts[word])

items = list(counts.items())

items.sort(key=lambda x:x[1], reverse=True)

fo = open("三国人物出场次数.txt", "a")

for i in range(10):

   word, count=items[i]

   word = str(word)

   count = str(count)

   fo.write(word)

   fo.write(' ')

   fo.write(count)

   fo.write('\n')

   print (word, count)

fo.close()

我是一名python开发工程师,整理了一套python的学习资料,从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习、面试真题等。想要的可以进群:688244617免费领取

这里面就是词频分析后的文档。

python统计三国演义人物出场次数

运行后,程序会自动生成 ”三国人物出场次数.txt“ 的文件,这里面就是词频分析后的文档。
把文档导入Excel中(用Excel打开txt文件,选择用","进行分割,这样就能把词语和词频分到2列),然后手动剔除掉无用的助词(在Excel中操作很容易,而且快速)。在接着把同类词归类,比如”孔明“、”诸葛亮“指的都是同一个人,”操“,”曹操“,”丞相“也都一样。
python统计三国演义人物出场次数
最后,可以把你想要的数据提取出来,用Excel作图。

觉得文章还可以的话不妨点个赞,有任何意见或者看法欢迎大家评论!