我们需要在斯坦福大学的命名实体提取表/模型中添加术语,但无法弄清楚如何。用例 - 我们需要随着时间的推移建立一组IED术语,并希望斯坦福管道在文本文件中找到术语。
想看看这是否是某人之前做过的事情
答案 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,因为标记符如何相互覆盖会有一些棘手的问题。