nltkGetTextVocabulary - juedaiyuer/researchNote GitHub Wiki

获取文本语料和词汇资源

1. 古腾堡语料库

下载管理

>>> import nltk
>>> nltk.download()

nltk/Screenshot%20from%202017-04-22%2011:17:23.png

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

>>> emma = nltk.corpus.gutenberg.words('austen-emma.txt')
>>> len(emma)
192427

处理索引

>>> emma = nltk.Text(nltk.corpus.gutenberg.words('austen-emma.txt'))
>>> emma.concordance("surprize")

搜索文本concordance(word),该方法接受一个单词字符串,会打印输入单词在文本中出现的上下文,查看单词的上下文可以帮助我们了解单词的词性。

另外的导入方法

>>> from nltk.corpus import gutenberg
>>> gutenberg.fileids()

一段代码

>>> for fileid in gutenberg.fileids():
...     print fileid
... 
austen-emma.txt
austen-persuasion.txt
austen-sense.txt
bible-kjv.txt
blake-poems.txt
bryant-stories.txt
burgess-busterbrown.txt
carroll-alice.txt
chesterton-ball.txt
chesterton-brown.txt
chesterton-thursday.txt
edgeworth-parents.txt
melville-moby_dick.txt
milton-paradise.txt
shakespeare-caesar.txt
shakespeare-hamlet.txt
shakespeare-macbeth.txt
whitman-leaves.txt

raw()函数给我们没有进行过任何语言学处理的文件的内容。

文本中出现的词汇个数,包括词之间的空格

len(gutenberg.raw('austen-emma.txt'))

2. 网络和聊天文本

webtext语料库

3. 布朗语料库

布朗语料库是一个研究文体之间的系统性差异,一种叫做文体学的语言学研究,很方便的资源

指定特定的类别或文件阅读

>>> from nltk.corpus import brown
>>> brown.categories()
[u'adventure', u'belles_lettres', u'editorial', u'fiction', u'government', u'hobbies', u'humor', u'learned', u'lore', u'mystery', u'news', u'religion', u'reviews', u'romance', u'science_fiction']
>>> brown.words(categories='news')
[u'The', u'Fulton', u'County', u'Grand', u'Jury', ...]

查看fileids,未粘贴出运行结果,可以任意选择结果中的一个

>>> brown.fileids()
>>> brown.words(fileids=['cg22'])
[u'Does', u'our', u'society', u'have', u'a', ...]

中文语料库

安装sinica_treebank语料库,同上步骤,这里没有显示中文

>>> from nltk.corpus import sinica_treebank
>>> print(sinica_treebank.words())
[u'\u4e00', u'\u53cb\u60c5', u'\u5609\u73cd', ...]

查看一下中文语法树

>>> sinica_treebank.parsed_sents()[33].draw()

搜索中文文本

载入自己的语料库

文本语料库的结构

source

  • 用Python进行自然语言处理(中文).pdf