当前位置: 首页>>代码示例>>Java>>正文


Java ChunkerME.chunkAsSpans方法代码示例

本文整理汇总了Java中opennlp.tools.chunker.ChunkerME.chunkAsSpans方法的典型用法代码示例。如果您正苦于以下问题:Java ChunkerME.chunkAsSpans方法的具体用法?Java ChunkerME.chunkAsSpans怎么用?Java ChunkerME.chunkAsSpans使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在opennlp.tools.chunker.ChunkerME的用法示例。


在下文中一共展示了ChunkerME.chunkAsSpans方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: chunk

import opennlp.tools.chunker.ChunkerME; //导入方法依赖的package包/类
/**
 * 利用open nlp进行chunk,并添加一些修正规则
 *
 * @param words
 *
 * @return
 *
 * @throws Exception
 */
public static List<ChunkPhrase> chunk(List<Word> words) throws Exception {
    List<ChunkPhrase> phrases = new ArrayList<ChunkPhrase>();
    int wordsCount = words.size();
    String[] toks = new String[wordsCount - 1]; // 忽略第一个单词Root
    String[] tags = new String[wordsCount - 1];
    for (int i = 1; i < words.size(); i++) {
        toks[i - 1] = words.get(i).getName();
        tags[i - 1] = words.get(i).getPos();
    }
    // 采用open nlp进行chunk
    ChunkerModel chunkerModel;
    try {
        chunkerModel = ModelLoader.getChunkerModel();
    } catch (Exception e) {
        log.error("Failed to load chunk model!", e);
        throw e;
    }
    ChunkerME chunkerME = new ChunkerME(chunkerModel);
    Span[] spans = chunkerME.chunkAsSpans(toks, tags);
    for (Span span : spans) {
        Word word = words.get(span.getStart() + 1);
        if ("'s".equals(word.getName())) {
            ChunkPhrase prePhrase = phrases.get(phrases.size() - 1);
            prePhrase.setRightIndex(span.getEnd());
            prePhrase.getWords().addAll(words.subList(span.getStart() + 1, span.getEnd() + 1));
            phrases.set(phrases.size() - 1, prePhrase);
        } else {
            ChunkPhrase chunkPhrase = new ChunkPhrase(span.getStart() + 1, span.getEnd(), new ArrayList<Word>(words.subList(span.getStart() + 1, span.getEnd() + 1)));
            phrases.add(chunkPhrase);
        }
    }
    return phrases;
}
 
开发者ID:procyon-lotor,项目名称:event-direct-mts,代码行数:43,代码来源:OpenNLPTools.java


注:本文中的opennlp.tools.chunker.ChunkerME.chunkAsSpans方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。