前言:作NLP工程时少不了利用各类现成的工具包来对文字进行处理,学习工做这么久,接触使用了很多nlp工具包,NLP中大可能是以Python语言为主,所以大部分工具是Python的,少部分的是Java的以及C++的,主要功能无非实现校订,分词,词性标注,句法分析,句法依存等主流功能,具体使用方法见各官网以及博客,简单列举以下:
博主用过的:java
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的):python
word2vec:某大公司(我有些混淆了)开发的,利用已有语料库和深度学习进行训练,获得能够带有语意含义的词向量,效果不错,网络上有利用搜狗语料训练的博客,语料搜狗免费提供。获得词向量用处就大了,关键得训练的好。 gloven:好像是另外一大公司针对上面公司的word2vec开发的,效果也相差不大,能够本身训练,亦能够下载该公司提供训练好的词向量,好像叫gloven100d什么的。 Gensim:是一个大型的python库,博主用它实现word2vec训练,其余功能没试过,好像功能挺强大的。 fasttext:脱胎于word2vec的算法的一个文本快速分类包,速度快,使用简单。 infersent:训练后,能够实现提取文本的关键词,可是博主屡次怀疑是否是经过统计词频来识别的,哈哈。 grammer check:这个是用来检测英语语法错误的,这么说,检测出来的必定是有错的,检测不出来的不必定没错,能够用来过滤一部分数据。
听过没用过的:c++
ICTCLAS:中科院的,也挺好 FudanNLP:复旦大学的 OpenNLP 庖丁解牛中文分词 盘古分词中文分词
下面几个博主也没用过,就放着了,你们能够本身去查查。算法
NaNLTK Apache OpenNLP Gate NLP library language tool Pattern TextBlob PyNLPI Polyglot MontyLingua BLLIP Parser Quepy MBSP SnowNLP thulac pynlpir
注:无论用什么工具进行分词,标注,识别,都会有偏差,而且领域性越强,数据集越小,偏差越明显,一方面能够多个工具结合使用,不一样工具算法或语料不一样,分词标注结果也不一样,结合使用会有必定效果,再者本身添加本身领域内的词表补充完善,人工智能即先人工再智能。网络