本文整理汇总了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;
}
示例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;
}