查看原文
其他

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

52nlp AINLP 2019-05-18

继续中文分词在线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)FoolNLTK:https://github.com/rockyzhengwu/FoolNLTK

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

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

仅在linux Python3 环境测试通过

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

中文分词示例:


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任务的模型。

中文分词示例:


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

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

中文分词使用示例:


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

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存