【问题标题】:How to load a specific classifier in StanfordCoreNLP如何在 StanfordCoreNLP 中加载特定的分类器
【发布时间】:2015-07-29 22:04:23
【问题描述】:

想知道有没有办法在 StanfordCoreNLP 中加载特定的分类器。我正在尝试解决一个问题,即默认加载的 3 个分类器第三个分类器不能可靠地返回 ner 标签并导致应用程序不一致。想知道仅加载english.all.3 类对于基本的命名实体标记就足够了,以及以下列表中其他两个类的相关性是什么。

edu/stanford/nlp/models/ner/english.all.3class.dissim.crf.ser.gz edu/stanford/nlp/models/ner/english.muc.7class.dissim.crf.ser.gz edu/stanford/nlp/models/ner/english.conll.4class.dissim.crf.ser.gz

【问题讨论】:

    标签: stanford-nlp


    【解决方案1】:

    经过一番研究,我得到了答案。我们可以使用 ner.model 加载特定模型。想知道我们是否可以引用 StanfordCoreNLP 库 jar 中已经打包的模型,而不是为此在项目工作目录中复制模型。

    Properties configuration = new Properties();
    configuration.put("annotators", "tokenize,ssplit,pos,lemma,ner");
    configuration.put("ner.model", "english.all.3class.distsim.crf.ser.gz");
    StanfordCoreNLP coreNLP  = new StanfordCoreNLP(configuration);
    

    【讨论】:

      【解决方案2】:

      是的,如果您在模型 jar 中指定路径,应该没问题。

      基本上,您可以将“ner.model”设置为您希望使用的序列化 crf 的逗号分隔列表,因此如果您想排除其中一个,只需提供您想要的两个模型即可。

      为了更清楚起见,这三个模型已经在不同的数据集上进行了训练。

      all.3class 在 7 个数据源上进行了训练,这些数据源已标记(人、组织、位置、无)。

      muc.7class 使用来自 MUC-7 命名实体任务的数据进行训练,包括(日期、位置、金钱、组织、百分比、人、时间)。更多信息:

      https://catalog.ldc.upenn.edu/LDC2001T02

      http://www-nlpir.nist.gov/related_projects/muc/proceedings/ne_task.html

      conll.4class 使用来自 CONLL 2003 NER 语料库的数据进行训练,包括(人、组织、位置、其他)。

      http://www.cnts.ua.ac.be/conll2003/ner/

      【讨论】:

      • 感谢您的意见。这有帮助。我在stackoverflow.com/a/31727674/4946589 发布了另一个问题,让我知道我应该如何获得帮助。如果是错误,我应该如何通知 Stanford-nlp 团队知道这一点?
      猜你喜欢
      • 2011-02-10
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 2016-04-12
      • 1970-01-01
      相关资源
      最近更新 更多