nltk中文python
① 使用python中的NLTK包调用Stanford CoreNLP API服务
NLTK(Natural Language Toolkit)是Python中用于自然语言处理的包,提供了多种功能如分词、词性标注和词形还原,并内置多种语言的停用词。其使用例子包括:
Stanford CoreNLP是由斯坦福大学自然语言处理团队开发的自然语言处理软件,提供了文本分词、词性标注、词形还原等功能,支持GUI界面操作及程序API调用。相比于NLTK,CoreNLP在句子成分解析、情感分析等方面性能更优。
由于NLTK的局限性,在需要进行复杂自然语言处理任务时,调用CoreNLP API服务成为必要。NLTK通过接口与CoreNLP集成,使用户能够利用其强大功能。
在NLTK中调用CoreNLP API服务的过程如下:
首先,确保使用的是NLTK 3.4.5版以及CoreNLP 3.9.2版。下载CoreNLP软件后,将其存放在安全位置,如:
~/Desktop/毕业论文/stanford-corenlp-full-2018-10-05
使用命令行工具,切换至CoreNLP软件文件夹所在路径,开启API服务。成功后,通过浏览器访问http://localhost:9000,即可验证服务是否开启。
完成API服务启动后,即可在Python中使用NLTK调用CoreNLP进行句子成分解析。示例代码如下:
② 如何用 Python 中的 NLTK 对中文进行分析和处理
我感觉用nltk 处理中文是完全可用的。其重点在于中文分词和文本表达的形式。
中文和英文主要的不同之处是中文需要分词。因为nltk 的处理粒度一般是词,所以必须要先对文本进行分词然后再用nltk 来处理(不需要用nltk 来做分词,直接用分词包就可以了。严重推荐结巴分词,非常好用)。
中文分词之后,文本就是一个由每个词组成的长数组:[word1, word2, word3…… wordn]。之后就可以使用nltk 里面的各种方法来处理这个文本了。比如用FreqDist 统计文本词频,用bigrams 把文本变成双词组的形式:[(word1, word2), (word2, word3), (word3, word4)……(wordn-1, wordn)]。
再之后就可以用这些来计算文本词语的信息熵、互信息等。
再之后可以用这些来选择机器学习的特征,构建分类器,对文本进行分类(商品评论是由多个独立评论组成的多维数组,网上有很多情感分类的实现例子用的就是nltk 中的商品评论语料库,不过是英文的。但整个思想是可以一致的)。
另外还有一个困扰很多人的Python 中文编码问题。多次失败后我总结出一些经验。
Python 解决中文编码问题基本可以用以下逻辑:
utf8(输入) ——> unicode(处理) ——> (输出)utf8
Python 里面处理的字符都是都是unicode 编码,因此解决编码问题的方法是把输入的文本(无论是什么编码)解码为(decode)unicode编码,然后输出时再编码(encode)成所需编码。
由于处理的一般为txt 文档,所以最简单的方法,是把txt 文档另存为utf-8 编码,然后使用Python 处理的时候解码为unicode(sometexts.decode('utf8')),输出结果回txt 的时候再编码成utf8(直接用str() 函数就可以了)。
③ python中的nltk是什么
nltk(natural
language
toolkit)是python的自然语言处理工具包。自然语言是指人们日常交流使用的语言,如英语,印地语,葡萄牙语等。“自然语言处理”(Natural
Language
Processing
简称NLP)包含所有用计算机对自然语言进行的操作,从最简单的通过计数词出现的频率来比较不同的写作风格,到最复杂的完全“理解”人所说的话,至少要能达到对人的话语作出有效反应的程度。