自然语言处理——NLTK文本语料库

Posted 波比12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言处理——NLTK文本语料库相关的知识,希望对你有一定的参考价值。

1.获取文本语料库

NLTK库中包含了大量的语料库,下面一一介绍几个:

(1)古腾堡语料库:NLTK包含古腾堡项目电子文本档案的一小部分文本。该项目目前大约有36000本免费的电子图书。

>>>import nltk
>>>nltk.corpus.gutenberg.fileids()
[‘austen-emma.txt‘,‘austen-persuasion.txt‘ ‘austen-sense.txt‘, ‘bible-kjv.txt‘, ‘blake-poems.txt‘,‘bryant-stories.txt‘,‘burgess-busterbrown.tx‘carroll-alice.txt‘, ‘chesterton-ball.txt‘,‘chesterton-brown.txt‘,‘chesterton-thursday.tx‘edgeworth-parents.txt‘
 ‘melville-moby_dick.txt‘milton-paradise.txt‘, ‘shakespeare-caesar.txt, ‘shakespeare-hamlet.txt, ‘shakespeare-macbeth.txt ‘whitman-leaves.txt‘]

 使用:from nltk.corpus import gutenberg

写一段简短的程序,通过遍历前面所列出的与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)

 结果为:4 24 26 austen-emma.txt
4 26 16 austen-persuasion.txt
4 28 22 austen-sense.txt
4 33 79 bible-kjv.txt
4 19 5 blake-poems.txt
4 19 14 bryant-stories.txt
4 17 12 burgess-busterbrown.txt
4 20 12 carroll-alice.txt
4 20 11 chesterton-ball.txt
4 22 11 chesterton-brown.txt
4 18 10 chesterton-thursday.txt
4 20 24 edgeworth-parents.txt
4 25 15 melville-moby_dick.txt
4 52 10 milton-paradise.txt
4 11 8 shakespeare-caesar.txt
4 12 7 shakespeare-hamlet.txt
4 12 6 shakespeare-macbeth.txt
4 36 12 whitman-leaves.txt

这个结果显示了每个文本的3个统计量:平局词长,平均句子长度和文本中每个词出现的平均次数。

(2)网络和聊天文本:

这部分代表的是非正式的语言

以上是关于自然语言处理——NLTK文本语料库的主要内容,如果未能解决你的问题,请参考以下文章

Python3自然语言处理——获得文本语料库和词汇资源

python 自然语言处理____获得文本语料和词汇资源

自然语言处理篇--以NLTK为基础讲解自然语?处理的原理

python 自然语言处理____词典资源

自然语言处理PJ Outline

自然语言处理3.1——从网络和硬盘访问文本