Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103593182
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-12 09:56:59

  来源:IBM developerWorks 中国网站    作者:知识管理技术主管

使用一个 XML 描述符文件让 UIMA 框架了解 SQLReader。每个 UIMA 组件都有这样的文件,可以使用 SDK 中的工具或手工创建这种文件。描述符指向组件的实现,在这种情况下是一个类文件,还包含组件需要的任何配置信息。对于 SQLReader,描述符包含源数据库的 URL 和登录所需的用户 id/密码等信息。在进行初始化时,使用 UIMA 提供的方法读取这些信息。

  描述符中另一个非常重要的信息是组件使用的类型系统的引用。CAS 将数据存储为有类型的结构,类型系统定义了类型以及类型之间的关系。图 2 显示 Preston 中使用的类型系统。类型系统是使用 SDK 工具定义的,这些工具还创建与类型系统中的类型对应的 Java ™ 类。清单 1 中的 SourceDocumentInfo 就是这样的类。它的 URI 属性用于保存 SQLReader 创建的文档 URI。(在 UIMA 处理结束时,这个 URI 将从 CAS 复制到 EIDB 中。)

  图 2. Preston 使用的 UIMA 类型系统。内置的 UIMA 类型名显示为斜体。箭头指出继承关系。


  当框架从 SQLReader 获得了 CAS 之后,将它传递给一个文本分析引擎(text analysis engine,TAE) 以便进行实际的分析。TAE 可以很复杂,由几个组件组成,包括其他 TAE。但是,在 Preston 中,TAE 只包含一个组件 NameReferenceAnnotator,这个组件实现了 UIMA 定义的 Annotator 接口。标注器是基本的文本分析组件。它的工作是使用提供给它的 CAS 中的信息(也就是文档文本),寻找一些新数据,然后将这些数据添加到 CAS 中。NameReferenceAnnotator 使用一个正则表达式寻找特定格式的人名,IMDB 文档中在提到人名时采用这种格式。(见 图 3。)人名放在单引号中,后面是 “(qv)”;很容易用正则表达式寻找这种格式。人名中惟一的复杂情况是人名本身可能包含一个或多个撇号。这个图还说明了 IMDB 如何消除人名的二义性,比如这里的 John Barrymore,在数据库中可能有多个人都叫这个名字。这对于后面一个步骤是有意义的。

阅读(402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~