前言:做NLP工程时少不了利用各种现成的工具包来对文字进行处理,学习工作这么久,接触使用了不少nlp工具包,NLP中大多是以Python语言为主,因此大部分工具是Python的,少部分的是Java的以及C++的,主要功能无非实现校正,分词,词性标注,句法分析,句法依存等主流功能,具体使用方法见各官网以及博客,简单列举如下:
博主用过的:
NLTK:Python的,安装方便,处理英文功能强大,中文也可,处于领先地位,语料库丰富,下载方便,可以实现统计,分词,词性标注,句法分析(这块好像有点弱),做NLP不知道nltk?你是火星的nlp?
jieba:python的,是最常用的中文分词工具,支持多精度分词,安装使用十分方便。
ltp:哈工大的,业界很出名的一套处理中文系统,好像是python的,忘记了,反正python可以使用,不过安装可能报一个缺少微软的一个vc++东西错,忘记怎么解决的了,有机会再补充,可以实现分词,词性标注,命名实体识别,句法分析,依存关系等功能。
stanford NLP:这个是java的,不过Python可以安装使用,稍微麻烦一点,需要安装jdk,下载一些jar文件在本地,然后Python调用给jdk解析,有很多博客讲解安装的,就不细说了,可以实现分词,标准,识别,句法分析树等,可以处理中文
spaCy:这个功能比较强大,实现英语分词,词性还原,标注,识别,句法分析等,Python的,安装简单实用方便。
hanlp:用过这个的分词,其他功能没用过
bonsonlp:这个是一个专门做NLP的公司开发的收费平台,可以去官网体验一下,也有多个精度的分词,体验感觉还不错。
以上是nlp工具平台,下面是具有针对性的工具(都是python的):
word2vec:某大公司(我有些混淆了)开发的,利用已有语料库和深度学习进行训练,得到可以带有语意含义的词向量,效果不错,网络上有利用搜狗语料训练的博客,语料搜狗免费提供。得到词向量用处就大了,关键得训练的好。
gloven:好像是另一大公司针对上面公司的word2vec开发的,效果也相差不大,可以自己训练,亦可以下载该公司提供训练好的词向量,好像叫gloven100d什么的。
Gensim:是一个大型的python库,博主用它实现word2vec训练,其他功能没试过,好像功能挺强大的。
fasttext:脱胎于word2vec的算法的一个文本快速分类包,速度快,使用简单。
infersent:训练后,可以实现提取文本的关键词,但是博主多次怀疑是不是通过统计词频来识别的,哈哈。
grammer check:这个是用来检测英语语法错误的,这么说,检测出来的一定是有错的,检测不出来的不一定没错,可以用来过滤一部分数据。
听过没用过的:
ICTCLAS:中科院的,也挺好
FudanNLP:复旦大学的
OpenNLP
庖丁解牛中文分词
盘古分词中文分词
下面几个博主也没用过,就放着了,大家可以自己去查查。
NaNLTK
Apache OpenNLP
Gate NLP library
language tool
Pattern
TextBlob
PyNLPI
Polyglot
MontyLingua
BLLIP Parser
Quepy
MBSP
SnowNLP
thulac
pynlpir
注:不管用什么工具进行分词,标注,识别,都会有误差,并且领域性越强,数据集越小,误差越明显,一方面可以多个工具结合使用,不同工具算法或语料不同,分词标注结果也不同,结合使用会有一定效果,再者自己添加自己领域内的词表补充完善,人工智能即先人工再智能。