大家好,
感谢这个很棒的软件。我想请教一下以下问题:
在使用关系提取器从自定义实体类型中训练特定关系时,我注意到某些部分的当前可能实体是“硬编码”的,例如:
- https://github.com/stanfordnlp/CoreNLP/blob/master/src/edu/stanford/nlp/ie/machinereading/domains/roth/RothEntityExtractor.java#L16
- https://github.com/stanfordnlp/CoreNLP/blob/master/src/edu/stanford/nlp/ie/machinereading/domains/roth/RothCONLL04Reader.java#L64
通过修改这两个位,可以在需要的情况下成功地重用关系提取器与自定义实体,但这需要重新编译并进行初步排查以理解这一点。
您是否对一个pull-request感兴趣,该pull-request将这些硬编码方法重构为可以从属性文件中获取的内容?例如:在属性文件中可以指示一个“entitiesPath”选项,然后指向一个带有这些实体的正常化和非正常化值的制表符分隔文件作为其列。
如果没有提供此选项,则可能可以使用这些默认的硬编码实体来保持当前的行为。
这将使具有自定义实体的关系提取器工作流程在不重新编译代码的情况下成为可能。
请告知您的意见。
再次感谢您!
8条答案
按热度按时间chy5wohz1#
在制作自定义关系提取训练方面,已经引起了很大的兴趣。但我认为前进的道路是使训练新关系模型变得更容易,这些关系与KBPAnnotator一起工作。我将尽力确保为斯坦福核心NLP 3.8.0提供清晰的文档和必要的代码更改。
1wnzp6jl2#
好的,非常感谢及时的回复。
所以理解是输入格式将从Roth CONLL04格式迁移到KBP格式进行训练,在这一点上会变得灵活。
目前我有一个小的customisation本地来调整这个,并将继续使用这种方法。
wnvonmuf3#
是的,那将是一个计划。我将开始着手这个工作,希望不会花费太长时间。顺便说一下,如果你碰巧有任何样本训练数据,我可以查看。我正在寻找一个例子,以便我可以确保我的修改正常工作。
8ulbf1ek4#
你好@J38 - 抱歉我花了一段时间才回复你。
这种方法肯定与你的意图不同,如上所述,但如果你认为这样的参数化在有人需要此类自定义的情况下是有用的,那么我很乐意发起一个pull request,在KBPAnnotator实现Relation Extractor训练之前。
请告诉我你的想法!👍
eulz3vhy5#
你好,
感谢斯坦福的优秀工具!
我非常需要能够在我的项目中使用自定义实体来训练关系抽取(RE)。虽然我不是专业的Java程序员(如果有适当的指导,我可以从源代码编译),但我并不完全理解如何像aoldoni建议的那样“更改代码”。在3.8版本中,是否有可能使用自定义实体训练自定义关系?如果不行,我应该如何使用aoldoni建议的方法?我有可用的原始roth格式的训练语料库。非常感谢您的回复!我附上了一个小样本训练文件。
rel_train.txt
d8tt03nd6#
你好,@rpalenik ,
如果不是这样,我该如何使用aoldoni建议的方法?
关于这个问题,请注意:
pxyaymoc7#
你好 @aoldoni ,
非常感谢,我需要更多的帮助。我明白我需要做以下几件事:
然而,我遇到了很多编译错误。我是不是做错了?你能帮我用正确的方法吗?
谢谢。
R.
sulc1iza8#
Here is the output from the compiler......
ant_error.txt