我正在创建一个TokensRegex注释器来提取建筑物的楼层数(只是一个例子来说明我的问题)。我有一个简单的模式,它将识别"4层“和”4层“作为我的定制实体”层“的实例。我还想添加一个NormalizedNER注释,使用表达式中使用的number实体的规范化值,但是我无法让它按照我想要的方式工作:
ner = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$NamedEntityTagAnnotation" }
normalized = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$NormalizedNamedEntityTagAnnotation" }
tokens = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$TokensAnnotation" }
ENV.defaults["ruleType"] = "tokens"
{
pattern: ( ( [ { ner:NUMBER } ] ) /floor(s?)/ ),
action: ( Annotate($0, ner, "FLOORS"), Annotate($0, normalized, $$1.text) )
}上面的规则只将输出中的NormalizedNER字段分别设置为上述示例的数字、"4“和”4“的文本值。有没有办法使用数字实体的归一化值("4.0“表示"4”和“4”)作为我的“楼层”实体的规范化值?
提前谢谢。
发布于 2015-07-27 10:14:13
正确的答案是基于@AngelChang的回答和评论,我只是把它张贴在这里,为了整洁。
必须修改规则,以便第二个注释()操作的第三个参数是$1[0].normalized
{
pattern: ( ( [ { ner:NUMBER } ] ) /floor(s?)/ ),
action: ( Annotate($0, ner, "FLOORS"), Annotate($0, normalized, $1[0].normalized) )
}根据@Angel的评论:
$1.归一化是第一个捕获组(作为CoreLabel)的第0标记的“规范化”字段。$$1返回MatchedGroupInfo,它有"text“字段,但没有规范化字段(因为这是在实际的令牌上)。
发布于 2015-07-06 18:01:45
试着改变
action: ( Annotate($0, ner, "FLOORS"), Annotate($0, normalized, $$1.text) )至
action: ( Annotate($0, ner, "FLOORS"), Annotate($0, normalized, $$1.normalized) )注释包含三个参数
发布于 2015-07-22 20:09:36
按照您的建议使用$$1.normalized,在输入“建筑物有七层楼”上运行会产生以下错误消息:注释文件test.txt {从七层楼提取注释错误}
这可能是因为NamedEntityTagAnnotation键尚未出现在由$$1表示的令牌中。我想,在运行TokensRegex之前,您应该确保您的数字标记--在本例中为"4“或”4“--将相应的规范化值"4.0”设置为其NamedEntityTagAnnotation键。
另外,你能告诉我在哪里可以找到更多关于注释()的第三个参数的信息吗?TokensRegex表达式的Javadoc页面没有列出$$n.normalized (可能需要更新吗?)
我相信,$$n.normalized所要做的就是检索值,在coreLabel.get(edu.stanford.nlp.ling.CoreAnnotations$NormalizedNamedEntityTagAnnotation.class)代码中,这个值相当于coreLabel.get(edu.stanford.nlp.ling.CoreAnnotations$NormalizedNamedEntityTagAnnotation.class),其中coreLabel是CoreLabel类型的,对应于TokensRegex中的$$n。这是因为您的TokensRegex中有以下一行:normalized = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$NormalizedNamedEntityTagAnnotation" }
https://stackoverflow.com/questions/31236221
复制相似问题