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

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

相关推荐
QuantumYou4 分钟前
【最新解决方案】 Unknown encoder ‘libx264‘
机器学习
AiBoxss8 分钟前
苹果首款AI手机发布!iPhone 16全新AI功能体验感拉满
人工智能
行者..................14 分钟前
Qt基础,布局管理
开发语言·qt
水花花花花花23 分钟前
matlab处理函数3
人工智能
潮汐退涨月冷风霜23 分钟前
利用python处理线性规划问题
开发语言·python·线性规划·数学规划
鹿屿二向箔26 分钟前
C语言实现一个简单的点歌系统
c语言·开发语言
小黄酥32 分钟前
Python学习笔记--列表、字典、集合、元组
笔记·python·学习
奥利给少年33 分钟前
Machine Learning: A Probabilistic Perspective 机器学习:概率视角 PDF免费分享
人工智能·机器学习·开源
有梦想的程序星空35 分钟前
【四范式】浅谈NLP发展的四个范式
人工智能·gpt·自然语言处理
Eiceblue37 分钟前
用Python设置PDF中图片的透明度
开发语言·vscode·python·pdf