NLTK
text*都是一个一个的书籍节点,直接输入text1会输出书籍标题
搜索文本
text1.concordance(“former”)
搜索相关词
text1.similar("ship")
这个倒是挺特别的
查看某个词在文章里出现的位置:
text4.dispersion_plot([“citizens”, “democracy”, “freedom”, “duties”, “America”])
词统计
len(text1):返回总字数
set(text1):返回文本的所有词集合
len(set(text4)):返回文本总词数
text4.count(“is”):返回“is”这个词出现的总次数
FreqDist(text1):统计文章的词频并按从大到小排序存到一个列表里
fdist1 = FreqDist(text1);fdist1.plot(50, cumulative=True):统计词频,并输出累计图像
NLTK的语料库:
from nltk.corpus import webtext:网络文本语料库,网络和聊天文本
from nltk.corpus import brown:布朗语料库,按照文本分类好的500个不同来源的文本
from nltk.corpus import reuters:路透社语料库,1万多个新闻文档
from nltk.corpus import inaugural:就职演说语料库,55个总统的演说
组织结构:散养式(孤立的多篇文章)、分类式(按照类别组织,相互之间没有交集)、交叉式(一篇文章可能属于多个类)、渐变式(语法随着时间发生变化)
语料库的通用接口
fileids():返回语料库中的文件
categories():返回语料库中的分类
raw():返回语料库的原始内容
words():返回语料库中的词汇
sents():返回语料库句子
abspath():指定文件在磁盘上的位置
open():打开语料库的文件流
加载自己的语料库
收集自己的语料文件(文本文件)到某路径下(比如/tmp),然后执行:
>>> from nltk.corpus import PlaintextCorpusReader
>>> corpus_root = '/tmp'
>>> wordlists = PlaintextCorpusReader(corpus_root, '.*')
>>> wordlists.fileids()
就可以列出自己语料库的各个文件了,也可以使用如wordlists.sents(‘a.txt’)和wordlists.words(‘a.txt’)等方法来获取句子和词信息