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


Java Intervalable类代码示例

本文整理汇总了Java中com.hankcs.hanlp.algoritm.ahocorasick.interval.Intervalable的典型用法代码示例。如果您正苦于以下问题:Java Intervalable类的具体用法?Java Intervalable怎么用?Java Intervalable使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Intervalable类属于com.hankcs.hanlp.algoritm.ahocorasick.interval包,在下文中一共展示了Intervalable类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: tokenize

import com.hankcs.hanlp.algoritm.ahocorasick.interval.Intervalable; //导入依赖的package包/类
/**
 * 一个最长分词器
 *
 * @param text 待分词文本
 * @return
 */
public Collection<Token> tokenize(String text)
{

    Collection<Token> tokens = new ArrayList<Token>();

    Collection<Emit> collectedEmits = parseText(text);
    // 下面是最长分词的关键
    IntervalTree intervalTree = new IntervalTree((List<Intervalable>) (List<?>) collectedEmits);
    intervalTree.removeOverlaps((List<Intervalable>) (List<?>) collectedEmits);
    // 移除结束

    int lastCollectedPosition = -1;
    for (Emit emit : collectedEmits)
    {
        if (emit.getStart() - lastCollectedPosition > 1)
        {
            tokens.add(createFragment(emit, text, lastCollectedPosition));
        }
        tokens.add(createMatch(emit, text));
        lastCollectedPosition = emit.getEnd();
    }
    if (text.length() - lastCollectedPosition > 1)
    {
        tokens.add(createFragment(null, text, lastCollectedPosition));
    }

    return tokens;
}
 
开发者ID:priester,项目名称:hanlpStudy,代码行数:35,代码来源:Trie.java

示例2: parseText

import com.hankcs.hanlp.algoritm.ahocorasick.interval.Intervalable; //导入依赖的package包/类
/**
 * 模式匹配
 *
 * @param text 待匹配的文本
 * @return 匹配到的模式串
 */
@SuppressWarnings("unchecked")
public Collection<Emit> parseText(String text)
{
    checkForConstructedFailureStates();

    int position = 0;
    State currentState = this.rootState;
    List<Emit> collectedEmits = new ArrayList<Emit>();
    for (int i = 0; i < text.length(); ++i)
    {
        currentState = getState(currentState, text.charAt(i));
        storeEmits(position, currentState, collectedEmits);
        ++position;
    }

    if (!trieConfig.isAllowOverlaps())
    {
        IntervalTree intervalTree = new IntervalTree((List<Intervalable>) (List<?>) collectedEmits);
        intervalTree.removeOverlaps((List<Intervalable>) (List<?>) collectedEmits);
    }

    if (trieConfig.remainLongest)
    {
        remainLongest(collectedEmits);
    }

    return collectedEmits;
}
 
开发者ID:priester,项目名称:hanlpStudy,代码行数:35,代码来源:Trie.java


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