【发布时间】:2017-02-20 18:26:52
【问题描述】:
我有一个 WORDTABLE,其中包含表示为字符串(零、一、二、...、n)的数字以及作为特征的相应数字。我正在尝试注释一个固定长度的字符串化数字序列。
例如:
一二三四 -> 应该加注解
一二三四五六->不应该标注
到目前为止我已经完成了
WORDTABLE numbers = "numbers.csv";
DECLARE Annotation number(STRING int_string, STRING digit);
DECLARE Annotation numberSequence;
Document{-> MARKTABLE(number, 1, numbers, "digit" = 2)};
(number number) {-> MARK(numberSequence)};
这匹配包含 n 字符串化数字的序列,我想要的是确定序列的长度,例如:
number[4,4] {-> MARK(numberSequence)};
其中包含字符串化数字的句子中的最小和最大标记应该相等,例如,等于 4。 可以这样做吗?
【问题讨论】:
-
您是如何尝试应用最后一条规则的?您可能需要扩展它以避免在更长的序列中匹配:
ANY{-PARTOF(number)} @number[4,4] {-> MARK(numberSequence)} ANY{-PARTOF(number)}; -
我想说的是:
[4,4]是一个有效的构造。也许您想添加 -PARTOF(number) 以避免重叠匹配? -
嗨彼得,谢谢你回答我。我不确定“您如何尝试应用最后一条规则”是什么意思。我已经将我在问题之上写的那些用作测试句,并且脚本对两者都进行了注释。顺便说一句,我已尝试按照您的建议扩展规则,并且确实可以按我的意愿工作。你应该把它作为答案让我接受吗?
-
我的印象是您已经找到了解决问题的方法:最小/最大量词。