1,安装
pip install nltk
2, 下载书籍
$ python
>>> import nltk
>>> nltk.download()
3,选择book后点Download开始下载,下载完成以后再输入:
>>> from nltk.book import *
*** Introductory Examples for the NLTK Book ***
Loading text1, ..., text9 and sent1, ..., sent9
Type the name of the text or sentence to view it.
Type: 'texts()' or 'sents()' to list the materials.
text1: Moby Dick by Herman Melville 1851
text2: Sense and Sensibility by Jane Austen 1811
text3: The Book of Genesis
text4: Inaugural Address Corpus
text5: Chat Corpus
text6: Monty Python and the Holy Grail
text7: Wall Street Journal
text8: Personals Corpus
text9: The Man Who Was Thursday by G . K . Chesterton 1908
4,基本操作
>>> text1 //这里面的text*都是一个一个的书籍节点,直接输入text1会输出书籍标题
>>> text1.concordance("former") //会显示20个包含former的语句上下文
>>> text1.similar("ship") //搜索相关词
>>> text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"]) //查看某个词在文章里出现的位置
5,基本统计
len(text1):返回总字数
set(text1):返回文本的所有词集合
len(set(text4)):返回文本总词数
text4.count("is"):返回“is”这个词出现的总次数
FreqDist(text1):统计文章的词频并按从大到小排序存到一个列表里
fdist1 = FreqDist(text1);fdist1.plot(50, cumulative=True):统计词频,并输出累计图像
fdist1.hapaxes():返回只出现一次的词
text4.collocations():频繁的双联词
6,语料库,以下各种语料库都是分别建立的,因此会稍有一些区别,但是不外乎以下几种组织结构:散养式(孤立的多篇文章)、分类式(按照类别组织,相互之间没有交集)、交叉式(一篇文章可能属于多个类)、渐变式(语法随着时间发生变化)
nltk.corpus.gutenberg.fileids() //Gutenberg语料库
nltk.corpus.gutenberg就是gutenberg语料库的阅读器,它有很多实用的方法,比如:
nltk.corpus.gutenberg.raw('chesterton-brown.txt'):输出chesterton-brown.txt文章的原始内容
nltk.corpus.gutenberg.words('chesterton-brown.txt'):输出chesterton-brown.txt文章的单词列表
nltk.corpus.gutenberg.sents('chesterton-brown.txt'):输出chesterton-brown.txt文章的句子列表
类似的语料库还有:
from nltk.corpus import webtext:网络文本语料库,网络和聊天文本
from nltk.corpus import brown:布朗语料库,按照文本分类好的500个不同来源的文本
from nltk.corpus import reuters:路透社语料库,1万多个新闻文档
from nltk.corpus import inaugural:就职演说语料库,55个总统的演说
7,语料库的通用接口
fileids():返回语料库中的文件
categories():返回语料库中的分类
raw():返回语料库的原始内容
words():返回语料库中的词汇
sents():返回语料库句子
abspath():指定文件在磁盘上的位置
open():打开语料库的文件流
8,加载自己的语料库,收集自己的语料文件(文本文件)到某路径下(比如/tmp),然后执行:
>>> from nltk.corpus import PlaintextCorpusReader
>>> corpus_root = '/tmp'
>>> wordlists = PlaintextCorpusReader(corpus_root, '.*')
>>> wordlists.fileids()
就可以列出自己语料库的各个文件了,也可以使用如wordlists.sents('a.txt')和wordlists.words('a.txt')等方法来获取句子和词信息
9,