Machine learning 以下正则表达式的Uima Ruta规则

Machine learning 以下正则表达式的Uima Ruta规则,machine-learning,uima,ruta,Machine Learning,Uima,Ruta,我需要在下面的案例中添加注释。我有文本块&需要获取包含银行的文本子块。例如,下面是一个完整的文本块,我需要将美国银行注释为银行名称 以下描述,以下简称业主和银行 美国NA,利益继承人来自 银行名称可能有很多情况 美国银行[初创银行] 苏格兰皇家银行[中间银行] 是银行[最终银行] 等等 所以文本需要注释完全取决于银行 我无法编写通用规则来涵盖所有情况,到目前为止,我尝试了以下规则 - Rule 1 W[0,3] BankNameKeyWord W[0,3] {->

我需要在下面的案例中添加注释。我有文本块&需要获取包含银行的文本子块。例如,下面是一个完整的文本块,我需要将美国银行注释为银行名称

  • 以下描述,以下简称业主和银行 美国NA,利益继承人来自
银行名称可能有很多情况

  • 美国银行[初创银行]
  • 苏格兰皇家银行[中间银行]
  • 是银行[最终银行] 等等
所以文本需要注释完全取决于银行 我无法编写通用规则来涵盖所有情况,到目前为止,我尝试了以下规则

 - Rule 1



     W[0,3] BankNameKeyWord W[0,3] {-> MARK(BANKNAME,1,3)};(looking around bank for 3 words)

 - Rule 2

       W? W? W? BankNameKeyWord W? W? W? {-> MARK(BANKNAME,1,7)};

我正在寻找涵盖所有情况的通用方法。

您可以应用如下规则:

(CW[0,3] @BankNameKeyWord SW.ct=="of"? CW[0,3]) {-> MARK(BANKNAME,1,3)};
但这并不能解决你的问题。正如commnets所指出的,您需要一些语言预处理,比如chunker。如果只是银行名称,你可以考虑一本字典。< /P>
免责声明:我是UIMA Ruta的开发者

也许我错了;但是考虑到您使用java标记,您不需要显示java代码吗?您不可能涵盖所有情况;这个问题不能用任何形式的正则表达式来解决。它需要一种自然语言处理方法,但永远不会达到100%的准确率。@GhostCat通过mistake@JimGarrison可能不是泛型,但我们如何处理if-else条件?只是一个注释:如果没有额外的起始值,则规则开头的可选rue元素不是可选的。