目前常用的自然语言处理开源项目/开发包都有哪些?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目前常用的自然语言处理开源项目/开发包都有哪些?相关的知识,希望对你有一定的参考价值。
中文主要有:NLTK,HanLP,Ansj,THULAC,结巴分词,FNLP,哈工大LTP,中科院ICTCLAS分词,GATE,SnowNLP,东北大学NiuTrans,NLPIR;英文主要有:NLTK,Genism,TextBlob,Stanford NLP,Spacy。英文的开源NLP工具主要参见StackoverFlow-java or python for nlp。HanLP:HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。开发语言:Java,网址:hankcs/HanLP,开发机构:大快公司,协议:Apache-2.0功能:非常多,主要有中文分词,词性标注,命名实体识别,关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析,文本分类:情感分析,word2vec,语料库工具。
参考技术A如果是英文的话,主要推荐两个,一个是Stanford CoreNLP, 另一个是Spacy。Stanfrod胜在功能强大,准确率高,但因为程序是java写的,如果想要用python调用的话需要接口。今年Stanford刚刚更新了新的enhanced++ dependency parsing,具体可以参考论文:https://nlp.stanford.edu/pubs/schuster2016enhanced.pdf。Stanford parser还不错,但是代码写的比较难理解,需要很认真的Debug,Berkeley parser比Stanford parser感觉规模小一点,代码相对比较容易理解。当然,比较大的问题就是这两个开源项目没有详细的算法与代码相结合的说明文件,对使用者的基础要求比较高。另外强烈推荐Spacy, python 接口,速度非常快,功能相对强大,基本可以满足日常所有要求。
参考技术B对于自然语言处理的新手或非计算机专业人员,强烈推荐使用GATE,它有以下优势:
(1)良好的交互界面,主界面不再是一个命令行黑窗口,而是一个设计精美、交互良好的可视化窗体。此外还提供了gate embeded版本的API开发包,供JAVA程序调用。
(2)自定义文本处理管线,官方版本中已经有一个英文信息抽取的管线应用ANNIE,对此稍作调整就可以进行中文自然语言的处理(楼上其他人的回答都是一个NLP工具,词法、句法分析等,GATE是一个集成版的系统!),而这一切都是在可视化界面中完成的。
(3)提供了升级版的正则表达式:JAPE,能够实现各类信息的处理和抽取。JAPE能够基于词法、句法解析后的标注设定规则(不仅仅是文本哦),还能调用JAVA代码来实现复杂的处理功能(正则表达式能调用JAVA代码吗)。
(4)强大的插件,GATE插件很强大,包括分词、分句、句法分析、语义分析、爬虫、协同标注等(无缝集成到GATE中,可以添加在自定义的处理管线中)。例如楼上各位所说的lingpipe、Stanford parser等国外著名的nlp工具GATE都有官方的集成。中文nlp工具例如ICTCLAS、FudanNLP也有人实现并开源了插件,参考:GATE中文自然语言处理系列集成ICTCLAS中文分词,中文自然语言处理系列之三:中文分句(基于JAPE)。
以上是关于目前常用的自然语言处理开源项目/开发包都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章