最近我们实验室整理发布了一批开源NLP工具包,这里列一下,欢迎大家使用。未来不定期更新。
2016年3月31日更新,在THULAC新增Python版本分词器,欢迎使用。

中文词法分析
THULAC:一个高效的中文词法分析工具包
包括中文分词、词性标注功能。已经提供C++、Java、Python版本。

中文文本分类
THUCTC: 一个高效的中文文本分类工具
提供高效的中文文本特征提取、分类训练和测试功能。

THUTag: 关键词抽取与社会标签推荐工具包
GitHub - YeDeming/THUTag: A Package of Keyphrase Extraction and Social Tag Suggestion
提供关键词抽取、社会标签推荐功能,包括TextRank、ExpandRank、Topical PageRank(TPR)、Tag-LDA、Word Trigger Model、Word Alignment Model等算法。

PLDA / PLDA+: 一个高效的LDA分布式学习工具包
code.google.com/archive

知识表示学习
知识表示学习工具包
GitHub - Mrlyk423/Relation_Extraction: Knowledge Base Embedding
包括TransE、TransH、TransR、PTransE等算法。

考虑实体描述的知识表示学习算法
GitHub - xrb92/DKRL: Representation Learning of Knowledge Graphs with Entity Descriptions

词表示学习
跨语言词表示学习算法
Learning Cross-lingual Word Embeddings via Matrix Co-factorization

主题增强的词表示学习算法
GitHub - largelymfs/topical_word_embeddings: A demo code for topical word embedding

可解释的词表示学习算法
GitHub - SkTim/OIWE: Online Interpretable Word Embeddings

考虑字的词表示学习算法
GitHub - Leonard-Xu/CWE

网络表示学习
文本增强的网络表示学习算法
GitHub - albertyang33/TADW: code for IJCAI2015 paper "Network Representation Learning with Rich Text Information"

我只清楚文本方面的开源项目, 希望能帮到你:

一整套文本挖掘流水线GATE:gate.ac.uk/
你可以按照它的要求向其中添加组件, 完成自己的nlp任务
我在的项目组曾经尝试过使用, 虽然它指出组件开发, 但是灵活性还是不高, 所以我们自己又开发了一套流水线。

国内一个NLP工具: 哈工大LTP:ir.hit.edu.cn/
这个是一个较完善的流水线了, 不说质量怎么样, 它提供分词、语义标注、 句法依赖、 实体识别。 虽然会出现错误的结果, 但是, 找不到更好的了。

中科院分词ICTCLAS
一个比较权威的分词器, 相信你最后会选择它作为项目的分词工具, 虽然本身存在很多问题, 但是我找不到更好的开源项目了。

微软分词MOSS
当然这个是不开源的, 但是分词非常准, 但是悲剧的是它将分词和实体识别同时完成了, 而且分词(在它提供的工具中)不提供词性标注。

句法分析 Stanford Parser
这个据说非常不能用, 在中文方面, 试试吧。

以上都是成品, 下面是一些算法开发包:

比较新的序列标注算法CRF的开源项目: CRF++
经典模型SVM: svm-light 和 lib svm


如果除了分词,还想做些更深入的分析,推荐开源的FNLP GitHub

利益相关:FNLP项目负责人

NiuTrans
东北大学自然语言处理实验室研制开发,它支持多个统计机器翻译模型(基于短语,基于层次短语,基于句法),内嵌小巧、高效的N-元语言模型,无需其它软件(如SRILM)的外部支持。
下载地址:NiuTrans下载

哈工大LTP,有全面又好用,分词、词性标注、NER、句法分析等。

列几个强大的Python套件们吧。
前面提到了出现顺序实属意外的NLTK,应该是非常强大的工具包了,3.x封了stanford nlp很多接口。
另外语料,newspaper、TextBlob等都是质量蛮高的开源项目。
中文的话,结巴分词、snownlp都挺不错的。

我主要做句法分析的,Stanford parser还不错,但是代码写的比较难理解,需要很认真的Debug,Berkeley parser比Stanford parser感觉规模小一点,代码相对比较容易理解。当然,比较大的问题就是这两个开源项目没有详细的算法与代码相结合的说明文件,对使用者的基础要求比较高。

分词推荐ansj. github.com/NLPchina/ans
比他老师张华平博士的东西用着顺手些。
现在也有关键词等功能,很强大。

word2vec.这是个好东西,把词变成向量以后,很多事都变得容易了

© COPYRIGHT BY i How And Why.com 2015