HanLP https://github.com/hankcs
Apache OpenNLP https://opennlp.apache.org/
Apache UIMA
LingPipe
LingPipe 是一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能,包括主题分类(Top Classification)、命名实体识别(Named Entity Recognition)、词性标注(Part-of Speech Tagging)、句题检测(Sentence Detection)、查询拼写检查(Query Spell Checking)、兴趣短语检测(Interseting Phrase Detection)、聚类(Clustering)、字符语言建模(Character Language Modeling)、医学文献下载/解析/索引(MEDLINE Download, Parsing and Indexing)、数据库文本挖掘(Database Text Mining)、中文分词(Chinese Word Segmentation)、情感分析(Sentiment Analysis)、语言辨别(Language Identification)等API。
下载链接:
The Stanford NLP Group https://nlp.stanford.edu/
Stanford NLP Group是斯坦福大学自然语言处理的团队,开发了多个NLP工具,官网网址为:。其开发的工具包括以下内容:
Stanford CoreNLP
采用Java编写的面向英文的处理工具,下载网址为:。主要功能包括分词、词性标注、命名实体识别、语法分析等。
我曾经采用它进行英语单词的词性还原,具体应用详见文章《采用Stanford CoreNLP实现英文单词词形还原》。
Stanford Word Segmenter
采用CRF(条件随机场)算法进行分词,也是基于Java开发的,同时可以支持中文和Arabic,官方要求Java版本1.6以上,推荐内存至少1G。下载地址为。
简单的示例程序:
//设置分词器属性。
Properties props = new Properties();
//字典文件地址,可以用绝对路径,如d:/data
props.setProperty("sighanCorporaDict", "data");
//字典压缩包地址,可以用绝对路径
props.setProperty("serDictionary","data/dict-chris6.ser.gz");
//输入文字的编码;
props.setProperty("inputEncoding", "UTF-8");
props.setProperty("sighanPostProcessing", "true");
//初始化分词器,
CRFClassifier classifier = new CRFClassifier(props);
//从持久化文件中加载分词器设置;
classifier.loadClassifierNoExceptions("data/ctb.gz", props);
// flags must be re-set after data is loaded
classifier.flags.setProperties(props);
//分词
List words = classifier.segmentString("语句内容");
Stanford POS Tagger
采用Java编写的面向英文、中文、法语、阿拉伯语、德语的命名实体识别工具,下载地址为:。还没有接触过,需要以后学习研究。
Stanford Named Entity Recognizer
采用条件随机场模型的命名实体工具,下载地址为:。还没有接触过,需要以后学习研究。
Stanford Parser
进行语法分析的工具,支持英文、中文、阿拉伯文和法语。下载地址为:。具体的使用介绍见《采用Stanford Parser进行中文语法解析》。
Stanford Classifier
采用Java编写的分类器,下载地址为:。还没有接触过,需要以后学习研究。
GATE https://gate.ac.uk/
NLTK
学习资料
我爱自然语言处理