Java nlp:CRFClassizer.segmentString线程安全吗?

Java nlp:CRFClassizer.segmentString线程安全吗?,java,nlp,Java,Nlp,我有一个web服务,输入的是一个句子,我想用CRFClassizer得到这个句子的片段。 所以我使用了下面的代码 public class SegmentParser { private CRFClassifier<CoreLabel> classifier; public SegmentParser() { Properties props = new Properties(); props.setProperty("sighanCo

我有一个web服务,输入的是一个句子,我想用CRFClassizer得到这个句子的片段。 所以我使用了下面的代码

public class SegmentParser {
    private CRFClassifier<CoreLabel> classifier;
    public SegmentParser() {
        Properties props = new Properties();
        props.setProperty("sighanCorporaDict", "/Users/zhifan/Downloads/stanford-segmenter-2015-01-30/data");
        props.setProperty("NormalizationTable", "/Users/zhifan/Downloads/stanford-segmenter-2015-01-30/data/norm.simp.utf8");
        props.setProperty("normTableEncoding", "UTF-8");
        props.setProperty("serDictionary", "/Users/zhifan/Downloads/stanford-segmenter-2015-01-30/data/dict-chris6.ser.gz");
        props.setProperty("inputEncoding", "UTF-8");
        props.setProperty("sighanPostProcessing", "true");
        classifier = new CRFClassifier<CoreLabel>(props);
        classifier.loadClassifierNoExceptions("/Users/zhifan/Downloads/stanford-segmenter-2015-01-30/data/ctb.gz", props);
    }

    public List<String> parse(String sentence) {
        return classifier.segmentString(sentence);
    }
}
公共类分段分析器{
专用CRFClassizer分类器;
公共语法分析器(){
Properties props=新属性();
props.setProperty(“sighanCorporaDict”,“/Users/zhifan/Downloads/stanford-segmenter-2015-01-30/data”);
props.setProperty(“NormalizationTable”,“/Users/zhifan/Downloads/stanford-segmenter-2015-01-30/data/norm.simp.utf8”);
props.setProperty(“normTableEncoding”、“UTF-8”);
props.setProperty(“serDictionary”,“/Users/zhifan/Downloads/stanford-segmenter-2015-01-30/data/dict-chris6.ser.gz”);
道具设置属性(“输入编码”、“UTF-8”);
props.setProperty(“siganpostprocessing”、“true”);
分类器=新的CRFClassizer(道具);
loadClassifierNoExceptions(“/Users/zhifan/Downloads/stanford-segmenter-2015-01-30/data/ctb.gz”,props);
}
公共列表解析(字符串语句){
返回分类器.segmentString(句子);
}
}
对于每个web请求,我都可以使用新的SegmentParser().parse(句子)。实际上,新的SegmentParser()需要很长的时间,所以它是一个非常糟糕的设计

因此,我的问题是:

  • 我可以为所有请求初始化一个SegmentParser实例吗?SegmentParser.parse是线程安全的吗?(我认为也可以说CRFClassizer.segmentString是线程安全的)

  • 通常,我如何知道Java中的class.method()是否是线程安全的? 对于C++,通常如果F()被声明为以下情况,则可以认为C f-()是线程安全的。由于c.f()的执行是相互独立的,因此即使使用同一个c实例调用了f()

    C类{ public void f()常量{} }