美文网首页数据分析程序员
西游记中出现最多的字竟然是这个字

西游记中出现最多的字竟然是这个字

作者: 喝醉酒的咖喱鸡 | 来源:发表于2018-09-17 20:59 被阅读70次

前言

最近在学习python数据统计相关的知识,基于‘实践出真知’以及‘知之者不如好之者,好之者不如乐之者’两大亘古不变的理论,特撰写本文。

统计结果

为了满足部分同学强烈的好奇心,小码哥先将部分统计结果公布出来。若想了解详细操作流程且有一定python基础的同学可以继续阅读。

部分统计结果
由上图我们可以知道,西游记中出现最多的字是"道" 出现了11078次

数据分析

数据获取

本次小码哥使用的数据是问度娘要来的,不想麻烦的同学可以直接用小码哥的数据(点击下载)

数据读入

数据下载到本地后,用python内置函数open() 将数据读入

    fr = open('数据文件路径','r')
    characters = [] #存储所有汉字
    stat = {}   #存储每个汉字出现的次数

数据处理

由于原数据中含有大量标点符号、空白、换行等,为了不影响分析结果我们应该先把这些杂质剔除。

    for line in fr:
        # 去掉每一行两边的空白
        line = line.strip()
        # 如果为空行则跳过该轮循环
        if len(line) == 0:
            continue
        # 将文本转为unicode,便于处理汉字
        line = unicode(line)
        # 遍历该行的每一个字
        for x in xrange(0, len(line)):
            # 去掉标点符号和空白符
            if line[x] in [' ', '\t', '\n', '。', ',', '(', ')', '(', ')', ':', '□', '?', '!', '《', '》', '、', ' ',']', ';', '“', '”', '……']:
                continue
            # 尚未记录在characters中
            if not line[x] in characters:
                characters.append(line[x])
            # 尚未记录在stat中
            if not stat.has_key(line[x]):
                stat[line[x]] = 0
            # 汉字出现次数加1
            stat[line[x]] += 1

数据输出

为了便于观察,小码哥将结果输出为一个.csv 文件(可导入Excel)

    # lambda生成一个临时函数
    # d表示字典的每一对键值对,d[0]为key,d[1]为value
    # reverse为True表示降序排序
    stat = sorted(stat.items(), key=lambda d:d[1], reverse=True)
    fw = open('result.csv', 'w')
    for item in stat:
        # 进行字符串拼接之前,需要将int转为str
        fw.write(item[0] + ',' + str(item[1]) + '\n')

后记

  • 鉴于有热心同学在评论里建议小码哥生成词云,小码哥很愉快的采纳了这个建议,后续将上传。
  • 阅读完本文,你有什么感受或建议都可以写在评论里让小码哥知道,小码哥看到后会第一时间回复。
  • 若大家觉得本篇文章还不错,麻烦在右下角给小码哥点个喜欢,鼓励小码哥继续创作!

相关文章

  • 西游记中出现最多的字竟然是这个字

    前言 最近在学习python数据统计相关的知识,基于‘实践出真知’以及‘知之者不如好之者,好之者不如乐之者’两大亘...

  • Sci.Fun萨恩斯:【论文写作指导】新闻媒体研究生毕业论文写作

    点击添加图片描述(最多60个字) 点击添加图片描述(最多60个字) 点击添加图片描述(最多60个字) 一、紧贴实践...

  • “南无阿弥陀佛”什么意思?有人念诵大半辈子也未必知道!

    不管是不是对佛学有所了解,你一定都听过“南无阿弥陀佛”这六个字。 《西游记》里,唐僧说得最多的就是“南无阿弥陀佛”...

  • 2020-03-29

    给定一个字符串,找出同一字符连续出现的最大次数 比如234555667777中,7 为连续出现最多的字符,则输出为...

  • 生生不息 艺术不止,优画网春季新作特展上线

    点击添加图片描述(最多60个字) 点击添加图片描述(最多60个字) 在中国哲学术语中,“生生”这个词代表着新生事物...

  • 新年快乐

    新年快乐,是我收到最多的祝福,也是发出最多的问候。对,就是简单的四个字儿,手打的。 这简单的四个字...

  • 求一串字符串里面出现最多的字符

    一个字符串中可能包含a~z中多个字符串,并且可能会有重复,求出出现次数最多的字母,并且求出次数,如果出现最多次数的...

  • 居家第一天

    2022-12-03 阴 周六 “足不出户,上门服务“,这八个字,是我今年看新闻听到最多的八个字,...

  • 0010-统计字符数

    问题描述 判断一个由 a-z 这 26 个字符组成的字符串中哪个字符出现的次数最多。 输入 第 1 行是测试数据的...

  • 2019-05-23

    统计若干行(字符串)中的关键字各出现了多少次:从键盘输入n个字符串(每串为一行最多80个字符,且输入时以回车结束每...

网友评论

    本文标题:西游记中出现最多的字竟然是这个字

    本文链接:https://www.haomeiwen.com/subject/copdnftx.html