如何扩展stanford coreNLP西班牙语模型/字典

时间:2017-02-10 15:18:55

标签: stanford-nlp

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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

系统管理员TITLE MISC 2

令牌序列标签标签 - 可以覆盖的优先级

上述规则将标记"系统管理员"在文本中为TITLE。

对于你的情况:

Veracruz LUG MISC,ORG,PERS 2

这将允许字典覆盖MISC,ORGS和PERS。如果不在第三列中添加额外的标签,它就不会覆盖先前标记的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.

它正确标记了它。你能不能让我知道你跑了什么句子给韦拉克鲁斯造成了不正确的标签?