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

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

相关推荐
智算菩萨3 分钟前
【Tkinter】15 样式与主题深度解析:ttk 主题系统、Style 对象与跨平台样式管理实战
开发语言·python·ui·ai编程·tkinter
共绩算力9 分钟前
算力租赁革命:租4090、租5090如何让AI开发成本降低90%?——共绩算力深度解析
人工智能·共绩算力
信创DevOps先锋9 分钟前
模力方舟Moark:驶向AI开发新纪元的“能力方舟”
人工智能
码农小白AI15 分钟前
AI报告编审解决方案赋能制造检测:IA-Lab AI检测报告生成助手协同IACheck,实现机械制造检测报告高效生成与严苛质量把控
人工智能·制造
子非鱼@Itfuture18 分钟前
`<T> T execute(...)` 泛型方法 VS `TaskExecutor<T>` 泛型接口对比分析
java·开发语言
weixin_4193497922 分钟前
Python 项目中生成 requirements.txt 文件
开发语言·python
林恒smileZAZ26 分钟前
前端大屏适配方案:rem、vw/vh、scale 到底选哪个?
开发语言·前端·css·css3
NOCSAH32 分钟前
统好AI SRM模块:智能采购管理实战解析
大数据·人工智能·统好ai·数智一体化平台
第一程序员35 分钟前
Python与区块链:非科班转码者的指南
python·github
双星系统38 分钟前
[特殊字符] 天工联智工业双臂机器人:重新定义智能制造的“双手“时代
人工智能·机器人·制造