我有一个Web服务,输入的是一个句子,我想使用CRFClassifier获得这句话的句段。 所以我用下面的代码。

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);
    }
}

对于每个Web请求,我都可以新建SegmentParser()。parse(sentence)。 实际上,新的SegmentParser()需要很长时间,因此这是一个非常糟糕的设计。

所以我的问题是:

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

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

    C类{public void f()const {}}

  ask by zhihuifan translate from so

本文未有回复,本站智能推荐:

1回复

线程“main”中的异常java.lang.NoClassDefFoundError:edu/stanford/nlp/pipeline/StanfordCoreNLP

我从https://stanfordnlp.github.io/CoreNLP/下载了stanford corenlp zip文件,然后将其解压缩并cd到其中。 现在,我尝试运行以下Java文件。 javac -cp "*" SentimentAnalysis.java works正常,但是
1回复

CRFClassifier无法识别句子拆分器选项

我正在使用CoreNLP在多行英文文本中注释网元。 当执行以下操作时: 句子拆分效果很好,可以识别两个句子。 但是,当我按如下方式使用NER分类时: 我收到以下错误消息: 而分类器似乎将所有文本视为一个句子,从而导致对实体“马丁·杰里米”(而不是两个不同的实体)的错误识别。
1回复

NLP的GATE有多好?

我正在尝试构建一个基本上必须执行命名实体识别(NER)的NLP应用程序。 我遇到了盖茨 。 据我所知,这是一个构建NLP应用程序的框架。 我测试了ANNIE,与GATE一起分发的IE系统但是我的域的NER结果不符合预期。 事实上,任何NER,如Stanford CoreNLP或NLTK,
2回复

与NLP的句子比较

我使用lingpipe进行句子检测,但是我不知道是否有更好的工具。 据我了解,没有办法比较两个句子,看看它们是否代表同一意思。 是否还有其他好的资料来源,可以在其中提供一种用于比较两个句子并查看它们是否相似的预构建方法? 我的要求如下:
1回复

如何使用序列化的CRFClassifier与StanfordCoreNLPprop'ner'

我正在使用StanfordCoreNLP API接口以编程方式执行一些基本的NLP。 我需要在我自己的语料库上训练一个模型,但是我想使用StanfordCoreNLP接口来完成它,因为它在幕后处理了很多干技术,我不需要太多的专业化。 我已经训练了一个我想用于NER的CRFC分类器,序列化为
1回复

使用Wikipedia的NLP(Java编程)

寻求帮助以便做出最终决定。 几个月以来,我一直在寻找一种Java API,可以帮助我访问Wikipedia并获取文章的内容。 我的项目是建立给定领域概念的分类法。 细节: 我有一个领域文本语料库,我提取了第一组术语(代表领域)。 我在Wikipedia中搜索这些单词的文章,以提
3回复

NLP新手,关于注释的问题

我是NLP的新手,我正在寻找一个起点,就一些教程,文档或示例代码而言。 我被告知要研究处理自然文本以从中提取一些结构化数据的可能性。 例如,我想从以下语句中提取(注释)高度和重量。 “他身高6英尺,体重200磅”或“身高6英尺,体重200”等。我调查了UIMA,但它似乎是一个自创的REGE
2回复

副词的质量检查生成-NLP

我的数据集的结构如下: 产品1-句子1 产品2-句子2 产品3-句子3 。 。 等等 句子看起来像这样: 产品1-“我们建议您穿上这款时尚的单品,搭配金色吊式耳环,舒尔达绑腿和平底鞋,以显出低调的外观。” 一个可能的问题是-“我们是否建议您穿上这款时尚的衣服,搭