NLP - 在基本的 GATE 的 Jape 注释规则中使用否定来删除不需要的注释单词



我试图在"工作情况"的上下文中创建注释。我想使用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短语的意思是:

  1. 给我一个注释{Lookup.majorType == jobtitle},没有任何注释{Token.string =~ "chair"}

  1. 给我一个注释{Lookup.majorType == jobtitle},没有任何注释{Token.string =~ "[Mm]odel"}

因此,单词chair对OR短语的第二个子句有效,类似地,单词model对第一个子句有效。

我不完全确定它是否有效,但下面的代码可以做到这一点:

{Lookup.majorType == jobtitle, !Token.string =~ "chair", !Token.string =~ "[Mm]odel"}

最新更新