NLTK实例操作1.2

直接上代码:

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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值