#Python系列#--自然语言处理之NLTK基础应N用

user

雨橙

中国.四川.成都

世界之上、唯有远见、惟爱不变。


NLTK的全称是natural language toolkit,是一套基于python的自然语言处理工具集。

安装NLTK
pip install nltk

NLTK语料与模型包管理器下载
import nltk
nltk.download()

完整代码实例如下:
#!/usr/bin/python
# _*_ coding:utf-8 _*_
# author: robinn

import nltk
import jieba

#Text类介绍
with open(u"被遗忘的时光.txt") as f:
    content = f.read()
    x = jieba.cut(content)
    y = nltk.text.Text(jieba.lcut(content))

    #看下风花雪月这个词出现的情况
    text = y.concordance(u"风花雪月")
    print("###############################")

    #看下文章常用的二词搭配
    y.collocations(num=20,window_size=2)

    #看下作者对于某些同义词的使用习惯
    text = y.common_contexts([u'一起',u'一块'])

    #查看关心的词在文中出现的位置
    y.dispersion_plot([u'校园',u'大学'])
    print("###############################")

    #显示word的相似词
    y.similar(U"校园")
    print("###############################")

    #word出现的词数
    x = y.count(u"大学")
    print(x)

    #返回文章去重的词典
    x = y.vocab()
    for word in x:
        print(word)


#FreqDist类介绍
with open("The day you went away.txt") as f:
    content = f.read()
    fdist = nltk.FreqDist(nltk.word_tokenize(content))

    #绘制频率分布图,若cumu为True,则是累积频率分布图
    fdist.plot(30,cumulative=True)

    #词典的长度
    x = fdist.B()
    print(x)

    #生成频率分布的表格形式
    fdist.tabulate()

    #返回出现次数最频繁的词与频度
    x = fdist.most_common(10)
    for x1,x2 in x:
        print(x1+" | "+str(x2))

    #返回只出现过一次的词
    x = fdist.hapaxes()
    print(x)


关于Text类介绍和FreqDist类介绍更多大家参考官方文档。上面例子仅供参考。
posted at