1

我是 UIMA 的新手...

我想连接到数据库,提取数据并使用 UIMA 正则表达式注释器对其进行处理并写回数据库。

示例:
表:emp

Name       Department      EmpId  
AB-C       Sale's          2134[3]  
XYZ,       Fina&nce        23423  
PQ#R       Marketing       234(47  

使用 UIMA 正则表达式注释器进行转换

期望的输出

Name       Department      EmpId  
ABC        Sales           21343  
XYZ        Finance         23423  
PQR        Marketing       23447  

我已经安装了 UIMA、ECLIPSE 和相关的 JDBC 驱动程序来连接数据库。

提前致谢

4

1 回答 1

2

有几种方法可以实现这一目标。

最简单(不可扩展)的方法是编写 3 个类(使用 uimaFIT http://uima.apache.org/uimafit.html#Documentation使编码更容易):

CollectionReader: - 读取对象中的所有数据 - 遍历对象并从每个对象创建 JCAS,您可以将主键存储在注释中。

分析引擎: - 使用 UIMA 正则表达式注释器来操作 JCAS 的 documentText

消费者: - 读取 JCAS 文档文本并使用主键更新数据库

更好的方法是通过创建一个外部资源( http://uima.apache.org/d/uimafit-current/tools.uimafit.book.html#ugr.tools.uimafit.externalresources)来抽象读写连接到数据库(提供 hasNext() 和 next() 方法 - 这对于在 CollectionReader 和 Consumer 中使用非常方便)。这具有可以隔离所有初始化逻辑的优点。使用 UIMAFit 时,您可以使用配置参数注入(http://uima.apache.org/d/uimafit-current/tools.uimafit.book.html#ugr.tools.uimafit.configurationparameters),例如进行连接字符串和可配置的搜索查询。

使用 uimaFIT 中的 SimplePipeline 类来运行您的管道:http ://uima.apache.org/d/uimafit-current/tools.uimafit.book.html#ugr.tools.uimafit.pipelines

于 2014-09-04T12:34:42.767 回答