Python自然语言处理-学习笔记(2)——获得文本语料和词汇资源

语料库基本语法

载入自己的语料库
PlaintextCorpusReadera 从文件系统载入
BracketParseCorpusReader 从本地硬盘载入

写一段简短的程序,通过遍历前面所列出的与gutenberg文体标识符相应的fileid(文件标识符),然后统计每个文本:

import nltk
from nltk.corpus import gutenberg 
for fileid in gutenberg.fileids():
num_chars=len(gutenberg.raw(fileid))  ###统计字符数
num_words=len(gutenberg.words(fileid))  ##统计单词书
num_sent=len(gutenberg.sents(fileid))  ###统计句子数
num_vocab=len(set([w.lower() for w in gutenberg.words(fileid)]))  ###唯一化单词
#统计平均词长、平均句子长度和本文中每个词出现的平均次数
  print(int(num_chars/num_words),int(num_words/num_sent),int(num_words/num_vocab),fileid)
ConditionalFreqDist 条件概率分布

以一个配对链表作为输入,需要给分配的每个事件关联一个条件,输入时类似于 (条件,事件)的元组。

import nltk
from nltk.corpus import inaugural
cfd=nltk.ConditionalFreqDist((target,fileid[:4])
                            for fileid in inaugural.fileids()
                            for w in inaugural.words(fileid)
                            for target in ['american','citizen']
                            if w.lower().startswith(target) )
cfd.conditions()    #查看条件,同时条件可以直接作索引          
cfd.plot()

结果

尤其对于plot() 和 tabulate() 有了更多参数选择:

conditions:指定条件
samples:迭代器类型,指定取值范围
cumulative:设置为True可以查看累积值

几个简单文字处理函数总结

生成随机文本、生成英语单词的复数形式、过滤文本

NLTK中定义的基本语料库函数:
示例描述
fileids()语料库中的文件
fileids([categories])这些分类对应的语料库中的文件
categories()语料库中的分类
categories([fileids])这些文件对应的语料库中的分类
raw()语料库的原始内容
raw(fileids=[f1,f2,f3])指定文件的原始内容
raw(categories=[c1,c2])指定分类的原始内容
words()整个语料库中的词汇
words(fileids=[f1,f2,f3])指定文件中的词汇
words(categories=[c1,c2])指定分类中的词汇
sents()指定分类中的句子
sents(fileids=[f1,f2,f3])指定文件中的句子
sents(categories=[c1,c2])指定分类中的句子
abspath(fileid)指定文件在磁盘上的位置
encoding(fileid)文件的编码(如果知道的话)
open(fileid)打开指定语料库文件的文件流
root()到本地安装的语料库根目录的路径
NLTK 中的条件频率分布
示例描述
cfdist= ConditionalFreqDist(pairs)从配对链表中创建条件频率分布
cfdist.conditions()将条件按字母排序
cfdist[condition]此条件下的频率分布
cfdist[condition][sample]此条件下给定样本的频率
cfdist.tabulate()为条件频率分布制表
cfdist.tabulate(samples, conditions)指定样本和条件限制下制表
cfdist.plot()为条件频率分布绘图
cfdist.plot(samples, conditions)指定样本和条件限制下绘图
cfdist1 < cfdist2测试样本在 cfdist1 中出现次数是否小于在 cfdist2 中出现次数
学习NLTK常用语料库(补充中……)
语料库介绍
gutenberg古腾堡项目,包含36000+本免费电子图书
webtext网络聊天文本
brown第一个百万词级的英文电子语料库,按文本分类,用categories()查看,如新闻、小说、宗教等
reuters路透社语料库,包含10788个新闻文档,分为90个主题,按训练和测试分为两组
inaugural就职演说语料库,文件名包含年代和总统名
udhr世界人权宣言语料库,文件名包含字符编码信息
words词汇语料库,用来进行拼写检查,含大写字母
stopwords停用词语料库
cmudict美国CMU发音词典,为语音合成而设计,entries()包含(词语,发音),dict()[词语]来查词典。
swadesh比较词表,包含多种语言的约200个常用词列表,entries([fileid1,fileid2,…])访问多语言中的同源词,dict
toolbox工具箱,每个条目包含[(word,[(属性,值)…])]
wordnet面向语义的英语词典,包含155287个单词和117659个同义词,lemmas得到指定同义词集的所有词条,lemma查找特定的词条,synsets得到一个词条所对应的同义词集,hyponyms()下位词,hypernyms()上位词
movie_reviews电影评论语料库,每个评论归类为正面或负面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值