Python中怎么实现词频统计功能
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章将为大家详细讲解有关Python中怎么实现词频统计功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。数据准备import jiebawith
千家信息网最后更新 2025年02月03日Python中怎么实现词频统计功能数据准备
这篇文章将为大家详细讲解有关Python中怎么实现词频统计功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
数据准备
import jiebawith open("D:/hdfs/novels/天龙八部.txt", encoding="gb18030") as f: text = f.read()with open('D:/hdfs/novels/names.txt', encoding="utf-8") as f: for line in f: if line.startswith("天龙八部"): names = next(f).split() breakfor word in names: jieba.add_word(word)# 加载停用词with open("stoplist.txt", encoding="utf-8-sig") as f: stop_words = f.read().split()stop_words.extend(['天龙八部', '\n', '\u3000', '目录', '一声', '之中', '只见'])stop_words = set(stop_words)all_words = [word for word in cut_word if len(word) > 1 and word not in stop_words]print(len(all_words), all_words[:20])
结果:
216435 ['天龙', '释名', '青衫', '磊落', '险峰', '行玉壁', '月华', '明马', '疾香', '幽崖', '高远', '微步', '生家', '子弟', '家院', '计悔情', '虎啸', '龙吟', '换巢', '鸾凤']
统计词频排名前N的词
原始字典自写代码统计:
wordcount = {}for word in all_words: wordcount[word] = wordcount.get(word, 0)+1sorted(wordcount.items(), key=lambda x: x[1], reverse=True)[:10]
使用计数类进行词频统计:
from collections import Counterwordcount = Counter(all_words)wordcount.most_common(10)
结果:
使用pandas进行词频统计:
pd.Series(all_words).value_counts().head(10)
分词过程中直接统计词频
Pandas只能对已经分好的词统计词频,所以这里不再演示。上面的测试表示,Counter直接对列表进行计数比pyhton原生带快,但循环中的表现还未知,下面再继续测试一下。
首先使用原生API直接统计词频并排序:
%%timewordcount = {}for word in jieba.cut(text): if len(word) > 1 and word not in stop_words: wordcount[word] = wordcount.get(word, 0)+1print(sorted(wordcount.items(), key=lambda x: x[1], reverse=True)[:10])
结果:
[('段誉', 2496), ('说道', 2151), ('虚竹', 1633), ('萧峰', 1301), ('武功', 1095), ('阿紫', 922), ('阿朱', 904), ('乔峰', 900), ('王语嫣', 877), ('慕容复', 871)]Wall time: 6.04 s
下面我们使用Counter统计词频并排序:
%%timewordcount = Counter()for word in jieba.cut(text): if len(word) > 1 and word not in stop_words: wordcount[word] += 1print(wordcount.most_common(10))
结果:
[('段誉', 2496), ('说道', 2151), ('虚竹', 1633), ('萧峰', 1301), ('武功', 1095), ('阿紫', 922), ('阿朱', 904), ('乔峰', 900), ('王语嫣', 877), ('慕容复', 871)]Wall time: 6.21 s
关于Python中怎么实现词频统计功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
统计
词频
结果
天龙
天龙八部
功能
内容
文章
更多
知识
篇文章
慕容
阿朱
武功
排序
测试
不错
原始
磊落
高远
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全的手势舞蹈
网络安全贷款体系
数据库的安全控制是什么软件
在数据库的前后端的连接作用
智能化网络技术服务怎么样
宜兴上门软件开发来电咨询
荣耀网络技术有限公司
鹏霄 服务器
服务器导轨拼接方式
数据库闪回原理
软件开发培训班需要多少钱
绵阳市网络安全工作责任实施办法
开票数据库损坏
建筑服务器我的世界网易
可以自己搞软件开发吗
第五大道网络技术
与vrm服务器
网络安全四个坚持贯彻意见
服务器怎样检测自瞄
数据库工程师技术拓扑图
防微杜渐共建网络安全黑板报
苏州市民卡 软件开发
mt5用什么服务器好
做金融软件开发
网络安全宣传手幅
高斯数据库怎么重新连接
重视网络安全征文
云服务器远程登录价格
包含风险分析软件开发模型
pdo数据库连接的封装