前端时间看了一下openNLP,用了一下,把自己的体会写下来。。
首先,openNLP是关于自然语言处理的开源项目,可以用eclipse作为第三方插件,去它的官方网站http://incubator.apache.org/opennlp/index.html下载需要的包,或者直接去http://sourceforge.net/projects/opennlp/ 下载。导入三个包:maxent-3.0.0.jar,jwnl-1.3.3.jar,opennlp-tools-1.5.0.jar
下面说一下分词:
openNLP使用了不同的模型实现诸如分词,分句,标注。所以在使用之前需要下载对应的模型http://opennlp.sourceforge.net/models-1.5/
包括了六种语言。分词上我下的英文:en-token.bin加到项目中就可以了
分词的代码:
import java.io.*;
import opennlp.tools.tokenize.Tokenizer;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.tokenize.TokenizerModel;
/*
*输入:需要分词的字符串
*输出:字符串数组
*/
public String[] Token(String str){
try{
InputStream modelIn = new FileInputStream("en-token.bin");
TokenizerModel model = null;
try {
model = new TokenizerModel(modelIn);
}
catch (IOException e) {
e.printStackTrace();
}
finally {
if (modelIn != null) {
try {
modelIn.close();
}
catch (IOException e) {
}
}
}
Tokenizer tokenizer = new TokenizerME(model);
String tokens[] = tokenizer.tokenize(str);
return tokens;
}
catch(FileNotFoundException e){return null;}
}
-----------------------------------------------------------------------------
了解的不深入,希望多多指教
分享到:
相关推荐
1. **分词(Tokenization)**:这是处理文本的第一步,OpenNLP提供了高效的分词模型,能够将连续的文本分割成有意义的词汇单元。 2. **词性标注(POS Tagging)**:它能够自动识别文本中每个词的词性,如名词、动词...
OpenNLP 开发人员文档 OpenNLP 是一个基于机器学习的自然语言处理工具包,旨在提供一个成熟的工具包,用于自然语言处理任务,如断词、句子切分、部分词性标注、命名实体抽取、组块、解析和指代消解。 OpenNLP 库...
Apache OpenNLP 是一个强大的自然语言处理库,主要用于处理人类语言数据,提供多种文本分析功能。在这个场景中,我们使用OpenNLP来构建一个Java语言模型,该模型能够识别文本中的词汇、短语和实体,并进行句法分析,...
初学openNLP分词,代码初步实现了opennlp的相关方法
ideaseg 是 Indexea 推出的一个基于最新的 HanLP 自然语言处理工具包实现的中文分词器, 包含了最新的模型数据,同时移除了 HanLP 所包含的非商业友好许可的 NeuralNetworkParser 相关代码和数据。
可能使用了如Apache OpenNLP、Stanford NLP或ChineseNLP等开源NLP工具包,这些库提供了预训练的模型和函数,可以方便地进行中文词切分。 "**词切分**",在中文NLP中通常称为分词。由于中文没有明显的空格分隔,所以...
在本项目中,OpenNLP可能被用来执行如分词、命名实体识别、句法分析等任务,这些都是论文分析的基础步骤。通过这些预处理,系统能够理解论文内容,提取关键信息,为后续的分类提供准备。 3. Neo4j: Neo4j是一种...
Apache OpenNLP和LingPipe也有类似的工具,但它们可能在某些特定任务上表现出不同的优势。 在实际的NLP项目中,我们通常会经历以下步骤: 1. 数据预处理:这包括清洗文本(去除标点、数字、停用词等),标准化(大...
with open('document.txt', 'r') as file: text = file.read() tokens = tokenize_text(text) stems = stem_words(tokens) stem_counts = count_stems(stems) for stem, count in stem_counts.items(): print...
1. **OpenNLP**: OpenNLP是Apache软件基金会开发的一个开源自然语言处理库。在本项目中,OpenNLP主要用于文本预处理,包括分词、词性标注、命名实体识别等任务。这些任务对于理解和解析石油领域的专业术语至关重要,...
1. "on.bbo", "pn.bbo", "ln.bbo":这些可能是预训练的模型文件,分别代表不同类型的词语边界,例如“开放命名实体”(Open Names)、“专有名词”(Proper Nouns)和“位置名词”(Location Names)。 2. "table....
使用OpenNLP进行英文分词,需要加载预先训练好的模型文件,然后调用`opennlp.tools.tokenize.Tokenizer`类的方法: ```java import opennlp.tools.tokenize.SimpleTokenizer; // 创建分词器 SimpleTokenizer ...
在NLP中,汉语分词是一项基础且关键的任务,因为汉语的书面形式没有像英语那样通过空格来区分词汇,使得计算机在处理时需要额外的步骤来识别词语边界。 汉语自动切分,顾名思义,是指利用计算机程序自动将连续的...
1. **后向最大匹配算法(BM算法)**:这是一种常见的中文分词方法,它从字符串的末尾开始向前匹配词典中的词,每次选取最长的可能匹配。这种方法的优点在于处理长词时效率较高,但可能会导致短词被误切或漏切。在...
语料/数据集、变量命名神器、分词语料库+代码、任务型对话英文数据集、ASR 语音数据集 + 基于深度学习的中文语音识别系统、笑声检测器、Microsoft多语言数字/单位/如日期时间识别包、中华新华字典数据库及api(包括...