1

我一直在尝试搜索文本文件中的项目。

文本文件就像例如:`

>标题

00345

XYZ

方法名:fdsafk

日期:23-4-2012

更多文本和一些包含 XYZ 实例的部分

所以我最初对 XYZ 进行了字典搜索并找到了位置,但我只想要第一个XYZ而不是其余的。XYZ 有一个属性,它总是在 5 位代码和文本MethondName 之间

我无法做到这一点。

WORDLIST ZipList = 'Zipcode.txt';
DECLARE Zip;
Document
Document{-> MARKFAST(Zip, ZipList)};

DECLARE Method;
"MethodName" -> Method;


WORDLIST typelist = 'typelist.txt';
DECLARE type;
Document{-> MARKFAST(type, typelist)};

另外,我们如何在 UIMA RUTA 中使用 REGEX?

4

1 回答 1

1

有很多方法可以指定这一点。以下是一些示例(未经测试):

// just remove the other annotations (assuming type is the one you want)
type{-> UNMARK(type)} ANY{-STARTSWITH(Method)};

// only keep the first one: remove any annotation if there is one somewhere in front of it
// you can also specify this with POSISTION or CURRENTCOUNT, but both are slow
type # @type{-> UNMARK(type)}

// just create a new annotation in between
NUM{REGEXP(".....")} #{-> type} @Method;

在 UIMA Ruta 中使用正则表达式有两种选择:

  • (查找)简单的正则表达式规则,例如"[A-Za-z]+" -> Type;
  • (匹配)用于验证规则元素匹配的 REGEXP 条件,例如
    ANY{REGEXP("[A-Za-z]+")-> Type};

如果有不清楚的地方,请告诉我。然后我将扩展描述。

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

于 2016-02-16T14:03:02.653 回答