一. 频率分布
频率分布:显示每一个词项在文本中出现的频率,它告诉我们文本中词标识符的总数是如何分布在词项中的。
1.如何能自动识别文本中最能体现文本主题和风格的词汇?
- 找到高频词。
- 找到只出现一次的词
- 长词(通常是唯一的)
- 短高频词和长低频词
- 搭配与双连词(搭配基本上是频繁的双连词)
- 查看文本中词长的分布
2.如何找到高频词?
- 使用FreqDist
FreqDist
函数FreqDist()方法获取在文本中每个出现的标识符的频率分布,通常情况下函数得到的是每个标识符出现的次数与标识符的map映射。
使用fdist1.plot(50,cumulative=True)可以绘制文本中50个最常用的词的累计频率图(但是此处得到的计数,不是很懂)
3. 如何找到低频词?
使用fdist1.hapaxes()
4. 如何寻找短低频词和长高频词?
5.找到词语搭配和双连词?
使用函数bigrams(),此处要加list()函数才能得到与书上一样的结果。
6.如何查看文本中词长的分布?
从text1中每个词的长度的链表开始,然后计数FreqDist计数链表中的每个数字出现的次数。每一个元素是一个数字,对应文本中一个词标识符。但是只有19个不同的元素被计数,从1到20(不包含19),也就是说只有19个不同的词长。没有19个或者21个活更多字符组成的词。
不同长度的词的频率是多少?
注:关于词长的分析可以帮助我们了解作者、文体和语言之间的差异。
二. NTLK频率分布类中定义的函数总结
fdist = FreqDist() 创建包含给定样本的频率分布
fdist['monstrous'] 计数给定样本出现的次数
fdist.freq('monstrous') 给定样本的频率
fdist.keys() 以频率递减的顺序遍历样本
fdist.max() 数值最大的样本
fdist.tabulate() 绘制频率分布表
fdist.plot() 绘制频率分布图
fdist.plot(cumulative= True) 绘制频率分布图