Java 用Jape文件查找句子中的句型

Java 用Jape文件查找句子中的句型,java,nlp,gate,Java,Nlp,Gate,如果我在日语规则中写的单词出现在同一个句子中,我需要注释句子的一部分。这句话是“这个孩子无法抗拒对他日常生活的任何改变”。我在“trouble.lst”文件中放了resist这样的词,在“alternation.lst”文件中放了changes。现在在这句话中,我需要将“抵制任何变化”部分注释为“A3b”。我试过使用下面的代码,但它不考虑同一句话中的单词。我的日语规则是从不同的句子中提取单词。假设resist出现在一个句子中,而在后面的另一个句子中发生了变化,那么这段代码也对其进行了注释。有谁能

如果我在日语规则中写的单词出现在同一个句子中,我需要注释句子的一部分。这句话是“这个孩子无法抗拒对他日常生活的任何改变”。我在“trouble.lst”文件中放了resist这样的词,在“alternation.lst”文件中放了changes。现在在这句话中,我需要将“抵制任何变化”部分注释为“A3b”。我试过使用下面的代码,但它不考虑同一句话中的单词。我的日语规则是从不同的句子中提取单词。假设resist出现在一个句子中,而在后面的另一个句子中发生了变化,那么这段代码也对其进行了注释。有谁能帮我想出解决这个问题的办法吗

Phase:secondpass
Input: Lookup
Options: control = brill

Rule: A3b
({Lookup.majorType == "trouble"}
{Lookup.majorType == "alteration"}
):label
-->
:label.A3b = {rule= "A3b"}

在这种情况下,您不能使用like
{X In Y}
,因为它们只适用于单个注释,而不适用于注释序列

但你可以使用“技巧”:

  • 输入
    中包括
    句子
    注释。
    这是最主要的。即使在规则中的任何地方不使用
    语句
    ,它也会阻止在注释之间的某个地方新语句开始时进行此类匹配。
    但它不会阻止匹配,即句子开始于注释本身的同一点

  • 禁止任何句子使用
    从第二个注释的同一点开始运算符:
    {查找,!句子}


  • 除了覆盖句子本身的
    句子
    注释外,句子拆分器还可以在句子边界上创建
    Split
    注释。如果在
    输入
    行中包含
    Split
    ,但在规则中未提及
    {Split}
    ,这将产生阻止跨越句子边界的匹配的效果

    Phase: secondpass
    Input: Lookup Split
    Options: control = brill
    
    Rule: A3b
    ({Lookup.majorType == "trouble"}
     {Lookup.majorType == "alteration"}
    ):label
    --> :label.A3b = {rule= "A3b"}
    
    其工作方式是,
    输入
    行确定日本匹配器可以“看到”哪些注释-如果故障和更改
    查找
    注释在不同的句子中,那么匹配器将看到序列
    {Lookup}{Split}{Lookup}
    ,该序列与想要
    {Lookup}{Lookup}的规则不匹配

    Phase: secondpass
    Input: Lookup Split
    Options: control = brill
    
    Rule: A3b
    ({Lookup.majorType == "trouble"}
     {Lookup.majorType == "alteration"}
    ):label
    --> :label.A3b = {rule= "A3b"}