UIMA用于结构化数据

时间:2014-09-04 10:06:17

标签: java regex eclipse uima

我是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驱动程序来连接数据库。

提前致谢

1 个答案:

答案 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