Stanford nlp 如何扩展stanford coreNLP西班牙语模型/词典

Stanford nlp 如何扩展stanford coreNLP西班牙语模型/词典,stanford-nlp,Stanford Nlp,我只是使用Standford Core NLP运行一个“hello world”,从文本中获取命名实体。但有些地方没有得到正确的识别,如“Ixhuatlancillo”或“Veracruz”,这两个必须标记为LUG(地点)的城市都被标记为ORG。 我想扩展西班牙语模型或字典,添加墨西哥的地名(城市),并添加人名。我该怎么做 提前感谢。最快、最简单的方法是使用regexner注释器。您可以使用它手动构建字典 下面是一个示例规则格式(由制表符分隔,第一列可以是任意数量的单词) 系统管理员职务杂项2

我只是使用Standford Core NLP运行一个“hello world”,从文本中获取命名实体。但有些地方没有得到正确的识别,如“Ixhuatlancillo”或“Veracruz”,这两个必须标记为LUG(地点)的城市都被标记为ORG。 我想扩展西班牙语模型或字典,添加墨西哥的地名(城市),并添加人名。我该怎么做


提前感谢。

最快、最简单的方法是使用
regexner
注释器。您可以使用它手动构建字典

下面是一个示例规则格式(由制表符分隔,第一列可以是任意数量的单词)

系统管理员职务杂项2

可以优先覆盖的令牌序列标记

上述规则将文本中的“系统管理员”标记为标题

对于您的情况:

韦拉克鲁斯吊耳杂项,组织,人员2

这将允许字典覆盖杂项、组织和PER。如果不在第三列中添加额外的标记,它将不会覆盖以前标记的ner标记

您可以使用如下命令来运行它:

java -Xmx8g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,regexner -props StanfordCoreNLP-spanish.properties -regexner.mapping /path/to/new_spanish.rules - regexner.ignorecase -regexner.validpospattern "^(NN|JJ|NNP).*" -outputFormat text -file sample-text.txt
请注意,
regexner.ignorecase
表示进行无大小写匹配,
-regexner.validpospattern
表示只应将序列与指定的pos标记模式匹配

说到这里,我只说了一句:

Ella fue a Veracruz.

它给它贴上了正确的标签。您能告诉我您使用的哪个句子导致Veracruz的标记不正确吗?

这里有一些关于RegexNER注释器的好文档,可以让您在字典中添加条目:我正在解析的部分文本是:Nombre:Mario Ezequiel Villalobos Gallegos。迪雷西奥:路易斯·唐纳多·克罗西奥第56号,何塞·马上校。莫雷洛斯·帕沃́n、伊克华特兰西洛、韦拉克鲁斯·科雷奥电气公司́尼科:密歇根州_email@outlook.comCURP:XXXX801015XCLLR08 RFC:XXXX801015X8“Ixhualancillo”获得正确的标签,但“Veracruz”仍然标记为ORG。仅解析文本“Ixhuatlancillo,Veracruz”,我就可以正确标记这两个位置。文本长度可能有问题?另一个问题,示例中数字2的用途是什么?:Veracruz LUG MISC,ORG,PERS 2以下是规则格式的完整描述:最后一个数字是优先级,如果多个规则匹配同一文本,它将确定哪一个规则获胜。常见的用例是与类似字典的字符串完全匹配“Veracruz”,但规则可能更复杂,如以V开头的任何大写单词的“V[A-Zaz]+”,因此,如果两个规则都有,则需要打破平局的优先级来确定使用哪个规则。