我是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驱动程序来连接数据库。
提前致谢
答案 0 :(得分:2)
有几种方法可以实现这一目标。
最简单(不那么可扩展)的方法是编写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