Python文本分析:词频统计

【写在前面】

本篇是个人在运用Python进行文本分析时的备忘录。其重点在于根据一段文本抓取多个特定的关键词,并统计关键词在文本中的出现频数,使用字典方式{关键词:词频}保存与访问数据。之前虽然使用过jieba分词器,但其一般针对双字的关键词。对于多字关键词的支持有欠缺,因此本篇主要采用re.split方法进行语句裁剪。

【测试文本】

教育与培训是创新的基础和前提,它可以提高个人和社会的创新能力和素质。高等教育的作用主要体现在以下几个方面。
    首先,高等教育可以培养创新人才,为社会提供创新的源泉和动力。高等教育机构是知识的创造者、传播者和应用者,它们通过教学、科研、服务等活动,培养学生的创新思维、
    创新能力和创新精神,为社会输送具有创新意识和创新能力的专业人才;其次,高等教育可以推动创新理论和方法的发展,为社会提供创新的指导和支持。
    高等教育机构是创新理论和方法的探索者和改进者,它们通过开展前沿的学术研究,不断拓展和深化创新的概念、范式、模式、过程、机制等,
    为社会提供创新的理论框架和方法工具;最后,高等教育可以促进创新成果的转化和应用,为社会提供创新的产品和服务。高等教育机构是创新成果的产出者和转化者,
    它们通过与产业界、政府部门、社会组织等合作,将科研成果转化为具有市场价值和社会效益的产品和服务,为社会提供创新的解决方案和增长动力。
    而与此同时,持续学习的重要性也不可小觑。持续学习可以帮助个人适应快速变化的知识环境,保持创新的潜力和竞争力。知识是创新的基础,
    而知识在现代社会中以惊人的速度更新和发展,如果不进行持续学习,个人就会面临知识过时、落后于时代、失去优势的风险。
    持续学习可以使个人不断获取最新的知识,拓展知识视野,增强知识储备,从而为创新提供更多的可能性和优势。另外,持续学习可以帮助个人培养多元化的技能和能力,
    提高创新的效率和质量。技能是创新的工具,而技能在现代社会中也需要不断地更新和完善,如果不进行持续学习,个人就会面临技能陈旧、不适应需求、失去效果的风险。
    持续学习可以使个人不断掌握最新的技能,提升技能水平,增强技能灵活性,从而为创新提供更多的支持和保障。
    此外,持续学习可以帮助个人激发创造性思维和情感,增强创新的动力和信心。思维是创新的源泉,而思维在现代社会中也需要不断地激活和挑战,
    如果不进行持续学习,个人就会面临思维僵化、缺乏灵感、失去信心的风险。持续学习可以使个人不断接触新鲜事物,激发思维活力,增强思维敏锐性,从而为创新提供更多的动力和信心。

在运行前用Word统计结果:关键词“教育”8次、“创新”27次、“学习”10次

【代码实现】

import re
from collections import Counter

text = '''
    教育与培训是创新的基础和前提,它可以提高个人和社会的创新能力和素质。高等教育的作用主要体现在以下几个方面。    首先,高等教育可以培养创新人才,为社会提供创新的源泉和动力。高等教育机构是知识的创造者、传播者和应用者,它们通过教学、科研、服务等活动,培养学生的创新思维、    创新能力和创新精神,为社会输送具有创新意识和创新能力的专业人才;其次,高等教育可以推动创新理论和方法的发展,为社会提供创新的指导和支持。    高等教育机构是创新理论和方法的探索者和改进者,它们通过开展前沿的学术研究,不断拓展和深化创新的概念、范式、模式、过程、机制等,    为社会提供创新的理论框架和方法工具;最后,高等教育可以促进创新成果的转化和应用,为社会提供创新的产品和服务。高等教育机构是创新成果的产出者和转化者,    它们通过与产业界、政府部门、社会组织等合作,将科研成果转化为具有市场价值和社会效益的产品和服务,为社会提供创新的解决方案和增长动力。    而与此同时,持续学习的重要性也不可小觑。持续学习可以帮助个人适应快速变化的知识环境,保持创新的潜力和竞争力。知识是创新的基础,    而知识在现代社会中以惊人的速度更新和发展,如果不进行持续学习,个人就会面临知识过时、落后于时代、失去优势的风险。    持续学习可以使个人不断获取最新的知识,拓展知识视野,增强知识储备,从而为创新提供更多的可能性和优势。另外,持续学习可以帮助个人培养多元化的技能和能力,    提高创新的效率和质量。技能是创新的工具,而技能在现代社会中也需要不断地更新和完善,如果不进行持续学习,个人就会面临技能陈旧、不适应需求、失去效果的风险。    持续学习可以使个人不断掌握最新的技能,提升技能水平,增强技能灵活性,从而为创新提供更多的支持和保障。    此外,持续学习可以帮助个人激发创造性思维和情感,增强创新的动力和信心。思维是创新的源泉,而思维在现代社会中也需要不断地激活和挑战,    如果不进行持续学习,个人就会面临思维僵化、缺乏灵感、失去信心的风险。持续学习可以使个人不断接触新鲜事物,激发思维活力,增强思维敏锐性,从而为创新提供更多的动力和信心。
'''
keywords = ["教育", "创新", "学习"]
sentences = re.split("[\s+ ()();,:,、。?!]", text)

Result = []
for sentence in sentences:
    for keyword in keywords:
        pattern = "(" + keyword + ")"
        result = re.findall(pattern, sentence)
        Result.append(result)

ResultConv = []
for i in range(len(Result)):
    # 取出元素,相当于去掉一层列表
    item = Result[i]
    # 判断列表长度
    tell = len(item)
    # 保留实心列表,去掉空列表,实心列表元素加入转换后的新列表
    if tell != 0:
        item = Result[i][0]
        ResultConv.append(item)
    else:
        continue
# print(ResultConv)
# 转换成字典
Dict = Counter(ResultConv)
print(Dict)

【运行结果】

Counter({'创新': 25, '学习': 10, '教育': 8})

【小结】

由于re.split()分词结果为两层嵌套列表(关键词也呈现列表属性),因此无法满足字典键不可改变的创建要求,为此在生成字典前还要将输出结果进行整理,去除多余的空列表元素,保持输出结果的整洁。但在运行中发现,re.split()方法无法处理长文段中出现的多个关键词,从而产生漏记,例如:

创新能力和创新精神,为社会输送具有创新意识和创新能力的专业人才;

以上文段被分成两个部分,但由于两个关键词之间没有分隔符,所以都只计算了一次。也就是说虽然文段有4个“创新”,但只统计到两个。

20240119Update

前文提到了re.split()在多字关键词统计的优势,这里改用“高等教育”和“创新能力”作为关键词分析同样一段文本,结果如下:

Counter({'高等教育': 7, '创新能力': 3})

以上就是“Python文本分析:词频统计”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值