2014-09-04 74 views
1

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

在此先感谢

+0

如果你的开采和加工是喜欢你的例子(除去非字母数字字符),那么我会明确地用纯SQL去(例如SQL REPLACE) – Renaud 2014-09-04 19:50:07

+0

我需要做很多文本处理,所以我很期待在UIMA工作 – 2014-09-07 06:42:40

回答

2

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

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

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

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

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

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

+0

谢谢@jvdbogae – 2014-09-07 06:43:35