我是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