利用Python统计中文或英文文本词频(适合初学者) 比眉伴天荒 2023-02-27 05:45 7阅读 0赞 一篇文章出现了那些词语?那些词出现的次数最多? 中文文本?英文文本? 英文文本测试资源:哈默雷特:[https://python123.io/resources/pye/hamlet.txt][https_python123.io_resources_pye_hamlet.txt] 中文文本测试资源:三国演义:[https://python123.io/resources/pye/threekingdoms.txt][https_python123.io_resources_pye_threekingdoms.txt] 一、利用Python统计哈姆雷特 二、利用Python统计三国演义 **一、首先处理英语文本:** 对于英语文本,我们需要去噪化及归一化(英语文本中除了英语单词外还有各种符号,及大小写)。 def getText(): txt = open("hamlet.txt", "r").read() txt = txt.lower() #大写字母全部转化为小写字母 for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~': #\在python表示转义字符,故\\才是反斜杠 txt = txt.replace(ch, " ") #用空格代替标点符号 return txt hamletTxt = getText() words = hamletTxt.split() #以空格为标志,对字符串进行切片处理,转化为列表类型 counts = { } #利用字典表达词频 for word in words: counts[word] = counts.get(word,0) + 1 #统计单词word出现频率 items = list(counts.items()) items.sort(key = lambda x:x[1], reverse = True) for i in range(10):#输出出现次数最多得前十的词语 word, count = items[i] print("{0:<10}{1:>5}".format(word,count)) 运行结果: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjI0OTg5_size_16_color_FFFFFF_t_70] **二、处理中文文本:** 后文附有jieba库安装方法 import jieba txt = open("threekingdoms.txt", "r", encoding='utf-8').read() words = jieba.lcut(txt) counts = { } for word in words: if len(word) == 1: continue else: counts[word] = counts.get(word,0) + 1 items = list(counts.items()) items.sort(key=lambda x:x[1], reverse=True) for i in range(15): word, count = items[i] print ("{0:<10}{1:>5}".format(word, count)) 运行结果: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjI0OTg5_size_16_color_FFFFFF_t_70 1] 如果要统计人物频率,我们则需要剔除一些不是名字的词语,并且如玄德,玄德曰都是指刘备…… 改进代码: import jieba excludes = { "将军","却说","荆州","二人","不可","不能","如此"} txt = open("threekingdoms.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 = "曹操" else: rword = word counts[rword] = counts.get(rword,0) + 1 for word in excludes: del counts[word] items = list(counts.items()) items.sort(key=lambda x:x[1], reverse=True) for i in range(10): word, count = items[i] print ("{0:<10}{1:>5}".format(word, count)) jieba库安装方法: win+R快捷键 输入cmd打开命令行 输入pip install jieba 等待安装成功 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjI0OTg5_size_16_color_FFFFFF_t_70 2] [https_python123.io_resources_pye_hamlet.txt]: https://python123.io/resources/pye/hamlet.txt [https_python123.io_resources_pye_threekingdoms.txt]: https://python123.io/resources/pye/threekingdoms.txt [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjI0OTg5_size_16_color_FFFFFF_t_70]: /images/20230209/7f1fc5e1a348454381ff42c65ae7ed07.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjI0OTg5_size_16_color_FFFFFF_t_70 1]: /images/20230209/4c09b402eead43f89606444143275d8e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjI0OTg5_size_16_color_FFFFFF_t_70 2]: /images/20230209/0fc86ec4ffc740c0b6c9496ad2289aa4.png
相关 【Python】文本词频统计 ![format_png][] 哈姆雷特英文 [https://python123.io/resources/pye/hamlet.txt][https_python123 我不是女神ヾ/ 2023年07月25日 09:19/ 0 赞/ 127 阅读
相关 利用python生成词云(适合初学者) 词云: 关键词云是对海量文字内容中出现频率较高的“关键词”的视觉突出,即出现越多的“关键词”字体越大。比如说可以根据上千条新闻进行词频统计,得到很多个“关键词”,再按照关键 小咪咪/ 2023年02月27日 10:31/ 0 赞/ 5 阅读
相关 利用Python统计中文或英文文本词频(适合初学者) 一篇文章出现了那些词语?那些词出现的次数最多? 中文文本?英文文本? 英文文本测试资源:哈默雷特:[https://python123.io/resources/pye 比眉伴天荒/ 2023年02月27日 05:45/ 0 赞/ 8 阅读
相关 利用Python绘制七段数码管(适合初学者) ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ub 缺乏、安全感/ 2023年02月26日 11:24/ 0 赞/ 12 阅读
相关 Python 《Hamlet》哈姆雷特英文词频统计 英文词频统计 关键问题: 1、词语 -- 键 2、相同词语的累加 -- 值 讨论:定义什么数据类型 -- 字典类型 问题描述: I:文件的输入 P: 妖狐艹你老母/ 2022年04月24日 06:00/ 0 赞/ 781 阅读
相关 中文词频统计 中文词频统计 -------------------- 这个作业的要求来自于:[https://edu.cnblogs.com/campus/gzcc/GZCC-16 小鱼儿/ 2022年01月12日 13:23/ 0 赞/ 384 阅读
相关 中文词频统计及词云制作 1.中软国际华南区技术总监曾老师还会来上两次课,同学们希望曾老师讲些什么内容?(认真想一想回答) 希望老师能讲讲更多关于python的知识,并且讲讲大数据的的另一些方向 妖狐艹你老母/ 2022年01月07日 23:27/ 0 赞/ 594 阅读
相关 中文词频统计 本次作业的要求来自于:[https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2773][https_edu.cnbl 浅浅的花香味﹌/ 2021年12月20日 20:39/ 0 赞/ 304 阅读
相关 中文词频统计 作业要求来自: [https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2773][https_edu.cnblogs 柔光的暖阳◎/ 2021年12月17日 08:37/ 0 赞/ 263 阅读
还没有评论,来说两句吧...