regex - UIMA RUTA : regular expression in WORDLIST

标签 regex ruta

有没有办法在 WORDLIST 中使用正则表达式?
我需要实现与 https://issues.apache.org/jira/browse/UIMA-3382 中提到的相同的内容.

或者有什么替代方法可以解决它?

编辑 :
WORDLIST 被定义为文本项列表。如果我有一个要标记为相同类型的正则表达式列表,该怎么办。有没有办法做到这一点?

例如- 我想在文档中查找日期,
但是日期有多种格式,因此正则表达式是一种更简洁的方式来涵盖所有可能的情况。
所以我试图使用下面的语法,但唯一匹配的是那些没有特殊正则表达式语法的单词的情况。

DECLARE Date;
WORDLIST DateFormatList='DateFormat.regex';
Document{-> MARKFAST(Date, DateFormat, true,1)};

我可以在规则中更改哪些内容,以便将 DateFormatList 中的项目视为正则表达式?

谢谢

最佳答案

如果没有志愿者实现,在不久的将来将不支持词表中的正则表达式。问题在于词表在查找过程中使用的是特里树而不是 FST,这使得所需的功能无法直接实现。

在一些罕见的情况下,例如对于可选序列,可以使用单词列表模拟所需的功能。

如果您想检测日期,我强烈建议您使用 UIMA Ruta 中的常规规则。组合和利用东西更容易。常见的例子是一个非常简单的规则:

ANY{INLIST(MonthsList) -> MARK(Month), MARK(Date,1,3)} 
PERIOD? NUM{REGEXP(".{2,4}") -> MARK(Year)};

如果你想坚持使用正则表达式,那么你可以使用 simple regexp rules 的列表:
"regexp1" -> Date;
"regexp2" -> Date;
"regexp3" -> Date;

这些规则还支持特征分配和捕获组。您要使用的功能的区别在于语法(几个规则而不是一个简单的列表)和性能(按顺序应用正则表达式)。

(我是UIMA Ruta的开发者)

关于regex - UIMA RUTA : regular expression in WORDLIST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24443900/

相关文章:

java - 如何从服务器返回 UIMA Ruta 的输出?

c# - 如何使用 C# 中的正则表达式将文本中的电子邮件地址替换为姓名?

regex - 带文本板的多行正则表达式

objective-c - 在 NSString 中搜索网页链接

java - 空操作导致 'found no viable alternative'

java - Spark 上下文中的 Uima Ruta 内存不足问题

javascript - 如何在 Firefox 中使用 javascript 正则表达式替换 href?

英国电话号码和电话代码的 Java 正则表达式

uima - 设定特征-Uima Ruta

uima - 词汇表-uima ruta