自然语言处理——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文本语料库的主要内容,如果未能解决你的问题,请参考以下文章