所有分词器都是 Segment
的子类, Segment
提供以下配置接口:
// 设为索引模式
public Segment enableIndexMode(boolean enable)
//开启词性标注
public Segment enablePartOfSpeechTagging(boolean enable)
//开启人名识别
public Segment enableNameRecognize(boolean enable)
//开启地名识别
public Segment enablePlaceRecognize(boolean enable)
//开启机构名识别
public Segment enableOrganizationRecognize(boolean enable)
//是否启用用户词典
public Segment enableCustomDictionary(boolean enable)
//是否启用音译人名识别
public Segment enableTranslatedNameRecognize(boolean enable)
//是否启用日本人名识别
public Segment enableJapaneseNameRecognize(boolean enable)
//是否启用偏移量计算(开启后Term.offset才会被计算)
public Segment enableOffset(boolean enable)
//是否启用所有的命名实体识别
public Segment enableAllNamedEntityRecognize(boolean enable)
用户可以使用链式语法对Segment执行创建和配置操作,一气呵成:
Segment shortestSegment = new ViterbiSegment().enableCustomDictionary(false).enablePlaceRecognize(true).enableOrganizationRecognize(true);
对于工具类中的分词器,也可以使用暴露出来的SEGMENT成员对其进行配置:
String text = "泽田依子是上外日本文化经济学院的外教";
System.out.println(StandardTokenizer.segment(text));
StandardTokenizer.SEGMENT.enableAllNamedEntityRecognize(true);
System.out.println(StandardTokenizer.segment(text));
线程安全性
除了配置方法不作保证外,任何分词器都是线程安全的。
详细文档:http://hanlp.linrunsoft.com/doc/_build/html/segment.html