自然语言处理 之 语料库相关(三)
一:针对nltk语料库的相关处理函数
1 、导入语料库的方法
1)一步到位导入语料库 如:导入gutenberg的语料库
nltk.corpus.gutenberg.fileids()
2)为避免1)中的过场语句,可以分开导入,如下:
from nltk.corpus import gutenberg
读取文件:gutenberg.fileids()
读取语料库中的单词:gutenberg.words()
注意,这里读取语料库的词或者是文件名也好,最终返回的结果是列表的形式,如果想要使用之前我的博客 自然语言处理(1)中针对文本的相关函数呢,这里是不可以直接使用的,需要用函数nltk.Text()将读取的单词转换成文本。如下:
import nltk
from nltk.corpus import gutenberg
gutenberg.fileids()
words=nltk.Text(gutenberg.words('austen-emma.txt'))
words.concordance('by') #查询单词by
2、针对对语料库的一些基本处理函数:查找文件、分类以及字词句等
语料库中包含不同种类(category)、不同文件(fileids)的文本资源。在介绍nltk语料库之前,先对语料库的一些基本处理函数做一个简单的介绍。共17个函数,如下图:
乍一看,似乎很难记忆,其实仔细分析就会很好记:
针对语料库有不同文件和种类,怎么查找不同种类中下的件以及不同文件的指定分类,由此产生前4个函数;
语料库即文章,是由字、词、句组成,针对如何查看整个语料库、指定文件以及指定分类中的字词句,由此产生中间9个函数;
最后四个函数涉及到语料库所在文件的路径问题。
注意:这里raw()函数是查看的语料库中的一个个字符,包括字母、空格以及标点符号。
示例:查找gutenberg中每个文件的字词句长度:
for file in gutenberg.fileids():
#文件名的长度
num_name=len(file)
#每个file的字词句长度
num_raw=len(gutenberg.raw(file))
#每个file的词的长度
num_words=len(gutenberg.words(file))
#每个句子的长度
num_sents=len(gutenberg.sents(file))
二、相关语料库:
相关语料库有:古登堡语料库、布朗语料库、聊天文本语料库、路透社语料库、就职演讲语料库等。
古登堡语料库:简单的文本集合,是离散的语料库。
布朗语料库:将语料分成不同种类的形式。比如:新闻、宗教类等等。
路透社语料库:一个语料库与多个种类是重叠的。
就职演讲语料库是按照时间顺序分类的。
利用条件词频分布可以查看不同种类中单词的使用情况,如下:
cfd=nltk.ConditionalFreqDist(
(genre,word)
for genre in brown.categories()
for word in brown.words(categories=genre))
genres=['news','religion','hobbies','science_fiction','romance','humor']
modal=['can','could','may','might','must','will']
cfd.tabulate(conditions=genres,samples=modal)
运行结果如下:
三、制作、加载自己的语料库
该部分目前还没学,最终肯定是要回归到自己的语料库,所以以后要学。