GATE:JAPE规则javarhs特征映射
我试图在一个句子注释中获得现有注释及其特征,即对于每个句子,可能有多个注释,它们具有一个,即majorType、string和type特征 我想要一个新的“句子包含”注释,带有包含注释及其各自特征的特征图 我认为这应该是优秀的盖特日语语法教程pdf中以下规则的延伸:GATE:JAPE规则javarhs特征映射,java,nlp,grammar,gate,Java,Nlp,Grammar,Gate,我试图在一个句子注释中获得现有注释及其特征,即对于每个句子,可能有多个注释,它们具有一个,即majorType、string和type特征 我想要一个新的“句子包含”注释,带有包含注释及其各自特征的特征图 我认为这应该是优秀的盖特日语语法教程pdf中以下规则的延伸: Phase:usingJAVAinRHS Input: Lookup Options: control = all Rule: javainRHS1 ( {Lookup.majorType == Team}
Phase:usingJAVAinRHS
Input: Lookup
Options: control = all
Rule: javainRHS1
(
{Lookup.majorType == Team}
)
:team
-->
{
gate.AnnotationSet team = (gate.AnnotationSet)bindings.get("team");
gate.Annotation teamAnn = (gate.Annotation)team.iterator().next();
gate.FeatureMap features = Factory.newFeatureMap();
features.put("teamOfSport", teamAnn.getFeatures().get("minorType"));
features.put("rule","javainRHS1");
outputAS.add(team.firstNode(), team.lastNode(), "Team",features); }
除了在我的新规则中,我希望对句子进行注释,然后获得包含的注释:
Phase:usingJAVAinRHS
Input: Lookup Sentence
Options: control = all
Rule: javainRHS1
(
{Sentence contains {Lookup.majorType == Team}}
)
:team
-->
{
gate.AnnotationSet team = (gate.AnnotationSet)bindings.get("team");
gate.Annotation teamAnn = (gate.Annotation)team.iterator().next();
gate.FeatureMap features = Factory.newFeatureMap();
features.put("teamOfSport", teamAnn.getFeatures().get("minorType"));
features.put("rule","javainRHS1");
outputAS.add(team.firstNode(), team.lastNode(), "Team",features); }
如何获得包含注释的特征图
非常感谢您可以使用foreach获取包含在句子中的所有注释,并根据它们的主要类型或种类存储在特征图中
Imports: {
import static gate.Utils.*;
}
Phase:usingJAVAinRHS
Input: Lookup Sentence
Options: control = appelt
Rule: javainRHS1
(
{Sentence contains {Lookup.majorType == Team}}
)
:team
-->
{
gate.AnnotationSet team = (gate.AnnotationSet)bindings.get("team");
gate.FeatureMap features = Factory.newFeatureMap();
for(Annotation annotation:team.inDocumentOrder())
{
if(annotation.getType() == "Lookup"){
features.put(annotation.getFeatures().get("majorType"),stringFor(doc,annotation));
}
else{
features.put(annotation.getType(), stringFor(doc,annotation));
}
}
features.put("rule","javainRHS1");
outputAS.add(team.firstNode(), team.lastNode(), "Team",features);
}
您可以使用foreach获取句子中包含的所有注释,并根据它们的主要类型或种类存储在特征图中
Imports: {
import static gate.Utils.*;
}
Phase:usingJAVAinRHS
Input: Lookup Sentence
Options: control = appelt
Rule: javainRHS1
(
{Sentence contains {Lookup.majorType == Team}}
)
:team
-->
{
gate.AnnotationSet team = (gate.AnnotationSet)bindings.get("team");
gate.FeatureMap features = Factory.newFeatureMap();
for(Annotation annotation:team.inDocumentOrder())
{
if(annotation.getType() == "Lookup"){
features.put(annotation.getFeatures().get("majorType"),stringFor(doc,annotation));
}
else{
features.put(annotation.getType(), stringFor(doc,annotation));
}
}
features.put("rule","javainRHS1");
outputAS.add(team.firstNode(), team.lastNode(), "Team",features);
}
谢谢你。我添加了你的建议,它不会抛出错误,只会将句子注释、句子字符串和规则名称作为特征。它不会输出“Team”注释的主要类型。还有什么我需要改变的吗?我找不到你。。。你能告诉我吗?谢谢你。我添加了你的建议,它不会抛出错误,只会将句子注释、句子字符串和规则名称作为特征。它不会输出“Team”注释的主要类型。还有什么我需要改变的吗?我找不到你。。。你能告诉我吗?