我是UIMA的新手...

我想连接到数据库,提取数据并使用UIMA regex注释器对其进行处理,然后写回数据库。

例:
表: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驱动程序来连接数据库。

提前致谢

最佳答案

有两种方法可以实现此目的。

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

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

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

消费者:
 -阅读JCAS documentText并使用主键更新数据库

更好的方法是通过创建连接到数据库的外部资源(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

08-07 15:14