自然语言处理FudanNLP、LingPipe、CRF++、NLTK介绍

以下为你介绍的自然语言处理软件都可用在Linux系统上:FudanNLP(中文自然语言处理工具包)、LingPipe(Java自然语言处理)、CRF++(自然语言处理工具)、NLTK(自然语言工具包)。

1、FudanNLP(中文自然语言处理工具包)

FudanNLP主要是为中文自然语言处理而开发的工具包,也包含为实现这些任务的机器学习算法和数据集。

FudanNLP目前实现的内容如下:

1]、中文处理工具

中文分词、词性标注、实体名识别、句法分析、时间表达式识别。

2]、信息检索

文本分类、新闻聚类、Lucene中文分词。

3]、机器学习

Average Perceptron、Passive-aggressive Algorithm、K-means、Exact Inference。

下载地址:https://github.com/FudanNLP/

2、LingPipe(Java自然语言处理)

自然语言处理FudanNLP、LingPipe、CRF++、NLTK介绍

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。

LingPipe用于执行以下任务:

在新闻中查找人员,组织或地点的名称。

自动将Twitter搜索结果分类。

建议正确的查询拼写。

LingPipe的体系结构被设计为高效,可伸缩,可重用和健壮,重点包括:

带有源代码和单元测试的Java API。

多语言,多领域,多类型模型。

用新数据培训新任务。

具有统计置信度估计值的n最佳输出。

在线培训(一点点学习)。

线程安全模型和解码器,用于并发读取互写(CREW)同步。

字符编码敏感的I/O。

下载地址:http://alias-i.com/lingpipe/

3、CRF++(自然语言处理工具)

CRF++是著名的条件随机场开源工具,也是目前综合性能最佳的CRF工具。CRF++本身已经是个比较老的工具了,但鉴于其性能较好,仍然是自然语言处理很重要的一个工具。

NlpBamboo 中文分词库在使用该工具。

下载地址:https://sourceforge.net/projects/crfpp/files/

4、NLTK(自然语言工具包)

NLTK 会被自然地看作是具有栈结构的一系列层,这些层构建于彼此基础之上。

尽管 NLTK 附带了很多已经预处理(通常是手工地)到不同程度的全集,但是概念上每一层都是依赖于相邻的更低层次的处理。首先是断词,然后是为单词加上标签,然后将成组的单词解析为语法元素,比如名词短语或句子(取决于几种技术中的某一种,每种技术都有其优缺点),最后对最终语句或其他语法单元进行分类。通过这些步骤,NLTK 让您可以生成关于不同元素出现情况的统计,并画出描述处理过程本身或统计合计结果的图表。

关于分配:

1]、NLTK源代码在Apache 2.0许可下分发。

2]、NLTK文档是根据美国知识共享署名-非商业性-无衍生作品3.0许可分发的。

3]、NLTK语料库是根据README文件中给每个语料库提供的条款提供的,所有这些都可以重新分发,并且可以用于非商业用途。

4]、NLTK可以自由分发,但要遵守这些许可的规定。

您可以使用NLTK做一些简单的事情,如下:

1]、标记并标记一些文本:

>>> import nltk

>>> sentence = """At eight o'clock on Thursday morning

... Arthur didn't feel very good."""

>>> tokens = nltk.word_tokenize(sentence)

>>> tokens

['At', 'eight', "o'clock", 'on', 'Thursday', 'morning',

'Arthur', 'did', "n't", 'feel', 'very', 'good', '.']

>>> tagged = nltk.pos_tag(tokens)

>>> tagged[0:6]

[('At', 'IN'), ('eight', 'CD'), ("o'clock", 'JJ'), ('on', 'IN'),

('Thursday', 'NNP'), ('morning', 'NN')]

2]、识别命名实体:

>>> entities = nltk.chunk.ne_chunk(tagged)

>>> entities

Tree('S', [('At', 'IN'), ('eight', 'CD'), ("o'clock", 'JJ'),

  ('on', 'IN'), ('Thursday', 'NNP'), ('morning', 'NN'),

 Tree('PERSON', [('Arthur', 'NNP')]),

  ('did', 'VBD'), ("n't", 'RB'), ('feel', 'VB'),

  ('very', 'RB'), ('good', 'JJ'), ('.', '.')])

3]、显示一个分析树:

>>> from nltk.corpus import treebank

>>> t = treebank.parsed_sents('wsj_0001.mrg')[0]

>>> t.draw()

自然语言处理FudanNLP、LingPipe、CRF++、NLTK介绍

下载地址:https://github.com/nltk/nltk

注明

以上就是自然语言处理FudanNLP、LingPipe、CRF++、NLTK的介绍内容,这些自然语言处理软件都能使用在Linux操作系统中。

栏目相关文章