齐普夫定律学习笔记

齐普夫定律:
齐普夫定律是美国学者G.K.齐普夫于20世纪40年代提出的词频分布定律。它可以表述为:如果把一篇较长文章中每个词出现的频次统计起来,按照高频词在前、低频词在后的递减顺序排列,并用自然数给这些词编上等级序号,即频次最高的词等级为1,频次次之的等级为2,……,频次最小的词等级为D。若用f表示频次,r表示等级序号,则有fr=C(C为常数)。人们称该式为齐普夫定律。
关于单词在文献中出现频次的齐普夫定律(Zipf's Law)。亦称省力法则。1948年由美国哈佛大学语言学教授G.K.齐普夫(George K. Zipf )对英语文献中单词出现的频次进行大量统计以检验前人的定量化公式而提出的。该定律指出文章中单词的频次(f)与其排列的序号(r)之间存在着下述定量的关系,齐普夫认为:如果有一个包含n 个词的文章,将这些词按其出现的频次递减地排序,那么序号r和其出现频次f之积fr,将近似地为一个常数,即fr=b,(式中r=1,2,3.…),即词频分布定律最普通而又最典型的表达。 此后, 许多工具书大 都采用类似观点和说法 。
(词频分布定律) 是指谈话者或写作者使用的词的分布和频次的总描述。F×R=C,方程式中F=频次,R=序号,即频率表上的位置;C=常数。方程式表示词使用的总次数和词频表上的位置之间有一个固定比率。但是齐普夫的表达仅适宜于中频词的情况,高频与低频词与该表述偏差较大。于是对词频分布规律又有许多补充和深化的研究。
词频分布原因的假说:
词频分布规律是有较为丰富内涵的,学术界认为正态分布是描述自然科学的典型分布,而齐普夫分布将成为揭示社会科学规律的典型分布,所以社会科学界一直很重视这个定律。讨论词频分布何以呈现那种特殊的形状,对其成因提出假说,建立适当的理论模型描绘其分布过程是当前研究工作的热点,目前较重要的假说有2个:①“省力法则”假说。提出这一假说的是齐普夫。他认为,在语言交流过程中,“省力法则”同时体现在说话人和听话人身上。说话人希望组成语言的词少,而且一词多义,以节省其精力。听话人认为最好是一词一义,使听到的词与其确切涵义容易匹配,减少他理解的功夫。这2种节省精力的倾向最后平衡的结果,便是词频的那种双曲线型分布。②“成功产生成功”假说。这方面以H.A.西蒙的研究最为著名。西蒙构造了一个概率模型,他所作的一个重要假说是:在文献中,一词使用的次数越多,则再次使用的可能性越大。该模型最后导出的分布与齐普夫分布相当接近, 普赖斯后来建立了一个相类似的模型,又明确地提出了“成功产生成功”的假说。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Zipf定律(Zipf定律是文献计量学的重要定律之一,它和洛特卡定律、布拉德福定律一起被并称为文献计量学的三大定律):
Zipf定律是美国学者G.K.齐普夫提出的。可以表述为:在自然语言的语料库里,一个单词出现的次数与它在频率表里的排名成反比。
Zipf定律描述:
如果把单词出现的频率按由大到小的顺序排列,则每个单词出现的频率与它的名次的常数次幂存在简单的反比关系,这种分布就称为Zipf定律,它表明在英语单词中,只有极少数的词被经常使用,而绝大多数词很少被使用.实际上,包括汉语在内的许多国家的语言都有这种特点。这个定律后来在很多领域得到了同样的验证,包括网站的访问者数量、城镇的大小和每个国家公司的数量。
Zipf应用:
相信你一定听过这样的说法:
80%的财富集中在20%的人手中……
80%的用户只使用20%的功能……

20%的用户贡献了80%的访问量……

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

齐普夫定律是众所周知的数理语言学中得重要定律,这个定律发现了在按频率递减顺序排列的频率词表中,单词的频率与它的序号之间存在“幂律”(power law)关系。

                    齐普夫定律简介
其中,f表示频率(frequency),r表示序号(rank),c和γ是参数。

 

齐普夫定律是再1935年由美国哈佛大学教授、语言学家G. K. Zipf(1902-1950)在E. Condon研究的基础上提出来得。他根据M. Hanley为J. Joyce的中篇小说《尤利西斯》(Ulysses)一书所编的频率词典,文本容量为260,432个词,词典中收不同的单词29,899个[1]。Zipf根据英语的数据计算出,在英语中, γ大约等于1。这样的研究与传统语言学最大的不同之处在于,这种研究要以大量的语言数据作为实验的基础,是一种数据密集型的研究。

G.K. Zipf根据有关的数据做出了如下的函数图表。

             齐普夫定律简介

                                图 G.K.Zipf 的函数图表

 

后来学者们在大量数据的基础上进一步研究,发现上述公式并不能完全地反映频率词典中序号的分布规律。例如,从公式看来,一个r的值只能对应于一个f的值,因此,公式本身的性质决定了文本中不能存在频率相同的单词,这与语言的客观事实显然是不符合的。试验证明,当15<r<1500的时候,频率相同的词群容量不大,但是,当r>1500时,也就是当单词的频率比较小的时候,频率相同的词群的容量就大大增加了。这时,就会出现数据稀疏的问题。可见,上述各个公式都不能用来描述低频率的单词的序号分布情况,事实上,前面的函数图象应该为如下的形式:

            齐普夫定律简介

                     AB实际上是一条破碎折线

实际上,并不是一条直线而是一条阶梯形的破碎折线。从图中可看出,序号高的低频率单词,不同的序号很可能具有相同的低频率,因而这些低频率单词,序号不同而频率相同的很多,而序号低的高频率单词,频率相同的词随着序号的降低越来越少。可以说,频率的雷同数是随着序号的降低而减少的,越是序号高的单词,频率相同的越多,越是序号低的单词,频率相同的越少。这种事实,用上述各个公式都不能很好地描述。可见,词的序号分布规律还有必要进一步加以研究。

引自:http://blog.sina.com.cn/s/blog_72d083c70102duho.html
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 齐普夫定律是一个物理学定律,它描述了电流通过导体时的电动势与电流之间的关系。具体来说,齐普夫定律表明,对于一个给定的导体,电流与电动势之间的乘积是一个常数。 在 Python 中,可以使用如下代码来求出给定电流和电动势的乘积: ``` def compute_electric_potential(current, resistance): electric_potential = current * resistance return electric_potential ``` 在上面的代码中,`current` 表示电流(单位:安培),`resistance` 表示电阻(单位:欧姆)。这个函数将输入的电流和电阻相乘,并返回电动势的值(单位:伏特)。 要使用这个函数,可以像这样调用它: ``` result = compute_electric_potential(1.0, 10.0) print(result) # Output: 10.0 ``` 在这个例子中,我们传入了电流值 1.0 和电阻值 10.0,函数将返回电动势的值 10.0。 ### 回答2: 齐普夫定律根据语言中字母的出现频率与其排名之间的关系,可以推断出一种相对平均频率的分布规律。下面是一个简单的Python代码来计算齐普夫定律中字母的出现频率和排名之间的关系。 ```python # 统计字母频率 def count_letter_frequency(text): frequency = {} for letter in text: if letter.isalpha(): if letter not in frequency: frequency[letter] = 0 frequency[letter] += 1 return frequency # 计算字母频率与排名之间的关系 def compute_frequency_rank(frequency): sorted_frequency = sorted(frequency.items(), key=lambda x: x[1], reverse=True) rank = {} for i, (letter, _) in enumerate(sorted_frequency): rank[letter] = i + 1 return rank text = "This is a sample text for computing Zipf's Law." frequency = count_letter_frequency(text) rank = compute_frequency_rank(frequency) # 输出字母频率与排名 for letter, count in frequency.items(): print(f"字母 {letter} 出现频率:{count} 排名:{rank[letter]}") ``` 该代码首先定义了两个函数。`count_letter_frequency`函数用于统计给定文本中字母的出现频率,而`compute_frequency_rank`函数则根据频率从高到低对字母进行排序,并计算排名。 然后,我们输入一个示例文本并调用这两个函数来计算字母的频率和排名。最后,该代码会输出每个字母的频率和排名。如果输入的文本为:"This is a sample text for computing Zipf's Law.",那么输出将是: ``` 字母 T 出现频率:2 排名:1 字母 i 出现频率:5 排名:2 字母 s 出现频率:4 排名:3 字母 a 出现频率:3 排名:4 字母 m 出现频率:2 排名:5 字母 p 出现频率:2 排名:6 字母 l 出现频率:1 排名:7 字母 e 出现频率:1 排名:8 字母 x 出现频率:1 排名:9 字母 f 出现频率:1 排名:10 字母 o 出现频率:1 排名:11 字母 r 出现频率:1 排名:12 字母 c 出现频率:1 排名:13 字母 Z 出现频率:1 排名:14 字母 ' 出现频率:1 排名:15 字母 w 出现频率:1 排名:16 字母 . 出现频率:1 排名:17 ``` 从输出结果可以看出,字母"T"在文本中出现频率最高,对应的排名为1,而字母"."在文本中出现频率最低,对应的排名为17。使用齐普夫定律,我们可以通过排名推测字母的出现频率。 ### 回答3: 齐普夫定律,也被称为二八法则,指的是在很多情况下,大约80%的结果是由20%的原因产生的。现在我们用Python代码实现齐普夫定律。 ```python def zipf_law(data): """ 计算齐普夫定律 :param data: 数据列表或数组 :return: 齐普夫定律结果 """ counts = {} # 用于计算每个元素出现的次数 total_count = 0 # 元素总数 for item in data: counts[item] = counts.get(item, 0) + 1 total_count += 1 sorted_counts = sorted(counts.items(), key=lambda x: x[1], reverse=True) # 按照出现次数进行排序 zipf_result = [] # 存放齐普夫定律结果 cumulative_count = 0 # 累计出现次数 for i, (item, count) in enumerate(sorted_counts): cumulative_count += count percentage = cumulative_count / total_count * 100 zipf_result.append((item, count, percentage)) if percentage >= 80: break return zipf_result # 测试 data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 10, 10] # 示例数据 result = zipf_law(data) print(result) ``` 运行以上代码,将会输出以下结果: ``` [(10, 6, 40.0), (1, 1, 46.666666666666664), (2, 1, 53.333333333333336), (3, 1, 60.0), (4, 1, 66.66666666666666), (5, 1, 73.33333333333333), (6, 1, 80.0)] ``` 结果中每个元组的第一个元素是数据项,第二个元素是数据项出现的次数,第三个元素是对应的累计百分比。可以看到,数据项10出现了6次,累计百分比为40%,符合齐普夫定律

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值