我试图在"工作情况"的上下文中创建注释。我想使用JAPE规则自动注释工作情境的参与者。我使用的是基本规则,因为我对Java编码一无所知。以下是我创建的规则示例:
`Phase:ActeurIdentif
Input:Lookup Token
Options:Control=appelt
Rule:ActeurId
(
{Lookup.majorType == person_first, Token.orth == upperInitial}
|
{Token.string =~ "[Ff]riend"}
|
{Token.string =~ "[Cc]lient"}
|
{Token.string =~ "[Ss]upplier"}
|
{Token.string =~ "[Cc]ustomer"}
|
({Token.string =~ "[Tt]he"}
({Token})?
{Token.string =~ "[Aa]ctor"})
|
{Token.string =~ "[Tt]echnician"}
|
(((({Lookup.majorType == jobtitle, !Token.string =~ "chair"}
|
{Lookup.majorType == jobtitle, !Token.string =~ "[Mm]odel"})
|
{Lookup.majorType == jobtitle, Token.category != JJ})
|
{Lookup.majorType == jobtitle, Token.category != VB}))
)
:NomActeur
-->
:NomActeur.Acteur = {rule = "ActeurId"}`
问题是GATE没有考虑到我在我的规则中添加的4个否定。例如"Chair"one_answers";Model"仍然被认为是演员。我试图使用宏,但它没有工作,我认为这是一个问题有关的操作符(OR |)。有人能帮我一下吗?谢谢!
我认为这肯定与OR运算符有关。
({Lookup.majorType == jobtitle, !Token.string =~ "chair"}
|
{Lookup.majorType == jobtitle, !Token.string =~ "[Mm]odel"})
这个OR短语的意思是:
- 给我一个注释
{Lookup.majorType == jobtitle}
,没有任何注释{Token.string =~ "chair"}
或
- 给我一个注释
{Lookup.majorType == jobtitle}
,没有任何注释{Token.string =~ "[Mm]odel"}
因此,单词chair
对OR短语的第二个子句有效,类似地,单词model
对第一个子句有效。
我不完全确定它是否有效,但下面的代码可以做到这一点:
{Lookup.majorType == jobtitle, !Token.string =~ "chair", !Token.string =~ "[Mm]odel"}