中文分词工具在线PK新增:FoolNLTK、HITLTP、StanfordCoreNLP

继续中文分词在线PK之旅,上文《五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP》我们选择了5个中文分词开源工具,这次再追加3个,分别是FoolNLTK、哈工大LTP(pyltp, ltp的python封装)、斯坦福大学的CoreNLP(stanfordcorenlp is a Python wrapper for Stanford CoreNLP),现在可以在AINLP公众号测试一下:中文分词 我爱自然语言处理

以下是在Python3.x & Ubuntu16.04 的环境下测试及安装这些中文分词器:

6)FoolNLTKhttps://github.com/rockyzhengwu/FoolNLTK

特点
可能不是最快的开源中文分词,但很可能是最准的开源中文分词
基于BiLSTM模型训练而成
包含分词,词性标注,实体识别, 都有比较高的准确率
用户自定义词典
可训练自己的模型
批量处理

定制自己的模型
get clone https://github.com/rockyzhengwu/FoolNLTK.git
cd FoolNLTK/train
详细训练步骤可参考文档

仅在linux Python3 环境测试通过

安装,依赖TensorFlow, 会自动安装:
pip install foolnltk

中文分词示例:

In [1]: import fool                                                              
 
In [2]: text = "我爱自然语言处理"                                                
 
In [3]: print(fool.cut(text))                                                    
[['我', '爱', '自然', '语言', '处理']]
 
In [4]: print(' '.join(fool.cut(text)[0]))                                       
我 爱 自然 语言 处理

7) LTP: https://github.com/HIT-SCIR/ltp
pyltp: https://github.com/HIT-SCIR/pyltp

pyltp 是 语言技术平台(Language Technology Platform, LTP) 的 Python 封装。

安装 pyltp
注:由于新版本增加了新的第三方依赖如dynet等,不再支持 windows 下 python2 环境。
使用 pip 安装
使用 pip 安装前,请确保您已安装了 pip

$ pip install pyltp
接下来,需要下载 LTP 模型文件。

下载地址 - `模型下载 http://ltp.ai/download.html`_
当前模型版本 - 3.4.0
注意在windows下 3.4.0 版本的 语义角色标注模块 模型需要单独下载,具体查看下载地址链接中的说明。
请确保下载的模型版本与当前版本的 pyltp 对应,否则会导致程序无法正确加载模型。

从源码安装
您也可以选择从源代码编译安装

$ git clone https://github.com/HIT-SCIR/pyltp
$ git submodule init
$ git submodule update
$ python setup.py install
安装完毕后,也需要下载相应版本的 LTP 模型文件。

这里使用"pip install pyltp"安装,安装完毕后在LTP模型页面下载模型数据:http://ltp.ai/download.html ,我下载的是 ltp_data_v3.4.0.zip ,压缩文件有600多M,解压后1.2G,里面有不同NLP任务的模型。

中文分词示例:

In [5]: from pyltp import Segmentor                                              
 
In [6]: segmentor = Segmentor()                                                  
 
# 分词模型路径,依据你下载后放得位置而定
In [7]: segmentor.load('./data/ltp/ltp_data_v3.4.0/cws.model')                   
 
In [8]: print(' '.join(segmentor.segment('我爱自然语言处理')))                   
我 爱 自然 语言 处理

8) Stanford CoreNLP: https://stanfordnlp.github.io/CoreNLP/
stanfordcorenlp: https://github.com/Lynten/stanford-corenlp

这里用的是斯坦福大学CoreNLP的python封装:stanfordcorenlp

stanfordcorenlp is a Python wrapper for Stanford CoreNLP. It provides a simple API for text processing tasks such as Tokenization, Part of Speech Tagging, Named Entity Reconigtion, Constituency Parsing, Dependency Parsing, and more.

安装很简单,pip即可:

pip install stanfordcorenlp

但是要使用中文NLP模块需要下载两个包,在CoreNLP的下载页面下载模型数据及jar文件,目前官方是3.9.1版本:

https://nlp.stanford.edu/software/corenlp-backup-download.html

第一个是:stanford-corenlp-full-2018-02-27.zip
第二个是:stanford-chinese-corenlp-2018-02-27-models.jar

前者解压后把后者也要放进去,否则指定中文的时候会报错。

中文分词使用示例:

In [11]: from stanfordcorenlp import StanfordCoreNLP                             
 
In [12]: stanford_nlp = StanfordCoreNLP('./data/corenlp/stanford-corenlp-full-201
    ...: 8-02-27', lang='zh')                                                    
 
In [13]: seg_results = stanford_nlp.word_tokenize('我爱自然语言处理')            
 
In [14]: print(' '.join(seg_results))                                            
我爱 自然 语言 处理

最后再说一下,原本计划加上对NLPIR中文分词器的支持,但是发现它的license需要定期更新,对于长久放server端测试不太方便就放弃了;另外之所以选择python,因为我用了Flask restful api框架,也欢迎推荐其他的中文分词开源框架,如果它们有很好的Python封装的话,这里可以继续添加。

注:原创文章,转载请注明出处及保留链接“我爱自然语言处理”:http://www.52nlp.cn

本文链接地址:中文分词工具在线PK新增:FoolNLTK、HITLTP、StanfordCoreNLP http://www.52nlp.cn/?p=11770

Start your future on Coursera today.

欢迎关注我们的公众号

NLPJob

发表评论

电子邮件地址不会被公开。 必填项已用*标注