python自然语言处理入门教程(一)

来源:互联网 发布:mac怎么设置动态壁纸 编辑:程序博客网 时间:2024/05/29 00:34

1、NLTK自然语言处理工具包

1.1 NLTK简介

NLTK是构建Python程序与人类语言数据工作的主要平台。它提供了易于使用的界面,以超过50语料库和词汇资源,如WordNet的,连同一套文字处理库进行分类,标记化,词干,标记,分析和语义推理,和活跃的论坛。

得益于动手指南介绍编程基础在旁边计算语言学课题,NLTK适合语言学家,工程师,学生,教育工作者,研究人员和行业用户的一致好评。 NLTK可用于Windows,Mac OS X和Linux。最重要的是,NLTK是一个免费,开源,社区驱动的项目。


1.2 windows下NLTK环境搭建

1.2.1 python安装

官网:https://www.python.org/

选择 2.7x版本进行下载,不建议下载3.X版本,因为现在很多python代码库还是基于旧的版本编写的,所以不建议使用3.X版本。安装完成后,使用打开自带的IDLE,结果如下:


Note:

推荐编写python代码好用的IDE:pycharm,上手比较简单,文档较齐全

下载地址:http://www.jetbrains.com/pycharm/

附几个PyCharm4注册码:

name :newasp

=====LICENSE BEGIN =====

09086-12042010

00001EBwqd8wkmP2FM34Z05iXch1Ak

KI0bAod8jkIffywp2WalWZejIQ6AAu

AVVPbzHZpOvqvdJFHEBbvbXW2t1jQI

=====LICENSE END =====

 

name :newasp

=====LICENSE BEGIN =====

58877-12042010

00002h9ii68IdWfbdJz2UraWcsVxFY

!w1WD9cwRDMoW2pOUeC0WBqLAMo5PX

lQ7cE8qMukEYuWY6!EnjYWn!2EDTio

=====LICENSE END =====

 

name :newasp

=====LICENSE BEGIN =====

46753-12042010

000013xjAPHl95oQRCb"KnLsrXfWYa

L3aYClCOtBVysdtzBBPU5XCB3QUjLC

T1yMRB7YNC0d15A2cbwXTwXCwCjJEP

=====LICENSE END =====

 

name :newasp

=====LICENSE BEGIN =====

62458-12042010

00002r53OfrSCVqjsI0zdG5E4pMM5Z

dBAGbxVOX!OPwIkBqunfKf2zQDgECf

XrLosbjBEp!2JfFuydkblmqWPevvB0

===== LICENSE END =====

1.2.2 NLTK 安装

  • 下载NLTK及安装

官方网站:http://www.nltk.org/ 下载网址:https://pypi.python.org/pypi/nltk

由于是在windows环境下安装nltk,选择:

下载完成后,正常安装,在python安装目录下的能找到相应的NLTK库,作者机器路径如下:

C:\Python27\Lib\site-packages\nltk

  • 测试

安装完成后,进行测试:


  • 下载NLTK数据源

输入import nltk如果没有出现异常,则表明nltk已经安装正确,但还需要下载相应的训练数据源,使用nltk.download()进行下载:


得到结果如图:


选择all,等待下载结束即可。

Note:

  • 可能出现的问题:ImportError:No module named yaml

该问题是由于没有安装pyyaml,下载地址:http://pyyaml.org/download/pyyaml/PyYAML-3.10.win32-py2.7.exe

下载安装即可。

1.3  NLTK自带方法进行自然语言处理

1.3.1   NLTK进行分句

函数:

sent_tokenize(text,language='english')

参数:

text : 将要被分割的语句文本

         language:Punkt分句程序指定模型名字,可忽略

返回值:

list类型:使用NTLK推荐分句程序得到的结果

示例:


1.3.2   NLTK进行分词

函数:

         word_tokenize(text,language='english')

参数:

         text:将要进行分词的句子文本

         language:Punkt分词程序指定模型名字,可忽略

返回值:

         list类型,使用NTLK推荐分词程序得到的结果

示例:

1.3.3   NLTK词性标注

词性标注的结果含义可参照作者的另一篇博文:(自然语言处理文档系列)Penn Treebank词性标记集

函数:

         pos_tag(tokens,tagset=None)

参数:

         tokens:list(str)类型,将要被标注单词的序列

         tagset:可忽略

返回值:

         list(tuple(str,str)),进行词性标注后的结果

示例:


1.3.4   NLTK命名实体识别(NER)

函数:

         ne_chunk(tagged_tokens,binary=False)

         使用推荐的NER工具包进行处理,处理之前需要利用词性标注的结果

参数:

         tagged_tokens:list(tuple(str,str)),NLTK进行词性标注的结果

         binary:

返回值:

示例:


1.3.5   句法分析

nltk没有好的parser,推荐使用stanfordparser,但是nltk有很好的树类,该类用list实现。可以利用stanfordparser的输出构建一棵python的句法树。关于stanfordparser在第3章中有详细介绍。

 

Note:

  • NLTK3.0官方文档     http://www.nltk.org/py-modindex.html


python自然语言处理入门教程(二)将详细介绍使用python调用Stanford NLP工具包以及如何使用该工具包进行自然语言处理任务,请继续关注~


0 0
原创粉丝点击