2016-05-11 6 views
0

私はこのタスクを持っています:私は動詞のリストでGATEの.lstファイルを持っています。 haveアノテーションInner_predicatesそして、私はOuter_predicatesとして他の動詞に注釈を付ける必要があります。このルールを書くのを助けてくれますか?GATEリストにあるものを除いて各動詞に注釈を付ける方法

私はこの試みた:

Phase: Outer_Pred 
Input: Morph Inner_Pred 
Options: control = appelt 

Rule: Outer_Pred 

(
    ({Morph.pos == verb}, Morph.baseForm !=Inner_Pred) 
):tag 
--> 
:tag.Outer_Pred = {rule = "Outer_Pred"} 

をしかし、それは役に立ちません。動詞を見つけて、既に注釈Inner_Predを持っているかどうかをチェックし、そうでない場合は、この動詞にOuter_Predとして注釈を付けることができますか? inner_pred.lstには、基本形式の動詞のリストがあります。

ありがとうございます。また、私が自分でこの情報をどこで見ることができるかを教えてもらえれば嬉しいです。私はGATE Jape Manualしか見つけられませんでしたが、それはかなり短く、多くの答えを提供しません。

+0

まずユーザーガイド:https://gate.ac.uk/sale/tao/splitch8.html、このリポジトリ:https://でゲート.ac.uk/wiki/jape-repository/ – Yasen

答えて

0

基本形式の動詞のリストがある場合は、flexible gazetteerを試してください。動詞だけでなく、一致するところで "Lookup"注釈を作成します。

Phase: Outer_Pred 
Input: Morph Lookup 
Options: control = appelt 

Rule: Outer_Pred (
    {Morph.pos == "verb", !Lookup.majorType == "yourInnerPredType"} 
):tag 
--> 
:tag.Outer_Pred = {rule = "Outer_Pred"} 

これは主要なタイプ「yourInnerPredType」を持つ検索と同じオフセットに起動しないすべての「動詞」に一致します。そして、リストにない各動詞に一致するように

また、右のpos機能を使用してMorphアノテーションを使用していることを確認してください。

+0

ありがとうございました – KseniaK

+0

私はJAPE構文について質問しました: "Lookup.majorType ==" yourInnerPredType ""と "Lookup.majorType!=" yourInnerPredType ""の間に違いがありますか?あるいは、すべてのケースでうまくいくでしょうか? – KseniaK

+0

{Morph.pos == "動詞"、Lookup.majorType!= "inner"}は、Morphと同じ位置にLookupアノテーションがあることを必要とします(また、そのmajorTypeは "inner"とは異なる)。 答えの構文にはLookup注釈は必要ありません。「Lookup注釈があっても、majorType == inner」であってはいけません。「majorType!= Lookup注釈が必要です。内側 " – Yasen

0

あなたはしますRHSでJavaを使用して、簡単な悪たれルール書くことができます:| Token.category == VBD |

a)のいずれかの動詞(Token.category == VBを取るにしてなど)。あなたがGATEのtao.pdf

B)の最後に見つけることができる可能動詞POSタグのリストが開始し、このトークンのノードを停止し、Inner_PredためAnnotationSetを返された場合は)現在のトークン

CをカバーInner_Pred注釈をチェック取ります空である場合、bからの境界で新しい注釈Outer_Verbを作成します。

+0

ありがとうございました。問題は、「b)このトークンのノードを開始および停止し、現在のトークンをカバーするInner_Pred注釈をチェックできる」というJAPEルールを作成する方法です。あなたは簡単な例を教えてください。 – KseniaK

0

これは悪たれルールのソースコードである:

Phase: Verb 
Input: Token 
Options: control = appelt 
Macro:VERB 
(
    ({Token.category==VBD}|{Token.category==VBG}|{Token.category==VBN}|{Token.category==VBP}|{Token.category==VB}|{Token.category==VBZ}) 
) 
Rule:Verb 
(
(VERB) 
):verb 

--> 
{ 
AnnotationSet set = (AnnotationSet) bindings.get("verb"); 
Node startNode = set.firstNode(); 
Node stopNode = set.lastNode(); 
AnnotationSet innerAnnotations = outputAS.get(startNode.getOffset(), stopNode.getOffset()).get("Inner_Pred"); 
if (innerAnnotations == null || innerAnnotations.isEmpty()) { 
outputAS.add(startNode, stopNode, "Outer_Pred", Factory.newFeatureMap()); 
} 
} 
関連する問題