文章目录
1、介绍
【官网】Natural Language Toolkit — NLTK 3.4.4 documentation
【github】NLTK Source
NLTK最初成立于2001年,是宾夕法尼亚大学计算机与信息科学系计算语言学课程的一部分。从那时起,它已经在数十个贡献者的帮助下得到了发展和扩展。它现已在数十所大学的课程中采用,并作为许多研究项目的基础。
NLTK(Natural Language Toolkit)
是构建Python程序以使用人类语言数据的领先平台。它为50多种语料库和词汇资源(如WordNet)提供了易于使用的界面,还提供了一套用于分类,标记化,词干化,标记,解析和语义推理的文本处理库,用于工业级NLP库的包装器。
NLTK适用于语言学家,工程师,学生,教育工作者,研究人员和行业用户等。NLTK适用于Windows,Mac OS X和Linux。最重要的是,NLTK是一个免费的,开源的,社区驱动的项目。
NLTK被称为“使用Python进行教学和计算语言学工作的绝佳工具”,以及“用自然语言进行游戏的神奇图书馆”。
语言处理任务和相应的NLTK模块以及功能示例:
语言处理任务 | NLTK 模块 | 功能 |
---|---|---|
Accessing corpora | corpus | standardized interfaces to corpora and lexicons |
String processing | tokenize, stem | tokenizers, sentence tokenizers, stemmers |
Collocation discovery | collocations | t-test, chi-squared, point-wise mutual information |
Part-of-speech tagging | tag | n-gram, backoff, Brill, HMM, TnT |
Machine learning | classify, cluster, tbl | decision tree, maximum entropy, naive Bayes, EM, k-means |
Chunking chunk | regular | expression, n-gram, named-entity |
Parsing | parse, ccg | chart, feature-based, unification, probabilistic, dependency |
Semantic interpretation | sem, inference | lambda calculus, first-order logic, model checking |
Evaluation metrics | metrics | precision, recall, agreement coefficients |
Probability and estimation | probability | frequency distributions, smoothed probability distributions |
Applications | app, chat | graphical concordancer, parsers, WordNet browser, chatbots |
Linguistic fieldwork | toolbox | manipulate data in SIL Toolbox format |
NLTK设计目标:
- 简单性
- 一致性
- 可扩展性
- 模块化
2、安装
NLTK支持Python 2.7, 3.5, 3.6, 3.7,对于windows用户强烈推荐Python3版本。
对于Unix系统
2.1 安装NLTK
pip install --user -U nltk
测试是否安装:
import nltk
2.2 安装NLTK Data
安装NLTK软件包后,请安装必要的数据集/模型以使特定功能正常工作。
如果您不确定需要哪些数据集/模型,可以在命令行类型python -m nltk.downloader
上安装“popular”
的NLTK数据子集,或者在Python解释器里通过如下命令安装
import nltk
nltk.download(“popular”)
NLTK附带了许多语料库,玩具语法,训练模型等。完整列表发布在:nltk_data
除了单独的数据包,您可以下载整个集合(使用“all”),或者只下载书中示例和练习所需的数据(使用“book”),或者只下载语料库,无需语法或训练模型(使用“all-corpora”)。
交互式安装
使用如下代码:
>>> import nltk
>>> nltk.download()
会打开一个新窗口,显示NLTK Downloader
。单击“文件”菜单,然后选择“更改下载目录”。对于集中安装,请将其设置为C:\ nltk_data(Windows),/ usr / local / share / nltk_data(Mac)或/ usr / share / nltk_data(Unix)
。接下来,选择要下载的包或集合。
如果未将数据安装到上述中心位置之一,则需要设置NLTK_DATA
环境变量以指定数据的位置。(在Windows计算机上,右键单击“我的电脑”,然后选择“属性”>“高级”>“环境变量”>“用户变量”>“新建…”)
通过代理Web服务器安装
如果您的Web连接使用代理服务器,则应指定代理地址,如下所示。如果是身份验证代理,请指定用户名和密码。如果代理设置为None,则此函数将尝试检测系统代理。
>>> 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(Mac);和/usr/share/nltk_data(Unix)
。您可以使用-d
标志指定其他位置(但如果执行此操作,请确保相应地设置NLTK_DATA环境变量)。
安装命令行:
python -m nltk.downloader all
central installation
sudo python -m nltk.downloader -d /usr/local/share/nltk_data all.
手动安装
创建一个文件夹nltk_data
,比如 C:\nltk_data
, 或者/usr/local/share/nltk_data
, 以及子文件夹chunkers, grammars, misc, sentiment, taggers, corpora, help, models, stemmers, tokenizers
.
从nltk_data下载对应的包,解压至对应文件夹。
将NLTK_DATA
环境变量设置为指向顶级nltk_data
文件夹。
3、Demo
分词、词性标注
>>> import nltk
>>> sentence = """At eight o'clock on Thursday morning
... Arthur didn't feel very good."""
>>> tokens = nltk.word_tokenize(sentence)
>>> tokens
['At', 'eight', "o'clock", 'on', 'Thursday', 'morning',
'Arthur', 'did', "n't", 'feel', 'very', 'good', '.']
>>> tagged = nltk.pos_tag(tokens)
>>> tagged[0:6]
[('At', 'IN'), ('eight', 'CD'), ("o'clock", 'JJ'), ('on', 'IN'),
('Thursday', 'NNP')