网易首页 > 网易号 > 正文 申请入驻

Python:字典方法(词频统计相关)

0
分享至

在文本分析、日志处理以及自然语言处理中,词频统计(word frequency counting)通常以字典(dict)作为核心数据结构来保存统计结果。

字典是一种键值映射结构:

• 键(key):词项(word / term)

• 值(value):出现次数(frequency)

例如:

}

在词频统计流程中:

• 字符串方法负责文本清洗与切分

• 字典方法负责统计、更新与管理词频结果

字典提供基于哈希表(hash table)的键值映射结构,能够以平均 (1) 时间复杂度完成查找与更新,因此非常适合词频统计这一类“动态计数”任务。

一、创建与初始化词频字典

在统计开始前,通常需要创建一个空字典,用于保存统计结果。

freq = {}

当遍历词列表时,可以逐步更新字典中的统计值。

示例:

print(freq)

输出:

{'apple': 3, 'banana': 2, 'orange': 1}

这种方式体现了字典统计的基本逻辑:

• 若键不存在,则创建

• 若键存在,则更新值

二、安全读取词频值

在统计过程中,经常需要读取某个词当前的统计值。如果该词尚未出现,则可能产生异常。

get()

返回指定键对应的值;若键不存在,则返回默认值。

dict.get(key[, default])

参数说明:

• key:要查询的键

• default:键不存在时返回的默认值(默认 None)

示例:

print(freq.get("orange", 0))

输出:

0

在词频统计中,get() 常用于避免 KeyError。

例如:

    freq[w] = freq.get(w, 0) + 1

这种写法是 Python 中最常见的词频统计模式。

setdefault()

用于在访问键的同时,为不存在的键设置默认值。

dict.setdefault(key[, default])

参数说明:

• key:要查询的键

• default:当键不存在时插入的默认值(默认 None)

返回值:

• 若键存在,返回该键对应的值

• 若键不存在,则插入 key: default,并返回 default

示例:

print(freq)

输出:

{'apple': 3, 'banana': 0}

解释:

• "apple" 已存在,因此直接返回 3

• "banana" 不存在,因此创建 "banana": 0 并返回 0

在词频统计中,setdefault() 也可以用于初始化计数。

例如:

    freq[w] += 1

不过在实际代码中,更常见的写法仍然是使用 get() 函数。

三、更新词频统计

在统计过程中,需要不断更新字典中的值。

update()

使用另一个映射或键值对更新字典。

dict.update([other])

参数说明:

• other:映射对象(mapping)或 (key, value) 对序列

示例:

print(freq)

输出:

{'apple': 3, 'banana': 2}

在词频统计中,update() 主要用于合并统计结果。

例如:

freq1.update(freq2)

注意:

update() 会直接覆盖旧值,而不是累加,因此不适合直接合并两个词频统计结果。

如果需要累加词频,应当使用循环、 或自定义合并逻辑,因为 update() 的语义是覆盖映射关系,而不是执行数值运算。

四、删除词项

在某些场景下,需要从统计结果中删除某些词项,例如停用词(stopwords)或低频词。

pop()

删除指定键并返回其值。

dict.pop(key[, default])

参数说明:

• key:要删除的键

• default:键不存在时返回的默认值

示例:

print(freq)

输出:

{'apple': 3, 'banana': 2}

popitem()

删除并返回字典中的最后一个键值对(Python 3.7+ 为 LIFO)。

这是因为 Python 3.7 起字典保持插入顺序,因此 popitem() 会移除最近插入的元素。

dict.popitem()

示例:

print(freq.popitem())

输出:

('banana', 2)

该方法较少用于词频统计,但在某些数据结构处理中有价值。

五、遍历词频字典

统计完成后,通常需要遍历字典进行输出或进一步处理。

keys()

返回字典的所有键。

dict.keys()

示例:

    print(word)

输出:

banana

values()

返回字典的所有值。

dict.values()

示例:

print(list(freq.values()))

输出:

[3, 2]

items()

返回键值对视图。

dict.items()

示例:

    print(word, count)

输出:

banana 2

在词频统计中,items() 是最常用的遍历方式。

六、排序与输出

词频统计完成后,常常需要按照频次排序输出。

排序通常要用到内置函数 sorted(),并与字典的 items() 结合使用。

示例:

print(result)

输出:

[('apple', 3), ('banana', 2), ('orange', 1)]

解释:

• freq.items() 返回 (word, count) 结构

• item[1] 表示按频次排序

• reverse=True 表示降序排列

七、词频统计流程示例

下面给出一个简单的英文词频统计示例。

    

小结

在词频统计任务中,字典(dict)是保存统计结果的核心数据结构。通过 get() 可以安全地读取并更新计数,通过 update() 与 pop() 可以管理统计结果,通过 keys()、values()、items() 可以遍历词频数据,再结合 sorted() 即可完成按频次排序输出。字典基于哈希表实现,能够以接近 (1) 的效率完成查找与更新,因此非常适合动态词频统计。


点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
陈妍希素颜照曝光!发量巨多成亮点,网友:还是得勤快

陈妍希素颜照曝光!发量巨多成亮点,网友:还是得勤快

木子爱娱乐大号
2026-09-07 10:23:31
从一盘散沙到铁板一块,也门政府军快速大变样!

从一盘散沙到铁板一块,也门政府军快速大变样!

寰球经纬所
2026-09-07 14:55:21
建议你一定养一个:顶嘴、拖拉、爱发脾气的孩子,长大真的有好处

建议你一定养一个:顶嘴、拖拉、爱发脾气的孩子,长大真的有好处

另子维爱读史
2026-09-02 20:03:11
皇马负于贝蒂斯,直接责任人是姆巴佩;穆帅和姆巴佩即将迎来迄今为止最大的考验

皇马负于贝蒂斯,直接责任人是姆巴佩;穆帅和姆巴佩即将迎来迄今为止最大的考验

福酱的小时光
2026-09-07 10:58:18
穷人的生意不好做

穷人的生意不好做

中产先生
2026-09-07 23:16:08
开播第1天收视破2,冲着欧豪王凯看的《交锋》结果被54岁女配惊艳

开播第1天收视破2,冲着欧豪王凯看的《交锋》结果被54岁女配惊艳

悦君兮君不知
2026-09-06 23:20:51
死在加州路边的阿里总监:最残忍的不是没钱,是枕边人不如网友亲

死在加州路边的阿里总监:最残忍的不是没钱,是枕边人不如网友亲

趣味萌宠的日常
2026-09-07 15:12:42
24岁百万吃播网红莹莹去世,最后一条视频说身体第一三天后人没了

24岁百万吃播网红莹莹去世,最后一条视频说身体第一三天后人没了

离离言几许
2026-09-08 00:06:19
歼-16编队返航没申请降落,沙特阿曼的跑道灯为什么亮了一整夜?

歼-16编队返航没申请降落,沙特阿曼的跑道灯为什么亮了一整夜?

理说历史
2026-08-29 22:41:02
大病最危险信号,不是消瘦,而是吃饭时频繁出现这4个表现

大病最危险信号,不是消瘦,而是吃饭时频繁出现这4个表现

芹姐说生活
2026-08-29 00:00:56
数据显示,超15%的中青年夫妻处于“干婚”状态,68%的中年人拥有固定深交的异性网友

数据显示,超15%的中青年夫妻处于“干婚”状态,68%的中年人拥有固定深交的异性网友

舒山有鹿
2026-07-25 09:57:20
滕朝辉任吉首市委书记,周立志另有任用

滕朝辉任吉首市委书记,周立志另有任用

三湘都市报
2026-09-07 11:36:21
肖战带父母看李宇春演唱会,父母出镜年轻优雅,坐vip显地位高

肖战带父母看李宇春演唱会,父母出镜年轻优雅,坐vip显地位高

椰黄娱乐
2026-09-07 10:46:09
律师爆料Melody态度差 变脸「好了你可以走了」! 经纪公司回应「沟通出问题」

律师爆料Melody态度差 变脸「好了你可以走了」! 经纪公司回应「沟通出问题」

ETtoday星光云
2026-09-07 14:55:08
9月11日24时油价调整!车主注意,这次或将大变样

9月11日24时油价调整!车主注意,这次或将大变样

三农老历
2026-09-06 07:10:44
上海CHINA GT超级跑车赛起火事故,救援人员为什么不敢灭火?

上海CHINA GT超级跑车赛起火事故,救援人员为什么不敢灭火?

大青树应急科普
2026-09-07 11:25:52
15天9个涨停板!股民:心中永远的痛!

15天9个涨停板!股民:心中永远的痛!

数据挖掘分析
2026-09-07 15:19:58
菲政坛大地震!军方突然倒戈,副总统接到逮捕令,马科斯能得逞?

菲政坛大地震!军方突然倒戈,副总统接到逮捕令,马科斯能得逞?

林子说事
2026-09-07 11:50:34
一场3-1验出国足失意人真成色 邵佳一最大发现 国足中场又添新核心

一场3-1验出国足失意人真成色 邵佳一最大发现 国足中场又添新核心

零度眼看球
2026-09-07 07:09:14
“曝井柏然刘雯结婚了”冲上热搜,“男方曾赴女方老家并已改口叫‘爸妈’”,目前双方均未回应

“曝井柏然刘雯结婚了”冲上热搜,“男方曾赴女方老家并已改口叫‘爸妈’”,目前双方均未回应

极目新闻
2026-09-07 14:59:45
2026-09-08 00:36:49
MediaTea
MediaTea
专业的数字媒体、新媒体技术
2143文章数 86关注度
往期回顾 全部

科技要闻

小米澎程N90 Max定价26.99万元

头条要闻

伊朗试验特殊武器爆炸场面如同地狱 美军舰直接跑了

头条要闻

伊朗试验特殊武器爆炸场面如同地狱 美军舰直接跑了

体育要闻

中超争冠形势:成都蓉城下轮打平夺冠

娱乐要闻

热搜第一,演员李沐宸致歉

财经要闻

证监会原副主席王建军一审被判无期徒刑

汽车要闻

智能可变大空间SUV 小米澎程系列车型上市 20.99万起

态度原创

艺术
旅游
本地
房产
公开课

艺术要闻

Denisenko Olga:俄罗斯当代女画家

旅游要闻

外籍游客同比增长37.9% 看成都开放能级何以一路“扶摇直上”|成都发展

本地新闻

扒完小作文,富豪们私藏的度假胜地有多绝

房产要闻

10万人吃瓜!三亚这个楼盘,法拍网上卖疯了!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版