所有分词器都是 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