1

我有以下示例文本:

邮编 20193 美国
纽约

我想做的是只匹配“纽约”,即邮政编码后的行。

我尝试使用此代码,但它不起作用 -

声明标题;pin BREAK #{-> MARK(heading)} BREAK;

(在此之前我已经声明了 pin)。

请让我知道该怎么做。

谢谢!

4

1 回答 1

0

问题可能是过滤设置。BREAK 默认是不可见的。它永远不会成功匹配,因为 ruta 会自动跳过换行符。

尝试添加另一个规则来更改规则前面的过滤设置:

RETAINTYPE(BREAK);
pin BREAK #{-> MARK(heading)} BREAK;

可能还有另一个问题,因为 BREAK 代表 \n 和 \r。因此,该规则不适用于 windows 行结尾。你需要类似的东西:

pin BREAK[1,2] #{-> MARK(heading)} BREAK;

ruta 中有一个用于注释行的 utils 分析引擎:PlainTextAnnotator 如果包含它,则可以编写如下内容:

pin Line{-> heading};

(您可能需要修剪线条,例如,如果线条以空格开头或结尾,则使用 TRIM 操作)

免责声明:我是 UIMA Ruta 的开发人员

于 2016-02-28T15:55:31.333 回答