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