`
fuhao_987
  • 浏览: 63646 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

openNLP(1)_分词

    博客分类:
  • NLP
阅读更多
前端时间看了一下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;}
}
-----------------------------------------------------------------------------
了解的不深入,希望多多指教
0
0
分享到:
评论
3 楼 hr10108 2012-12-21  
你好!我刚开始涉及OpenNLP,现在我想自己生成一个标记名字的modle,但生成一个new-bin之后却发现精确度太低了,是不是培养的数据太少了?(我培养了10万条,觉得应该够了啊!)
另外,我还试着培养一个有关商品的modle(如从亚马逊的商品介绍标题中提取关键字,主要为商品名)结果精确度更低,是不是这些title的词性排序太杂乱了,影响精度?
2 楼 fuhao_987 2011-03-24  
stonechao 写道
你好,我也在用opennlp,想请教你一个问题,我现在有很多单词,不一定是原型,想把提取出它们的原形,能提供点建议么?


用词性标注?我翻译过openNLP词性标注参照的penn treebank tags。http://fuhao-987.iteye.com/blog/891698
1 楼 stonechao 2011-03-23  
你好,我也在用opennlp,想请教你一个问题,我现在有很多单词,不一定是原型,想把提取出它们的原形,能提供点建议么?

相关推荐

    opennlp-tools-1.3.0.gz_OpenN_OpenNLP 1.3.0_opennlp-too_opennlp.t

    1. **分词(Tokenization)**:这是处理文本的第一步,OpenNLP提供了高效的分词模型,能够将连续的文本分割成有意义的词汇单元。 2. **词性标注(POS Tagging)**:它能够自动识别文本中每个词的词性,如名词、动词...

    OpenNLP开发人员文档

    OpenNLP 开发人员文档 OpenNLP 是一个基于机器学习的自然语言处理工具包,旨在提供一个成熟的工具包,用于自然语言处理任务,如断词、句子切分、部分词性标注、命名实体抽取、组块、解析和指代消解。 OpenNLP 库...

    基于Apache OpenNLP框架构建的语言模型,用于识别文本中的词汇、短语和实体,以及进行句法分析和生成文本的联想

    Apache OpenNLP 是一个强大的自然语言处理库,主要用于处理人类语言数据,提供多种文本分析功能。在这个场景中,我们使用OpenNLP来构建一个Java语言模型,该模型能够识别文本中的词汇、短语和实体,并进行句法分析,...

    openNLP初步学习

    初学openNLP分词,代码初步实现了opennlp的相关方法

    基于NLP技术实现的中文分词插件,准确度比常用的分词器高太多,同时提供ElasticSearch和OpenSearch插件

    ideaseg 是 Indexea 推出的一个基于最新的 HanLP 自然语言处理工具包实现的中文分词器, 包含了最新的模型数据,同时移除了 HanLP 所包含的非商业友好许可的 NeuralNetworkParser 相关代码和数据。

    NLP.rar_NLP_NLP java_词切分

    可能使用了如Apache OpenNLP、Stanford NLP或ChineseNLP等开源NLP工具包,这些库提供了预训练的模型和函数,可以方便地进行中文词切分。 "**词切分**",在中文NLP中通常称为分词。由于中文没有明显的空格分隔,所以...

    SpringBoot + OpenNLP + Neo4j + Spark朴素贝叶斯分类器实现石油相关论文的智能分析问.zip

    在本项目中,OpenNLP可能被用来执行如分词、命名实体识别、句法分析等任务,这些都是论文分析的基础步骤。通过这些预处理,系统能够理解论文内容,提取关键信息,为后续的分类提供准备。 3. Neo4j: Neo4j是一种...

    NLP.zip_NLP_nlp处理docx_python nlp_自然语言处理

    Apache OpenNLP和LingPipe也有类似的工具,但它们可能在某些特定任务上表现出不同的优势。 在实际的NLP项目中,我们通常会经历以下步骤: 1. 数据预处理:这包括清洗文本(去除标点、数字、停用词等),标准化(大...

    Stem.rar_stemming_分词 英文

    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...

    基于OpenNLP + Neo4j + Spark朴素贝叶斯分类器实现石油相关论文的智能分析问答系统.zip

    1. **OpenNLP**: OpenNLP是Apache软件基金会开发的一个开源自然语言处理库。在本项目中,OpenNLP主要用于文本预处理,包括分词、词性标注、命名实体识别等任务。这些任务对于理解和解析石油领域的专业术语至关重要,...

    s-msrseg.v1_NLP_

    1. "on.bbo", "pn.bbo", "ln.bbo":这些可能是预训练的模型文件,分别代表不同类型的词语边界,例如“开放命名实体”(Open Names)、“专有名词”(Proper Nouns)和“位置名词”(Location Names)。 2. "table....

    英文文本分词jar包与代码

    使用OpenNLP进行英文分词,需要加载预先训练好的模型文件,然后调用`opennlp.tools.tokenize.Tokenizer`类的方法: ```java import opennlp.tools.tokenize.SimpleTokenizer; // 创建分词器 SimpleTokenizer ...

    几乎最全的中文NLP资源库.zip

    语料/数据集、变量命名神器、分词语料库+代码、任务型对话英文数据集、ASR 语音数据集 + 基于深度学习的中文语音识别系统、笑声检测器、Microsoft多语言数字/单位/如日期时间识别包、中华新华字典数据库及api(包括...

    北大语言学 自然语言处理课程 NLP系列课程 5_汉语分词 共34页.pptx

    在NLP中,汉语分词是一项基础且关键的任务,因为汉语的书面形式没有像英语那样通过空格来区分词汇,使得计算机在处理时需要额外的步骤来识别词语边界。 汉语自动切分,顾名思义,是指利用计算机程序自动将连续的...

    b_中文分词_

    1. **后向最大匹配算法(BM算法)**:这是一种常见的中文分词方法,它从字符串的末尾开始向前匹配词典中的词,每次选取最长的可能匹配。这种方法的优点在于处理长词时效率较高,但可能会导致短词被误切或漏切。在...

Global site tag (gtag.js) - Google Analytics