用新条款扩展斯坦福NER条款

时间:2015-06-12 01:52:03

标签: stanford-nlp

我们需要在斯坦福大学的命名实体提取表/模型中添加术语,但无法弄清楚如何。用例 - 我们需要随着时间的推移建立一组IED术语,并希望斯坦福管道在文本文件中找到术语。

想看看这是否是某人之前做过的事情

2 个答案:

答案 0 :(得分:1)

请查看http://nlp.stanford.edu/software/regexner/以了解如何使用它。它允许您指定短语到实体类型的映射文件。如果要更新映射,请更新文件并重新运行Stanford管道。

如果您对如何实际学习这些术语的模式感兴趣,可以查看我们的模式学习系统:http://nlp.stanford.edu/software/patternslearning.shtml

答案 1 :(得分:1)

您可以指定要应用的代码吗?

要使用RegexNER,您只需构建一个文件,每行包含1个条目:

TEXT_PATTERN \ TTAG

您可以将自定义词典中的所有内容放入文件中,例如custom_dictionary.txt

我假设IED你的意思是

https://en.wikipedia.org/wiki/Improvised_explosive_device ??

所以你的文件可能如下:

VBIED \ tIED_TERM

粘性炸弹\ tIED_TERM

RCIED \ tIED_TERM

新国家/地区

新人\ tPERSON

(注意Stack Overflow有一些奇怪的格式,每个条目之间不应该有空行,每行应该是1个条目!!)

如果您随后运行此命令:

java -mx1g -cp'*'edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators'tokenize,ssplit,pos,lemma,regexner,ner'-file sample_input.txt -regexner.mapping custom_dictionary.txt

您将标记sample_input.txt

更新只是更新custom_dictionary.txt

的问题

要注意一件事,重要的是你先将“ner”放在第一位,或者将“regexner”放在你的注释器列表中。

如果您的最高优先级是使用您的专业术语(例如IED_TERM)进行标记,那么我会首先在管道中运行regexner,因为标记符如何相互覆盖会有一些棘手的问题。