【Python机器学习】NLP词中的数学——齐普夫定律

齐普夫定律指出:在给定的自然语言语料库中,任何一个词的频率与它在频率表中的排名成反比。

具体的说,这里的反比例关系指的是这样一种情况:排序列表中某一项的出现频率与其在排序列表中的排名成反比。例如,排序列表中的第一项出现的频率是第二项的2倍,是第三项的3倍。对于任何语料库或文档,我们可以快速做的一件事就是:绘制词的使用频率与它们的频率排名之间的关系。

齐普夫定律适用于很多东西的计数。比如某国城市人口与该人口排名之间的关系:

文字当然也满足相似的规律:

python 复制代码
import nltk
nltk.download('brown')
from nltk.corpus import brown

print(brown.words()[:10])
print(brown.tagged_words()[:5])
print(len(brown.words()))

这是一个超过100万词条的文档,下面看一下其中的信息:

python 复制代码
from collections import Counter
puncs=set((',','.','--','-','!','?',';',':','``',"''",'(',')','[',']'))
word_list=(x.lower() for x in brown.words() if x not in puncs)
token_counts=Counter(word_list)
print(token_counts.most_common(20))

上面语料库中的词频符合齐普夫预测的对数线性关系。"the"出现的频率大约是"of"的2倍、"and"的3倍。

简而言之,如果把语料库的词按照出现次数按降序排列,我们会发现:对一个足够大的样本,出现次数排名第一的词在语料库中出现次数是排名第二的词的两倍,是排名第四的词的四倍。因此,给定一个大型语料库,可以用上述数字来粗略统计给定词出现在该语料库的任何给定文档中的可能性。

相关推荐
就叫_这个吧1 分钟前
理解Java反射机制和内省机制应用与实践
java·开发语言·反射
随风丶飘2 分钟前
AI 接入 CI/CD 实测:构建失败自动诊断与修复,能省多少排查时间?
人工智能·ci/cd
是Dream呀3 分钟前
昇腾平台Apex编译实战:从环境配置到问题排查
人工智能
专注VB编程开发20年3 分钟前
python翻译网页HTML的难题
python·c#·html
想你依然心痛6 分钟前
HarmonyOS 6(API 23)实战:基于悬浮导航、沉浸光感与HMAF的“航界智脑“——PC端AI智能体沉浸式无人机集群任务规划与空域协同管理工作台
人工智能·ar·无人机·harmonyos·智能体
haven-8527 分钟前
AI Agent 生态核心概念详解:Agent、MCP、Skill 与 JSON-RPC
人工智能·rpc·json
是小崔啊12 分钟前
AI-常见的AI概念
人工智能
Debroon13 分钟前
偶像1:自我定义 + 价值创造 + 承担代价 + 目标坚定
人工智能
DS随心转小程序19 分钟前
ChatGPT和Gemini输出乱码怎么解决?借助AI导出鸭高效处理
人工智能·ai·chatgpt·豆包·deepseek·ai导出鸭
new【一个】对象21 分钟前
登录与注册完整流程分析
python