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 是alias公司开发的一款自然语言处理软件包,目前(2008.04.21)最高版本是3.5([url]http://www.5yiso.cn/2008 /04/28856.html[/url]),功能非常强大,最重要的是文档超级详细,每个模型甚至连参考论文都列出来了,不仅使用方便,也非常适合模型的学习。
地址:
http:/alias-i.com/lingpipe/
SIGHAN06中有一篇paper, 关于Alias-i公司的Bob Carpenter所提交的参评报告”Character Language Models for Chinese Word Segmentation and Named Entity Recognition”看到了他们开发的LingPipe NLP Toolkit,一个自然语言处理的Java开源工具包。可以免费下载,而且开源,支持中文,不仅仅是对代码结构的说明,而且还提供了算法思想文档和相关 的资源,如测试数据集、相关论文等,一个不错的toolkit。
包括的模块:
主题分类(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)等
Feature Overview
LingPipe’s information extraction and data mining tools:
* track mentions of entities (e.g. people or proteins); 实体跟踪(如,人物、蛋白质)
* link entity mentions to database entries; 链接命名实体数据库中记录
* uncover relations between entities and actions; 发现实现和行为间关系
* classify text passages by language, character encoding, genre, topic, or sentiment; 通过语言、字体编码、类型、主题和情感对文本分类
* correct spelling with respect to a text collection; 拼写检查
* cluster documents by implicit topic and discover significant trends over time; and 通过隐藏主题对文档聚类和基于时间序列的趋势发现
* provide part-of-speech tagging and phrase chunking. 提供词性标注和短语组块
----------------------------------------
如何使用LingPipe计算词向量
如何使用LingPipe抽取向量空间模型例子
import com.aliasi.matrix.SparseFloatVector;
import com.aliasi.matrix.Vector;
import com.aliasi.symbol.MapSymbolTable;
import com.aliasi.symbol.SymbolTable;
import com.aliasi.tokenizer.IndoEuropeanTokenizerFactory;
import com.aliasi.tokenizer.TokenizerFactory;
import com.aliasi.tokenizer.TokenFeatureExtractor;
import java.util.HashMap;
import java.util.Map;
public class ExtractFeatures {
public static Vector[] featureVectors(String[] texts,
SymbolTable symbolTable) {
Vector[] vectors = new Vector[texts.length];
TokenizerFactory tokenizerFactory = new IndoEuropeanTokenizerFactory();
TokenFeatureExtractor featureExtractor = new TokenFeatureExtractor(
tokenizerFactory);
for (int i = 0; i < texts.length; ++i) {
Map featureMap = featureExtractor
.features(texts[i]);
vectors[i] = toVectorAddSymbols(featureMap, symbolTable,
Integer.MAX_VALUE);
}
return vectors;
}
public static SparseFloatVector toVectorAddSymbols(
Map featureVector, SymbolTable table,
int numDimensions) {
int size = (featureVector.size() * 3) / 2;
Map vectorMap = new HashMap(size);
for (Map.Entry entry : featureVector
.entrySet()) {
String feature = entry.getKey();
Number val = entry.getValue();
int id = table.getOrAddSymbol(feature);
vectorMap.put(new Integer(id), val);
}
return new SparseFloatVector(vectorMap, numDimensions);
}
public static void main(String[] args) {
args = new String[]{"this is a book", "go to school"
};
SymbolTable symbolTable = new MapSymbolTable();
Vector[] vectors = featureVectors(args, symbolTable);
System.out.println("VECTORS");
for (int i = 0; i < vectors.length; ++i)
System.out.println(i + ") " + vectors[i]);
System.out.println(" SYMBOL TABLE");
System.out.println(symbolTable);
}
}
-------------------------------
如何使用LingPipe 计算TF-IDF[b]
By jeffye | 五月 25, 2008
Hope that the following java code can help you:
---------------------------------------------------------
import com.aliasi.spell.TfIdfDistance;
import com.aliasi.tokenizer.IndoEuropeanTokenizerFactory;
import com.aliasi.tokenizer.TokenizerFactory;
public class TfIdfDistanceDemo {
public static void main(String[] args) {
TokenizerFactory tokenizerFactory =
IndoEuropeanTokenizerFactory.FACTORY;
TfIdfDistance tfIdf = new TfIdfDistance(tokenizerFactory);
for (String s : args)
tfIdf.trainIdf(s);
System.out.printf("n %18s %8s %8sn",
"Term", "Doc Freq", "IDF");
for (String term : tfIdf.termSet())
System.out.printf(" %18s %8d %8.2fn",term,tfIdf.docFrequency(term),
tfIdf.idf(term));
for (String s1 : args) {
for (String s2 : args) {
System.out.println("nString1=" + s1);
System.out.println("String2=" + s2);
System.out.printf("distance=%4.2f proximity=%4.2fn",
tfIdf.distance(s1,s2),
tfIdf.proximity(s1,s2));
}
}
}
}
[/b]------------------
分享到:
相关推荐
Lingpipe(自然语言处理的Java开源工具包)入门 Lingpipe 是一款功能强大、文档详细的自然语言处理软件包,由 Alias 公司开发,当前版本为 3.5。Lingpipe 的功能包括主题分类、命名实体识别、词性标注、句题检测、...
最新自然语言处理的Java开源工具包-LingPipe3.7.0
,LingPipe(开源自然语言处理的Java开源工具包) 中文分词java程序
《lingpipe-4.1.2:计算机语言学在文本处理中的应用》 lingpipe-4.1.2是一款强大的工具包,专为利用计算机语言学...通过深入学习和熟练使用lingpipe,我们可以更有效地挖掘文本中的信息,推动自然语言处理技术的发展。
自然语言处理(NLP)是计算机科学领域的一个重要分支,它专注于开发算法和技术,使得计算机能够理解、解析、生成和学习人类的自然语言。在这个压缩包中,我们聚焦于NLP在Python和Java中的应用,特别是针对docx文档的...
标题《NATURAL_LANGUAGE_PROCESSING_WITH_JAVA_AND_LINGPI》和描述《NATURAL_LANGUAGE_PROCESSING_WITH_JAVA_AND_LINGPI》表明这本手册的主题是利用Java语言和LingPipe库来进行自然语言处理(Natural Language ...
Apache LingPipe是一个强大的自然语言处理工具包,提供了多种文本处理功能,如词性标注、命名实体识别、情感分析以及LSI等。在描述中提到的修改,主要是针对LingPipe中的LSI实现进行定制,可能包括自定义文本输入...
本文内容涉及Java 6版本在文本处理方面的详细知识点,同时也与Lingpipe库的使用方法相结合,适用于希望在Java中实现自然语言处理(NLP)功能的开发者。 首先,提及的“Lingpipe”是一个专门用于自然语言处理的Java...
【标题】"DBUGR:自然语言处理课程项目"是一个基于Java开发的自然语言处理(NLP)课程项目,旨在帮助学生和开发者深入了解NLP技术并进行实践。这个项目可能涵盖了从基础的文本预处理到复杂的语言模型和信息提取等多种...
**LingPipe** 是一个强大的自然语言处理工具包,被广泛应用于文本分析领域。该书《Text Analysis with LingPipe 4》旨在帮助读者深入理解如何使用LingPipe 4来进行高效的文本分析。 #### 描述:Text Analysis with ...
《医学自然语言处理应用——基于Java的深度探索》 在当今的信息时代,医学领域的数据量呈爆炸性增长,从病历记录、医学文献到临床试验报告,无一不是信息的海洋。为了有效挖掘这些数据中的知识,医学自然语言处理...
自然语言事件解析是自然语言处理的一个子领域,涉及语义分析、句法分析和信息抽取等关键技术。NLP的目标是使计算机能够理解和生成人类语言,而事件解析则是识别文本中隐藏的动作、状态或交互,这些都反映了现实世界...
在自然语言处理(NLP)中,停用词是指在文本中频繁出现但对理解语义贡献不大的词汇,如“的”、“是”、“the”、“and”等。在信息检索、文本分析和机器学习任务中,移除这些停用词可以提高算法的效率和结果的准确...
LingPipe是一款强大的自然语言处理库,由Alias-i公司开发,主要用于实现文本分析、信息抽取、机器翻译、情感分析等任务。它以Java编程语言编写,提供了一套全面的API,使得开发者能够方便地构建复杂的NLP应用。LAPPs...
在自然语言处理(NLP)领域,句子切分(Sentence Segmentation)是一项基础任务,它涉及到将连续的文本划分为独立的句子。本项目聚焦于实现一个能够处理中英文混合文本的断句程序,这对于理解和分析多语言文本至关...
Linepipe训练集是由香港城市大学推出的,专门针对中文数据处理的资源,对于学习和研究自然语言处理(NLP)的Java开发者来说,这是一个极其宝贵的资料。这个训练集包含了一系列的文本文件,旨在帮助开发者理解和实践...
动机:我开发此Java软件包来促进有关自然语言处理(NLP)主题模型的相关研究。 将研究论文提交期刊时,我将公开发布所有源代码。 Jar依赖 如果要使用此软件包,则需要下载一些Java jar:commons-math3-3.5.jar,...
自然语言处理(NLP,Natural Language Processing)是计算机科学领域的一个重要分支,主要涉及如何让计算机理解、解析、生成和生成人类语言。在本压缩包"nlp:英文文本处理的一些代码"中,我们聚焦于使用Java进行英文...
1. **自然语言处理(NLP)**:为了理解用户的输入并提供恰当的响应,kochengBotV2可能使用了NLP技术,包括词法分析、句法分析、语义理解等。Java有多个NLP库可供选择,如Stanford NLP、Apache OpenNLP和LingPipe。 ...