第一题,利用大文本验证“齐夫定律”的正确性,首先我们使用pycharm作为集成开发环境,python3.5+nltk来做实验。

 

齐夫定律:齐夫定律(英语:Zipf's law)是由哈佛大学的语言学家乔治·金斯利·齐夫(George Kingsley Zipf)于1949年发表的实验定律。它可以表述为:在自然语言的语料库里,一个单词出现的频率与它在频率表里的排名成反比。所以,频率最高的单词出现的频率大约是出现频率第二位的单词的2倍,而出现频率第二位的单词则是出现频率第四位的单词的2倍。这个定律被作为任何与幂定律概率分布有关的事物的参考。

 

     1.我们选用了nltk内置的大文本作为题目中的自由文本(布朗语料库及古腾堡语料等),统计出文章所有词的频率(使用对数刻度)以及对它们进行排序并且选出前150个词作图以及验证齐夫定律。

 

 

     2.对于b问,做法是和第一题一样的,得出一个结果与第一题作比较。不同点:全是随机产生的字母组成的文章,我们也给予足够大的数量以构成大文本。

 

a.

b.

实验结果:第一问通过实验认可齐夫定律。第二问实验结果不符合齐夫定律。

 

                               

 

WordNet是由Princeton 大学的心理学家,语言学家和计算机工程师联合设计的一种基于认知语言学的英语词典。它不是光把单词以字母顺序排列,而且按照单词的意义组成一个“单词的网络”。

  1. 使用nltk里的wordnet

 

>>>from nltk.corpus import wordnet as wn

 

(2)对dog进行计算WordNet 中名词、动词、形容词和副词的平均多义性。

 

名词的平均多义性是指wordnet中所有名词的含义个数除以名词个数

 

 

算法描述

 

第一题a:

 

 

创建一个FreqDist类型的字典以存放取对数后的词频。

导入大文本数据,并分好词。

遍历分好词的列表,统计每个词的出现词频。

对所有词根据词频进行排序。

取题目中的第50个和第150个词进行验证。

作图输出前150个词。

 

第一题b:

构建足够大的大文本

从这几个字母中不断随机选出元素来构建大文本

进行分词,使用空白项进分词。

遍历分好词的列表,统计每个词的出现词频。

对所有词根据词频进行排序。

取题目中的第50个和第150个词进行验证。

作图输出前150个词。

第二题:

 

收集所有指定类型的同义词集
遍历同义词集
收集同义词集内的词条
打印词条总数
得到每个词条的同类型所含意义的个数,求和
打印词集内该类型词条的意义总数
打印该类型的平均多义性

详例描述

 

第一题a:对于inaugural:第五十个词应是第一百个词出现的频率的三倍。

 

实验结果:第50个词为may,第150个词为much

符合齐夫定律。注:(r_a)为倍数。

第五十个词为fg,第一百五十个词为gcg,不符合齐夫定律。注:(r_b)为倍数。

 

对比两个小问的图:

 

 

 

 

若是大文本,曲线比较平滑,而对于随机生成的大文本,曲线则比较陡峭曲折,似乎是每到一个点便发生显著的变化,而在两个发生明显变化的点之间的曲线,曲线则是比较地平稳。

 

第二题

软件演示

选用了大文本古腾堡,布朗等作为例子。

 

古腾堡:


符合齐夫定律。

 

对于布朗:

 

符合齐夫定律。

 

对于随机大文本:

 

不符合齐夫定律。

 

总结和体会

总结:

1. 需要深刻理解齐夫定律:在Brown语料库中,“the”、“of”、“and”是出现频率最前的三个单词,其出现的频数分别为69971次、36411次、28852次,大约占整个语料库100万个单词中的7%、3.6%、2.9%,其比例约为6:3:2。大约占整个语料库的7%(100万单词中出现69971次)。满足齐夫定律中的描述。仅仅前135个字汇就占了Brown语料库的一半。齐夫定律是一个实验定律,而非理论定律,可以在很多非语言学排名中被观察到,例如不同国家中城市的数量、公司的规模、收入排名等。齐夫定律不仅适用于语料全体,也适用于单独的一篇文章。

2.对于nltk内置函数的运用还需要加深一步学习;比如words(),FreqDist(),wordnet()等。以及wordnet的使用。

3. 关于取对数刻度的问题,我们对FreqDist进行遍历取所有key的value值进行取对数再放进新的FreqDist里进行作图。

体会:看似简单两道题目,确是对熟练运用nltk的练习,包括如何处理大文本以及统计大文本中的词频等操作。对于wordnet,更是体会到它对于NLP的意义。在nltk下调用更为方便。#

 

[注]本项目为小组团队项目,共同完成,感谢小伙伴们的付出与努力~

 

 

 

 

 

 

 

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐