首页 > 解决方案 > 用 RegexNER 而不是 CRF 模型覆盖命名实体

问题描述

我正在尝试在任务中使用斯坦福 CoreNLP 检测命名实体。

我已经在我的 RegexNER 映射文件中给出了如下规则:

Train   VEHICLE_TYPE    2.0

但它被识别TrainCRIMINAL_CHARGE实体类型。

我已经添加了这个选项ner.applyFineGrained并将其设置为true也许这就是为什么它覆盖了 CoreNLP 的 CRF 模型。

我的问题是如何在 RegexNER 映射文件中添加这样的异常,或者是否有更好的方法。

标签: stanford-nlp

解决方案


您应该使用以下设置:

# run fine-grained NER with a custom rules file
java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner -ner.fine.regexner.mapping custom.rules -file example.txt -outputFormat text

您需要确保设置ner.fine.regexner.mapping为您的自定义规则文件以使用它而不是默认的细粒度规则,这些规则将标记诸如CRIMINAL_CHARGE


推荐阅读