python 函数FreqDist

频率分布 函数
函数方法获取在文本中每个出现的标识符的频率分布 。通常情况下,函数得到的是每个标识符出现的次数与标识符的map映射
标识符出现次数
are
209
【python 函数FreqDist】the
660
550
fdist = (text1)
fdist

python 函数FreqDist

文章插图
的常用函数
keys() #获取map对象的键值,返回一个数组
获取文本中最常出现的前20的词
= fdist.keys()
[1:20]
freq() #获取标识符的频率
获取词whale的频率
fdist.freq('whale') * 100
() 制表函数,将文本的出现次数绘制成一张二维表格,横向表格 。函数首先绘制的是频率分布样本中出现频率最高的 。如果给函数提供一个参数P,那么函数将绘制前P个标识符 。
参数用来设置次数是否累加
fdist.(20, =True) # 绘制前20个标识符,并出现次数累加
plot()函数绘制图,用法和相同 。
fdist.plot(20, =True)
python 函数FreqDist

文章插图
注意从图中可以看出一些介词和冠词占据了词总量的很大一部分,但是这些词却对我们了解文章没有什么帮助,所以要过滤掉这些词
inc()函数,增加样本
fdist.inc(["In","the","beginning"])
  • 1

N()函数,获取样本总数
fdistN()
  • 1

max()函数,数值最大的样本
fdist.max()
  • 1

表达式:forin fdist: 以频率递减遍历样本
细粒度的选择词
采用集合论的一些方法和符号进行过滤筛选,这是最基本的 。当然还有更好的方法 。
#获取文章中词长度大于15的单词
V = set(text1)
= [w for w n V if len(w) > 15]
现在我们已经知道如何找词的频率,并且也知道如何过滤掉长度过长的词 。那么可以想象一下,一篇文章中较短的词,例如介词to,of等是一些高频词,但对了解文章无用 。同样,一些长度过长的词,一般都是低频词,这些词也不能代表文章的特征 。即这些词都不能作为文章的特征词汇 。
fdist = (text3)
([w for w in set(text3) if len(w) > 7 and fdist[w] > 7])
获取文章中词长在7位以上且词频在7次以上的单词这些词往往能代表文章的特点 。
单个元素操作 函数含义
s.(t)
测试s是否以t开头
s.(t)
测试s是否以t结尾
t in s
测试s是否包含t
s.()
测试s中所有字符是否都是小写字母
s.()
测试s中所有字符是否都是大写字母
s.()
测试s中所有字符是否都是字母
s.()
测试s中所有字符是否都是字母或数字
s.()
测试s中所有字符是否都是数字
s.()
测试s是否首字母大写
s.upper()
将s转成大写
s.lower()
将s转成小写
#以-ableness结尾的词sorted([w for w in set(text1) if (not) w.endswith("ableness")])#包含gnt的词sorted([w for in set(text1) if (not) 'gnt' in w])#首字符大写的词sorted([w for w in set(text1) if (not) w.istitle()])#完全由数字组成的词sorted([w for w in set(text1) if (not) w.isdigit()])#获取文本中的单词数量,过滤掉大小写,标识符,数字len(set([w.lower() for w in text1 if w.isalpha()]))