直接上代码:
1、实例测试1
# -*- coding: UTF-8 -*-
# !/usr/python/bin
# Filename:NltkTest42
'''一些关于文本的统计信息的测试'''
from __future__ import division
import nltk
from nltk.book import *
import time
import datetime
class NltkTest42:
def __init__(self, text, sent):
self.text = text
self.sent = sent
print self.text
print self.sent
def SomeTests(self):
'''简单的逻辑关系的测试'''
print self.sent
print [w for w in self.sent if len(w) < 4]
print [w for w in self.sent if len(w) <= 4]
print [w for w in self.sent if len(w) == 4]
print [w for w in self.sent if len(w) != 4]
print sorted([w for w in set(self.text) if w.endswith('ableness')])
print sorted([term for term in set(self.text) if 'gnt' in term])
sorted([item for item in set(self.text) if item.istitle()])
sorted([item for item in set(self.sent) if item.isdigit()])
[len(w) for w in self.text]
[w.upper() for w in self.text]
tricky = sorted([w for w in set(self.text) if 'cie' in w or 'cei' in w])
for word in tricky:
if (len(word) > 10):
print word
nt42 = NltkTest42(text1, sent7)
starttime = datetime.datetime.now()
print 'Start at:'
print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
nt42.SomeTests()
endtime = datetime.datetime.now()
print 'Finish at:'
print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print '程序才运行了%d秒' % (endtime - starttime).seconds
print '聪明的你告诉我,其他的时间都去哪了?'
# 一些词比较运算符
# s.startswith(t) 测试 s 是否以 t 开头
# s.endswith(t) 测试 s 是否以 t 结尾
# t in s 测试 s 是否包含 t
# s.islower() 测试 s 中所有字符是否都是小写字母
# s.isupper() 测试 s 中所有字符是否都是大写字母
# s.isalpha() 测试 s 中所有字符是否都是字母
# s.isalnum() 测试 s 中所有字符是否都是字母或数字
# s.isdigit() 测试 s 中所有字符是否都是数字
# s.istitle() 测试 s 是否首字母大写(s 中所有的词都首字母大写)
2、实例测试2
# -*- coding: UTF-8 -*-
#!/user/python/bin
#filename:Nltk_test091902 //一些关于文本统计信息的测试
import nltk
from nltk.book import *
class NltkTest38:
def __init__(self,text):
self.text=text
print self.text
def FreqAnalyse(self,queryStr):
'''统计高频和低频词并对TOP50的高频词画图'''
fdist=FreqDist(self.text)
vocabulary =fdist.keys()
hapaxesWord = fdist.hapaxes()
#单频词
print hapaxesWord[:50]
#高频词
print vocabulary[:50]
#画图,False看的舒服一些
fdist.plot(50,cumulative=False)
print fdist[queryStr]
def LongWord(self):
'''找出长度大于15的词汇'''
voc=set(self.text)
#长度大于15的词
longWords=[word for word in voc if len(word)>15]
print 'longword:'
print sorted(longWords)
def CheckUseless(self):
'''找出高频词和长低频次'''
fdist =FreqDist(self.text)
print '高频词和长低频'
print sorted([word for word in set(self.text) if len(word)>7 and fdist[word]>7])
def BigramsCheck(self):
'''提取文本词汇中的词对也就是双连词'''
#指定词查找双连词
print '双连词'
print bigrams(['more','is','said','than','done']) #提取文本词汇中的词对,也就是双连词
#全局找双连词
print(self.text.collocations()) #找到比我们基于单个词的频率预期得到的更频繁出现的双连词
def Others(self):
'''计数其他东西'''
fdist=FreqDist([len(word) for word in self.text])
print fdist.keys()
print(fdist.items())
print fdist[fdist.max()]
print fdist.freq(fdist.max())
fdist.tabulate()
fdist.plot()
nt38=NltkTest38(text1)
nt38.FreqAnalyse('whale')
nt38.LongWord()
nt38.CheckUseless()
nt38.BigramsCheck()
nt38.Others()