UIMA Ruta 錯誤錦集(一):MATCHEDTEXT用法
阿新 • • 發佈:2021-02-16
技術標籤:UIMA_RUTA
MATCHEDTEXT用來提取一個variable裡的text。
如:提取一個句子後,在selection view裡檢視句子中各個成分的content時,我們會看到:
patternValue1是對這部分內容的描述,而非text本身。而patternValue2-4是text本身。
造成此情況的原因是,在create時,patternValue1後面是variable,而餘下三個則被賦值為對應variable包含的text。
程式碼如下:
DECLARE PredicateRef;
STRING test1,test2,test3, test4;
STRING M1, M2,M3,M4;
STRING Geo1,Geo2,Geo3,Geo4;
p1:Predicate{AND(OR(p1.prSemantics=="desc_obj_state",p1.prSemantics=="desc_obj_augmentation", p1.prSemantics=="desc_obj_reduction"), OR(p1.prStructure=="[epiv ipv]", p1.prStructure=="ipv"))} Lemma.value=="by" ?{->MARK(PredicateRef, 1, 2)};
Sentence {->MATCHEDTEXT(ExtractText)}->{
//Comparing a to b, indicator1 predicates v1 in Geo1(la position may change), predicates2 v2 in Geo2, predicate3 v3 in Geo3 and predicate4 v4 in Geo4”
CompareTo
i1:Indicator Where?{->MATCHEDTEXT(Geo1)} PredicateRef{->MATCHEDTEXT(test1)} v1:Measure{->MATCHEDTEXT(M1)} Where?{->MATCHEDTEXT(Geo1)}
//ANY+? in case we have () in between
ANY*? Connectors
Where?{->MATCHEDTEXT(Geo2)} PredicateRef?{->MATCHEDTEXT(test2)} VariAdv?{->MATCHEDTEXT(test2)} v2:Measure{->MATCHEDTEXT(M2)} Where?{->MATCHEDTEXT(Geo2)}
//3
ANY*? Connectors
Where?{->MATCHEDTEXT(Geo3)} PredicateRef?{->MATCHEDTEXT(test3)} VariAdv?{->MATCHEDTEXT(test3)} v3:Measure{->MATCHEDTEXT(M3)} Where?{->MATCHEDTEXT(Geo3)}
//4
ANY*? Connectors
Where?{->MATCHEDTEXT(Geo4)} PredicateRef?{->MATCHEDTEXT(test4)} VariAdv?{->MATCHEDTEXT(test4)} v4:Measure{->MATCHEDTEXT(M4)} Where?{->MATCHEDTEXT(Geo4)}
ANY*? Connectors
{->CREATE(MergeCompareValueWithReference, 1, 50, "patternIndicator1"=i1.kpiToken, "patternPredicate1"=test1, "patternValue1"=v1, "entityGeo1"=Geo1, "patternPredicate2"=test2, "patternValue2"=M2, "entityGeo2"=Geo2, "patternPredicate3"=test3, "patternValue3"=M3, "entityGeo3"=Geo3, "patternPredicate4"=test4, "patternValue4"=M4, "entityGeo4"=Geo4, "match"=ExtractText)};
//"patternIndicator2"=i2.kpiToken, "patternPredicate2"=PredicateRef.prToken, "patternPredicate2"=VariAdv.prToken, "patternValue2"=v2, "match"=ExtractText)};
};
最開始定義M1,M2,M3,M4用來儲存text。
在程式碼中用v1:Measure{->MATCHEDTEXT(M1)}
提取變數v1的text。在最後create時候,若"patternValue1"=v1,
則selection view中出現描述。若"patternValue1"=M1,
則selction view中展現句子中v1代表的具體text。