【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倍。

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

相关推荐
imbackneverdie1 分钟前
国内有哪些比较全面的生物医学相关数据库?
大数据·数据库·人工智能·ai·信息可视化·aigc·科研
心易行者7 分钟前
Python自动化测试7步落地法:用python在线运行省掉90%环境配置时间
java·开发语言·人工智能·python·log4j·ai编程
茗鹤APS和MES7 分钟前
工业排产:AI可赋能,APS不可替代
人工智能·深度学习·机器学习
东离与糖宝9 分钟前
深度拆解Claude Code架构:不靠总管,靠边界搭建编程Agent
人工智能
Sophnet云平台10 分钟前
从 IT 自嗨到业务可用,制造企业 AI 平台的落地实践
大数据·人工智能·llm·制造·token·云平台
ting945200010 分钟前
Hey Noah 主动式 AI 执行助理全栈技术深度剖析 —— 从被动对话 LLM 到 FSD 级自主 Agent 工程实现
人工智能·架构
TechEdu20260611 分钟前
[人工智能]Granite(IBM):企业级开放模型、治理与工程实践
人工智能·ai
Boop_wu11 分钟前
[LangGraph] 案例 2 : 支持搜索的智能代理系统
服务器·windows·python·langchain
Mr数据杨18 分钟前
莫斯科公寓价格预测实战 从 Kaggle 房价回归题理解结构化建模
人工智能·数据分析·kaggle竞赛
huashengzsj20 分钟前
钛合金真空钎焊工艺方法 钛合金真空钎焊厂家推荐
人工智能