NLTK(自然语言工具包)

安装 NLTK

NLTK 需要 Python 版本 3.7、3.8、3.9 或 3.10

对于 Windows 用户,强烈建议您阅读本指南以成功安装 Python 3 Installing Python 3 on Windows — The Hitchhiker's Guide to Python

设置 Python 环境 (Mac/Unix/Windows)

请阅读本指南以了解如何在安装 NLTK 之前管理您的虚拟环境管理器, https: //docs.python-guide.org/dev/virtualenvs/

或者,您可以使用“包含电池”的 Anaconda 分发安装程序Anaconda | Anaconda Distribution

Mac/Unix

  1. 安装 NLTK:运行pip install --user -U nltk

  2. 安装 Numpy(可选):运行pip install --user -U numpy

  3. 测试安装:运行python然后输入import nltk

对于旧版本的 Python,可能需要安装 setuptools(请参阅setuptools · PyPI)并安装 pip ( )。sudo easy_install pip

视窗

这些说明假定您的机器上尚未安装 Python。

32位二进制安装

  1. 安装 Python 3.8:https ://www.python.org/downloads/ (避免使用 64 位版本)

  2. 安装 Numpy(可选):https ://www.scipy.org/scipylib/download.html

  3. 安装 NLTK:https ://pypi.python.org/pypi/nltk

  4. 测试安装:Start>Python38,然后输入import nltk

安装第三方软件

请参阅:https ://github.com/nltk/nltk/wiki/Installing-Third-Party-Software

安装 NLTK 数据

安装 NLTK 包后,请安装必要的数据集/模型以使特定功能正常工作。

如果您不确定需要哪些数据集/模型,您可以在命令行类型或 Python 解释器中安装“流行”的 NLTK 数据子集python -m nltk.downloader popularimport 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', ...]

通过代理 Web 服务器安装

如果您的网络连接使用代理服务器,您应该按如下方式指定代理地址。如果是身份验证代理,请指定用户名和密码。如果代理设置为无,则此函数将尝试检测系统代理。

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文件夹。

NLTK 路线图

自然语言工具包是在不断发展的,随着人们贡献代码而不断扩大。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 的工具和格式的接口集成中会有很多问题需要解决。

 NLTK 模块的示例用法

Python 模块索引 

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

 

  • 3
    点赞
  • 9
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论

打赏作者

Sonhhxg_柒

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值