博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的nltk中文使用和学习资料汇总帮你入门提高
阅读量:7041 次
发布时间:2019-06-28

本文共 3165 字,大约阅读时间需要 10 分钟。

hot3.png

nltk是一个python工具包, 用来处理和自然语言处理相关的东西. 包括分词(tokenize), 词性标注(POS), 文本分类, 等等现成的工具.

1. nltk的安装

资料1.1: 黄聪:Python+NLTK自然语言处理学习(一):环境搭建     这个图文并茂, 步骤清晰, 值得一看. 我想我没必要再重新写一遍了, 因为我当时也是按照他这样做的.

资料1.2: 把python自然语言处理的nltk_data打包到360云盘,然后共享给朋友们  这个是作者将接近300M的nltk_data上传到百度云了, 我觉得, 可以试试下载, 毕竟使用资料1中nltk自带的download()方法, 从官方网站下载所有的数据包需要很长时间.

补充: 有人说, 这个下载的链接已经失效了, 我把我用的nltk2.0的data目录里的zip文件打包传到百度云盘了, 290多M, 上传我费了好多时间, 你们可以去下载: http://pan.baidu.com/s/1hq7UUFU

资料1.3: Ubuntu上安装NLTK出现的问题与解决方法  需要的看看吧

资料1.4: 安装nltk遇到的小问题  

资料1.5  安装nltk后导入语料的时候出错, 一般是一些依赖包没安装 

资料1.6 NLTK中文化處理及文字筆畫音調剖析工具整合套件  台湾一个大学对nltk的介绍

资料1.7 windows下如何安装NLTK,并使用模块nltk?

2. nltk初步使用入门

资料2.1  PYTHON自然语言处理中文翻译 NLTK 中文版.pdf  中文版的《PYTHON自然语言处理》 这是一个好书,强烈推荐。这本书虽然早就有人翻译成中文了,但是还有些精力旺盛的博主还在翻译,比如这位  《Python自然语言处理》学习笔记索引。 他翻译了很多, 中英文夹杂的,精神可嘉,做法不可取。不知道别人早就翻译完了这本书吗?

资料2.2: 黄聪:Python+NLTK自然语言处理学习(二):常用方法(similar、common_contexts、generate)   

这篇, 初步介绍了如何开始使用nltk的语料和他的一些常用方法. 有点python基础的可以直接看了.之所以放在这里, 还是因为, 只有安装好了才可以进行到这一步.

资料2.3 黄聪:Python+NLTK自然语言处理学习(三):计算机自动学习机制   

这一篇也挺浅显易懂的.

资料2.4 python中nltk.parse_cfg是干什么用的 求例子  

3.nltk初中级应用

资料3.1: 可爱的 Python: 自然语言工具包入门 

这个是ibm的砖家写的资料, 但是这个不能作为入门资料, 可以归结到初级应用资料. 对于那些动手能力弱的人, 这个文章真的不是那么好懂的, 所以不适合入门看, 而适合那些喜欢写代码, 喜欢鼓捣折腾的人看.

资料3.2 词性标注  这篇文章介绍了默认的词性标注类(比如, 所有的词都标注为名词), 基于规则标注词性, 基于正则表达式标注词性, n-gram标注词性等等.

资料3.3: Classify Text With NLTK  别看标题是英文的, 实际上内容是中英文混合的, 不过这个比上面一篇简单些. 主要就是使用nltk对一些姓名 性别进行训练, 并预测测试语料中的姓名是啥性别. 这篇文章能够让你对 分类, 样本特征稍微有个初步入门.

资料3.4 使用nltk从非结构化数据中抽取信息   这篇主要介绍了命名实体识别

4.使用nltk来处理中文资料

nltk 怎么样使用中文?这是个大问题。这么个工具目前只能比较好的处理英文和其他的一些拉丁语系,谁让别人的单词与单词之间有个空格隔开呢!中文汉字一个挨一个的,nltk在分词这一关就过不去了,分词没法分,剩下的就都做不了。唯一能做的, 就是对网上现有的中文语料进行处理,这些语料都分好了词,可以使用nltk进行类似与英文的处理。

python处理中文首先需要设置一下文本的编码, 文件的首行加上: #coding utf-8 这个是给python解释器识别的,然后文件保存的时候,还需要保存为utf-8的编码。

这些编码设置完了, ntlk还是处理不了中文。

nltk处理中文的第一步障碍就是中文资料不是分好词的, 词语与词语之间没有空格。要使用nltk对中文进行处理, 首先的第一步就是中文分词(台湾叫中文断词)。

目前python中文分词的包,我推荐使用结巴分词。 使用结巴分词,之后,就可以对输出文本使用nltk进行相关处理。

当然中文分词, 不应该成为使用nltk的障碍,或许很多人认为,既然用nltk,那么nltk就应该支持中文。但是我们得认清现实,现实就是nltk就是不支持处理中文,因此,这个给国内很多自然语言处理的研究人员有了研究的空间了,nltk既然没做中文分词,那么中国人就应该自己做了这个。一个口碑比较好的中文分词工具就是ICTCLAS中文分词。

当然,我个人觉得中国人自己开发的纯python实现的结巴分词也不错。

总的来说,nltk不提供中文分词,不应该纠结于此,并止步不前,我们完全可以使用其他的中文分词工具,将需要处理的资料分好词,然后再使用nltk进行处理,因此,这里就不多说中文分词的那点事了。如果你因为中文分词而分心,并转向到中文分词的研究之中,那么你就掉入了另外一个深坑之中。牢记本文的主题是nltk。当然需要多啰嗦一点的就是,nltk的默认词性标注集使用的是Penn Treebank 的词性标注集,因此,你选用中文分词模块的时候,最好能够使用和penn词性标注集差不多的中文分词工具,当然,不一样也没事。

资料4.1 使用python结巴分词对中文资料进行分词  结巴分词的github主页

资料4.2 基于python的中文分词的实现及应用 

资料4.3  对Python中文分词模块结巴分词算法过程的理解和分析 

资料4.4 宾州中文树库标记以及其解释, Penn Chinese Treebank Tag Set 

5.nltk的高级应用入门

啥叫高级啊? 就是基础掌握了之后,开始运用实际工作了,就叫高级。比如什么统计推荐,评分,机器翻译,文本分类,舆情监控等等都是高级应用。

下面是些入门资料。

资料1: 通过nltk的机器学习方法实现论坛垃圾帖的过滤 

资料2:利用nltk建立一个简单的词库 

资料3:利用概率分布进行关联规则挖掘 

6. nltk的精通

何谓精通? 精通就是熟练的表达你的想法。

何谓精通一个工具? 就是你想做什么, 你就能用这个工具顺利的完成。do everything you want with nltk.

至于如何精通,建议多看英文资料和多动手操练。nltk官方文档, 一些参与nltk的大学研究机构,北大,清华的语言研究以及国际语言研究机构acl所发的论文等等。

假设你目前真的熟练的掌握了nltk的各种玩法了,那么, 你精通的标志就是改造nltk, 使它功能更强,更优,更快,更方便。

比如:

6.1 集成结巴分词到nltk的分词器之中

6.2 在国内多弄几个地方,放置nltk_data数据包,方便大家下载

6.3 给nltk提供语料

等等,剩下的由你来补充。

最后说一句: nltk的中文资料确实不多,坑爹吧?相信很多人卡在了中文分词那一步。。。坚定的要求用nltk进行中文分词的朋友,还是先跳过这一步吧. 另外, 喜欢python和自然语言处理的朋友可以加我的QQ群:Python自然语言处理群(220373876), 欢迎来参与讨论.

转载于:https://my.oschina.net/u/856502/blog/550588

你可能感兴趣的文章
JavaScript中的作用域和闭包
查看>>
暴力破解WiFi密码
查看>>
Zend Studio使用教程:使用Zend Studio和Zend Server进行根本原因分析 (二)
查看>>
golang的fmt包String(),Error(),Format(),GoString()的接口实现
查看>>
Java技术转(兼顾)产品经理——读《快速转行做产品经理》有感
查看>>
成为优秀Java开发人员的10件事
查看>>
Kali Linux安装教程
查看>>
Android缓存处理
查看>>
JavaScript 数据类型检测终极解决方案
查看>>
年赚百万游戏主播!玩转Python后:几行代码轻松“吃鸡” 附源码
查看>>
【python】使用简单的python语句编写爬虫 定时拿取信息并存入txt
查看>>
卡拉OK歌词原理和实现高仿Android网易云音乐
查看>>
小编带着小白看springboot源码6
查看>>
javascript原型链
查看>>
Re: 从零开始的【comic spider】《最简单的实现》(上)
查看>>
Java 单例模式学习理解
查看>>
ios创建可拖动的视图
查看>>
Linux常用的基本命令12
查看>>
ORACLE数据库事务隔离级别介绍
查看>>
DHCP服务和http服务
查看>>