nltkGetTextVocabulary - juedaiyuer/researchNote GitHub Wiki
获取文本语料和词汇资源
1. 古腾堡语料库
下载管理
>>> import nltk
>>> nltk.download()
>>> 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