package org.ansj.recognition.impl;
import java.util.List;
import org.ansj.domain.Result;
import org.ansj.domain.Term;
import org.ansj.library.DicLibrary;
import org.ansj.recognition.Recognition;
import org.nlpcn.commons.lang.tire.domain.Forest;
/**
*
* 用户自定词典识别 多本词典加入后将不再具有先后顺序,合并后统一规划.如果需要先后顺序请分别每个词典调用 Result.Recognition().Recognition() 这种方式 TODO:这种写灵活性是够了,但是速度不咋地.发愁........该不该这么写.先保留吧..也许在下一个版本中来做把
*
* @author Ansj
*
*/
public class DicRecognition implements Recognition {
private static final long serialVersionUID = 7487741700410080896L;
private Forest[] forests = null;
public DicRecognition() {
forests = DicLibrary.gets(DicLibrary.DEFAULT);
}
public DicRecognition(String[] keys) {
forests = DicLibrary.gets(keys);
}
/**
* @param forests
*/
public DicRecognition(Forest[] forests) {
this.forests = forests;
}
public DicRecognition(Forest forest) {
this.forests = new Forest[] { forest };
}
@Override
public void recognition(Result result) {
for (Forest forest : forests) {
if (forest == null) {
continue;
}
recognition(result, forest);
}
}
private void recognition(Result result, Forest forest) {
List<Term> terms = result.getTerms();
}
}