NLTK 需要 Python 版本 3.7、3.8、3.9 或 3.10
对于 Windows 用户,强烈建议您阅读本指南以成功安装 Python 3 Installing Python 3 on Windows — The Hitchhiker's Guide to Python
请阅读本指南以了解如何在安装 NLTK 之前管理您的虚拟环境管理器, https: //docs.python-guide.org/dev/virtualenvs/
或者,您可以使用“包含电池”的 Anaconda 分发安装程序Anaconda | Anaconda Distribution
安装 NLTK:运行pip install --user -U nltk
安装 Numpy(可选):运行pip install --user -U numpy
测试安装:运行python
然后输入import nltk
对于旧版本的 Python,可能需要安装 setuptools(请参阅setuptools · PyPI)并安装 pip ( )。sudo easy_install pip
这些说明假定您的机器上尚未安装 Python。
安装 Python 3.8:https ://www.python.org/downloads/ (避免使用 64 位版本)
安装 Numpy(可选):https ://www.scipy.org/scipylib/download.html
安装 NLTK:https ://pypi.python.org/pypi/nltk
测试安装:Start>Python38
,然后输入import nltk
请参阅:https ://github.com/nltk/nltk/wiki/Installing-Third-Party-Software
安装 NLTK 包后,请安装必要的数据集/模型以使特定功能正常工作。
如果您不确定需要哪些数据集/模型,您可以在命令行类型或 Python 解释器中安装“流行”的 NLTK 数据子集python -m nltk.downloader popular
import nltk; nltk.download('popular')
有关详细信息,请参阅NLTK :: Installing NLTK Data
NLTK 是用于构建 Python 程序以处理人类语言数据的领先平台。它为超过 50 个语料库和词汇资源(如 WordNet)提供易于使用的接口,以及一套用于分类、标记化、词干提取、标记、解析和语义推理的文本处理库,工业级 NLP 库的包装器,和一个活跃的讨论论坛。
得益于介绍编程基础知识和计算语言学主题的实践指南,以及全面的 API 文档,NLTK 适合语言学家、工程师、学生、教育工作者、研究人员和行业用户。NLTK 适用于 Windows、Mac OS X 和 Linux。最重要的是,NLTK 是一个免费、开源、社区驱动的项目。
NLTK 被称为“使用 Python 进行计算语言学教学和工作的绝佳工具”和“使用自然语言的惊人库”。
使用 Python 进行自然语言处理提供了对语言处理编程的实用介绍。它由 NLTK 的创建者编写,引导读者了解编写 Python 程序、使用语料库、对文本进行分类、分析语言结构等的基础知识。本书的在线版本已针对 Python 3 和 NLTK 3 进行了更新。(原始 Python 2 版本仍可在https://www.nltk.org/book_1ed获得。)
对于多用户计算机上的集中安装,请从管理员帐户执行以下操作。
运行 Python 解释器并输入命令:
import nltk
nltk.download()
应打开一个新窗口,显示 NLTK 下载器。单击文件菜单并选择更改下载目录。对于集中安装,将其设置为C:\nltk_data
(Windows)、/usr/local/share/nltk_data
(Mac) 或/usr/share/nltk_data
(Unix)。接下来,选择要下载的包或集合。
如果您没有将数据安装到上述中心位置之一,则需要设置NLTK_DATA
环境变量以指定数据的位置。(在 Windows 机器上,右键单击“我的电脑”,然后选择)Properties > Advanced > Environment Variables > User Variables > New...
测试数据是否已经安装如下。(假设您下载了布朗语料库):
from nltk.corpus import brown
brown.words()
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]
如果您的网络连接使用代理服务器,您应该按如下方式指定代理地址。如果是身份验证代理,请指定用户名和密码。如果代理设置为无,则此函数将尝试检测系统代理。
nltk.set_proxy('http://proxy.example.com:3128', ('USERNAME', 'PASSWORD'))
nltk.download()
下载器将搜索现有nltk_data
目录来安装 NLTK 数据。如果不存在,它将尝试在中心位置(使用管理员帐户时)或在用户的文件空间中创建一个。如有必要,请从管理员帐户或使用 sudo 运行下载命令。推荐的系统位置是C:\nltk_data
(Windows);/usr/local/share/nltk_data
(苹果电脑); 和/usr/share/nltk_data
(Unix)。您可以使用该-d
标志来指定不同的位置(但如果您这样做,请务必NLTK_DATA
相应地设置环境变量)。
运行命令。要确保集中安装,请运行命令。python -m nltk.downloader allsudo python -m nltk.downloader -d /usr/local/share/nltk_data all
Windows:使用“开始”菜单上的“运行...”选项。Windows Vista 用户需要先打开此选项,使用勾选框来激活“运行...”选项。Start -> Properties -> Customize
测试安装:通过登录用户帐户、启动 Python 解释器并访问 Brown Corpus(参见上一节)来检查用户环境和权限是否设置正确。
创建一个文件夹,nltk_data
例如,C:\nltk_data
或/usr/local/share/nltk_data
,和子文件夹,,,,,,,,,,,,,。 chunkers
grammars
misc
sentiment
taggers
corpora
help
models
stemmers
tokenizers
从下载单个包https://www.nltk.org/nltk_data/
(请参阅“下载”链接)。将它们解压缩到相应的子文件夹。例如,位于:的布朗语料库 https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/corpora/brown.zip
将被解压缩为nltk_data/corpora/brown
.
将您的NLTK_DATA
环境变量设置为指向您的顶级nltk_data
文件夹。
自然语言工具包是在不断发展的,随着人们贡献代码而不断扩大。NLP 和语言学的一些领域(还)没有得到 NLTK 很好的支持,特别欢迎在这些领域的贡献。有关这本书的出版之后的开发新闻,请查阅http://nltk.org/
。
音韵学和形态学: | 研究声音模式和文字结构的计算方法,通常用一个有限状态机工具包。如不规则词形变化和非拼接形态这样的现象使用我们一直在学习的字符串处理方法很难解决。该技术面临的挑战不仅仅是连接 NLTK 到一个高性能的有限状态机工具包,而且要避免词典数据的重复以及链接形态分析器和语法分析器所需形态学特征。 |
---|---|
高性能模块: | 一些 NLP 任务的计算量太大,使纯 Python 实现不可行。然而,在某些情况下,耗时只出现在训练模型期间,不是在标注输入期间使用它们。NLTK 中的包系统提供了一个方便的方式来发布训练好的模型,即使那些使用不能随意发布的语料库训练的模型。替代方法是开发高性能的机器学习工具的 Python 接口,或通过使用类似与 MapReduce 的并行编程技术扩展 Python 的能力。 |
词汇语义学: | 这是一个充满活力的领域,目前的研究大多围绕词典、本体、多词表达式等的继承模型,大都在现在的 NLTK 的范围之外。一个保守的目标是从丰富的外部存储获得词汇信息,以支持词义消歧、解析和语义解释等任务。 |
自然语言生成: | 从含义的内在表示生产连贯的文本是 NLP 的重要组成部分;用于 NLP 的基于归一的方法已经在 NLTK 中开发,在这一领域做出更大的贡献还有限制。 |
语言实地调查: | 语言学家面临的一个重大挑战是记录数以千计的濒危语言,这项工作产生大量异构且快速变化的数据。更多的实地调查的数据格式,包括行间的文本格式和词汇交换格式,在 NLTK 中得到支持,帮助语言学家维护和分析这些数据,解放他们,使他们能在数据提炼中花费尽可能多的时间。 |
其他语言: | 对英语以外的语言的 NLP 改进支持包括两方面的工作:获准发布更多 NLTK 中的收集的语料库;写特定语言的 HOWTO 文件发布到http://nltk.org/howto ,说明 NLTK 中的使用,讨论语言相关的 NLP 问题,包括字符编码、分词、形态。一个特定语言专长的 NLP 研究人员可以安排翻译这本书,并在 NLTK 的网站上保存一个副本;这将不仅仅是翻译讨论的内容,而要使用目标语言的数据提供等效的可行的例子,一项不平凡的事业。 |
NLTK-Contrib: | 许多 NLTK 中的核心组件都由 NLP 社区成员贡献,它们最初被安置在 NLTK 中的“Contrib”包,nltk_contrib 。对添加到这个包中的软件的唯一要求是它必须用 Python 编写,与 NLP 有关,并给予与 NLTK 中其他软件一样的开源许可。不完善的软件也是值得欢迎的,随着时间的推移可能会被 NLP 社区的其他成员改进。 |
教材: | 从 NLTK 开发的最初起,教材一直伴随着软件逐渐扩大填补这本书,也加上大量的网上材料。我们希望弄清楚提供这些材料包括:幻灯片、习题集、解答集、我们所覆盖的主题更详细的理解的教员的名字,并通知作者,我们可以为他们在http://nltk.org/ 上做链接。具有特殊价值的材料,帮助 NLP 成为计算机科学和语言学系的本科主流课程,或者使 NLP 在二级本科课程中可以获得,在那里对语言、文学、计算机科学以及信息技术课程中的计算内容有明显的限制。 |
只是一个工具包: | 在序言中已经指出,NLTK 是一个工具包,而不是一个系统。在 NLTK、Python、其他 Python 库、外部 NLP 的工具和格式的接口集成中会有很多问题需要解决。 |
a | b | c | d | f | g | h | i | j | l | m | n | p | s | t | u | w
a | ||
nltk.app | ||
nltk.app.chartparser_app | ||
nltk.app.chunkparser_app | ||
nltk.app.collocations_app | ||
nltk.app.concordance_app | ||
nltk.app.nemo_app | ||
nltk.app.rdparser_app | ||
nltk.app.srparser_app | ||
nltk.app.wordfreq_app | ||
nltk.app.wordnet_app | ||
b | ||
nltk.book | ||
c | ||
nltk.ccg | ||
nltk.ccg.api | ||
nltk.ccg.chart | ||
nltk.ccg.combinator | ||
nltk.ccg.lexicon | ||
nltk.ccg.logic | ||
nltk.chat | ||
nltk.chat.eliza | ||
nltk.chat.iesha | ||
nltk.chat.rude | ||
nltk.chat.suntsu | ||
nltk.chat.util | ||
nltk.chat.zen | ||
nltk.chunk | ||
nltk.chunk.api | ||
nltk.chunk.named_entity | ||
nltk.chunk.regexp | ||
nltk.chunk.util | ||
nltk.classify | ||
nltk.classify.api | ||
nltk.classify.decisiontree | ||
nltk.classify.maxent | ||
nltk.classify.megam | ||
nltk.classify.naivebayes | ||
nltk.classify.positivenaivebayes | ||
nltk.classify.rte_classify | ||
nltk.classify.scikitlearn | ||
nltk.classify.senna | ||
nltk.classify.svm | ||
nltk.classify.tadm | ||
nltk.classify.textcat | ||
nltk.classify.util | ||
nltk.classify.weka | ||
nltk.cli | ||
nltk.cluster | ||
nltk.cluster.api | ||
nltk.cluster.em | ||
nltk.cluster.gaac | ||
nltk.cluster.kmeans | ||
nltk.cluster.util | ||
nltk.collections | ||
nltk.collocations | ||
nltk.compat | ||
nltk.corpus | ||
nltk.corpus.europarl_raw | ||
nltk.corpus.reader | ||
nltk.corpus.reader.aligned | ||
nltk.corpus.reader.api | ||
nltk.corpus.reader.bnc | ||
nltk.corpus.reader.bracket_parse | ||
nltk.corpus.reader.categorized_sents | ||
nltk.corpus.reader.chasen | ||
nltk.corpus.reader.childes | ||
nltk.corpus.reader.chunked | ||
nltk.corpus.reader.cmudict | ||
nltk.corpus.reader.comparative_sents | ||
nltk.corpus.reader.conll | ||
nltk.corpus.reader.crubadan | ||
nltk.corpus.reader.dependency | ||
nltk.corpus.reader.framenet | ||
nltk.corpus.reader.ieer | ||
nltk.corpus.reader.indian | ||
nltk.corpus.reader.ipipan | ||
nltk.corpus.reader.knbc | ||
nltk.corpus.reader.lin | ||
nltk.corpus.reader.mte | ||
nltk.corpus.reader.nkjp | ||
nltk.corpus.reader.nombank | ||
nltk.corpus.reader.nps_chat | ||
nltk.corpus.reader.opinion_lexicon | ||
nltk.corpus.reader.panlex_lite | ||
nltk.corpus.reader.panlex_swadesh | ||
nltk.corpus.reader.pl196x | ||
nltk.corpus.reader.plaintext | ||
nltk.corpus.reader.ppattach | ||
nltk.corpus.reader.propbank | ||
nltk.corpus.reader.pros_cons | ||
nltk.corpus.reader.reviews | ||
nltk.corpus.reader.rte | ||
nltk.corpus.reader.semcor | ||
nltk.corpus.reader.senseval | ||
nltk.corpus.reader.sentiwordnet | ||
nltk.corpus.reader.sinica_treebank | ||
nltk.corpus.reader.string_category | ||
nltk.corpus.reader.switchboard | ||
nltk.corpus.reader.tagged | ||
nltk.corpus.reader.timit | ||
nltk.corpus.reader.toolbox | ||
nltk.corpus.reader.twitter | ||
nltk.corpus.reader.udhr | ||
nltk.corpus.reader.util | ||
nltk.corpus.reader.verbnet | ||
nltk.corpus.reader.wordlist | ||
nltk.corpus.reader.wordnet | ||
nltk.corpus.reader.xmldocs | ||
nltk.corpus.reader.ycoe | ||
nltk.corpus.util | ||
d | ||
nltk.data | ||
nltk.decorators | ||
nltk.downloader | ||
nltk.draw | ||
nltk.draw.cfg | ||
nltk.draw.dispersion | ||
nltk.draw.table | ||
nltk.draw.tree | ||
nltk.draw.util | ||
f | ||
nltk.featstruct | ||
g | ||
nltk.grammar | ||
h | ||
nltk.help | ||
i | ||
nltk.inference | ||
nltk.inference.api | ||
nltk.inference.discourse | ||
nltk.inference.mace | ||
nltk.inference.nonmonotonic | ||
nltk.inference.prover9 | ||
nltk.inference.resolution | ||
nltk.inference.tableau | ||
nltk.internals | ||
j | ||
nltk.jsontags | ||
l | ||
nltk.lazyimport | ||
nltk.lm | ||
nltk.lm.api | ||
nltk.lm.counter | ||
nltk.lm.models | ||
nltk.lm.preprocessing | ||
nltk.lm.smoothing | ||
nltk.lm.util | ||
nltk.lm.vocabulary | ||
m | ||
nltk.metrics | ||
nltk.metrics.agreement | ||
nltk.metrics.aline | ||
nltk.metrics.association | ||
nltk.metrics.confusionmatrix | ||
nltk.metrics.distance | ||
nltk.metrics.paice | ||
nltk.metrics.scores | ||
nltk.metrics.segmentation | ||
nltk.metrics.spearman | ||
nltk.misc | ||
nltk.misc.babelfish | ||
nltk.misc.chomsky | ||
nltk.misc.minimalset | ||
nltk.misc.sort | ||
nltk.misc.wordfinder | ||
n | ||
nltk | ||
p | ||
nltk.parse | ||
nltk.parse.api | ||
nltk.parse.bllip | ||
nltk.parse.chart | ||
nltk.parse.corenlp | ||
nltk.parse.dependencygraph | ||
nltk.parse.earleychart | ||
nltk.parse.evaluate | ||
nltk.parse.featurechart | ||
nltk.parse.generate | ||
nltk.parse.malt | ||
nltk.parse.nonprojectivedependencyparser | ||
nltk.parse.pchart | ||
nltk.parse.projectivedependencyparser | ||
nltk.parse.recursivedescent | ||
nltk.parse.shiftreduce | ||
nltk.parse.stanford | ||
nltk.parse.transitionparser | ||
nltk.parse.util | ||
nltk.parse.viterbi | ||
nltk.probability | ||
s | ||
nltk.sem | ||
nltk.sem.boxer | ||
nltk.sem.chat80 | ||
nltk.sem.cooper_storage | ||
nltk.sem.drt | ||
nltk.sem.drt_glue_demo | ||
nltk.sem.evaluate | ||
nltk.sem.glue | ||
nltk.sem.hole | ||
nltk.sem.lfg | ||
nltk.sem.linearlogic | ||
nltk.sem.logic | ||
nltk.sem.relextract | ||
nltk.sem.skolemize | ||
nltk.sem.util | ||
nltk.sentiment | ||
nltk.sentiment.sentiment_analyzer | ||
nltk.sentiment.util | ||
nltk.sentiment.vader | ||
nltk.stem | ||
nltk.stem.api | ||
nltk.stem.arlstem | ||
nltk.stem.arlstem2 | ||
nltk.stem.cistem | ||
nltk.stem.isri | ||
nltk.stem.lancaster | ||
nltk.stem.porter | ||
nltk.stem.regexp | ||
nltk.stem.rslp | ||
nltk.stem.snowball | ||
nltk.stem.util | ||
nltk.stem.wordnet | ||
t | ||
nltk.tag | ||
nltk.tag.api | ||
nltk.tag.brill | ||
nltk.tag.brill_trainer | ||
nltk.tag.crf | ||
nltk.tag.hmm | ||
nltk.tag.hunpos | ||
nltk.tag.mapping | ||
nltk.tag.perceptron | ||
nltk.tag.senna | ||
nltk.tag.sequential | ||
nltk.tag.stanford | ||
nltk.tag.tnt | ||
nltk.tag.util | ||
nltk.tbl | ||
nltk.tbl.demo | ||
nltk.tbl.erroranalysis | ||
nltk.tbl.feature | ||
nltk.tbl.rule | ||
nltk.tbl.template | ||
nltk.test | ||
nltk.test.all | ||
nltk.test.childes_fixt | ||
nltk.test.classify_fixt | ||
nltk.test.conftest | ||
nltk.test.discourse_fixt | ||
nltk.test.gensim_fixt | ||
nltk.test.gluesemantics_malt_fixt | ||
nltk.test.inference_fixt | ||
nltk.test.nonmonotonic_fixt | ||
nltk.test.portuguese_en_fixt | ||
nltk.test.probability_fixt | ||
nltk.test.unit | ||
nltk.test.unit.lm | ||
nltk.test.unit.lm.test_counter | ||
nltk.test.unit.lm.test_models | ||
nltk.test.unit.lm.test_preprocessing | ||
nltk.test.unit.lm.test_vocabulary | ||
nltk.test.unit.test_aline | ||
nltk.test.unit.test_bllip | ||
nltk.test.unit.test_brill | ||
nltk.test.unit.test_cfd_mutation | ||
nltk.test.unit.test_cfg2chomsky | ||
nltk.test.unit.test_chunk | ||
nltk.test.unit.test_classify | ||
nltk.test.unit.test_collocations | ||
nltk.test.unit.test_concordance | ||
nltk.test.unit.test_corenlp | ||
nltk.test.unit.test_corpora | ||
nltk.test.unit.test_corpus_views | ||
nltk.test.unit.test_data | ||
nltk.test.unit.test_disagreement | ||
nltk.test.unit.test_distance | ||
nltk.test.unit.test_downloader | ||
nltk.test.unit.test_freqdist | ||
nltk.test.unit.test_hmm | ||
nltk.test.unit.test_json2csv_corpus | ||
nltk.test.unit.test_json_serialization | ||
nltk.test.unit.test_metrics | ||
nltk.test.unit.test_naivebayes | ||
nltk.test.unit.test_nombank | ||
nltk.test.unit.test_pl196x | ||
nltk.test.unit.test_pos_tag | ||
nltk.test.unit.test_ribes | ||
nltk.test.unit.test_rte_classify | ||
nltk.test.unit.test_seekable_unicode_stream_reader | ||
nltk.test.unit.test_senna | ||
nltk.test.unit.test_stem | ||
nltk.test.unit.test_tag | ||
nltk.test.unit.test_tgrep | ||
nltk.test.unit.test_tokenize | ||
nltk.test.unit.test_twitter_auth | ||
nltk.test.unit.test_util | ||
nltk.test.unit.test_wordnet | ||
nltk.test.unit.translate | ||
nltk.test.unit.translate.test_bleu | ||
nltk.test.unit.translate.test_gdfa | ||
nltk.test.unit.translate.test_ibm1 | ||
nltk.test.unit.translate.test_ibm2 | ||
nltk.test.unit.translate.test_ibm3 | ||
nltk.test.unit.translate.test_ibm4 | ||
nltk.test.unit.translate.test_ibm5 | ||
nltk.test.unit.translate.test_ibm_model | ||
nltk.test.unit.translate.test_meteor | ||
nltk.test.unit.translate.test_nist | ||
nltk.test.unit.translate.test_stack_decoder | ||
nltk.text | ||
nltk.tgrep | ||
nltk.tokenize | ||
nltk.tokenize.api | ||
nltk.tokenize.casual | ||
nltk.tokenize.destructive | ||
nltk.tokenize.legality_principle | ||
nltk.tokenize.mwe | ||
nltk.tokenize.nist | ||
nltk.tokenize.punkt | ||
nltk.tokenize.regexp | ||
nltk.tokenize.repp | ||
nltk.tokenize.sexpr | ||
nltk.tokenize.simple | ||
nltk.tokenize.sonority_sequencing | ||
nltk.tokenize.stanford | ||
nltk.tokenize.stanford_segmenter | ||
nltk.tokenize.texttiling | ||
nltk.tokenize.toktok | ||
nltk.tokenize.treebank | ||
nltk.tokenize.util | ||
nltk.toolbox | ||
nltk.translate | ||
nltk.translate.api | ||
nltk.translate.bleu_score | ||
nltk.translate.chrf_score | ||
nltk.translate.gale_church | ||
nltk.translate.gdfa | ||
nltk.translate.gleu_score | ||
nltk.translate.ibm1 | ||
nltk.translate.ibm2 | ||
nltk.translate.ibm3 | ||
nltk.translate.ibm4 | ||
nltk.translate.ibm5 | ||
nltk.translate.ibm_model | ||
nltk.translate.meteor_score | ||
nltk.translate.metrics | ||
nltk.translate.nist_score | ||
nltk.translate.phrase_based | ||
nltk.translate.ribes_score | ||
nltk.translate.stack_decoder | ||
nltk.tree | ||
nltk.tree.immutable | ||
nltk.tree.parented | ||
nltk.tree.parsing | ||
nltk.tree.prettyprinter | ||
nltk.tree.probabilistic | ||
nltk.tree.transforms | ||
nltk.tree.tree | ||
nltk.treeprettyprinter | ||
nltk.treetransforms | ||
nltk.twitter | ||
nltk.twitter.api | ||
nltk.twitter.common | ||
nltk.twitter.twitter_demo | ||
nltk.twitter.twitterclient | ||
nltk.twitter.util | ||
u | ||
nltk.util | ||
w | ||
nltk.wsd |