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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-12 09:57:24

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

图 3. 来自 IMDB 的文档示例,说明了源数据中人名使用的特殊格式。

 Son of actor 'John Barrymore (I)' 
(qv) and actress 'Dolores Costello' (qv).

  Annotator 接口中最重要的方法是 initializeprocess。当框架调用 initialize 时,NameReferenceAnnotator 从描述符以字符串形式读取正则表达式并编译它。然后,当调用 process 时,它在从 CAS 收到的文档文本中寻找与正则表达式匹配的地方。每当找到匹配时,就将它作为图 2 所示的类型系统中的类型实例存储在 CAS 中。每个名字存储为一个 NameReference 对象,这个对象包含正则表达式找到的名字字符串,它的开头和结尾字符位置设置为 NameReference 从 Annotation 内置类型继承来 beginend 整数特性。NameReference 还包含一个 DocumentEntity 引用。这个结构的功能是存储关于文档中提到的每个实体(人)的信息。如果多次提到一个实体,那么每次提到时都引用同一个文档实体。使 Preston 比较简单的一个因素是:在 IMDB 数据中,提到同一个人的所有地方都采用完全相同的形式。所以,很容易识别适当的 DocumentEntity。如果必须对 Preston 进行扩展来处理其他类型的输入数据,那么必须能够处理同一名字的不同形式。例如,如果在 图 3 所示文档的较长版本中提到 “Mr Barrymore”,那么必须意识到这引用了与 “John Barrymore (I)” 一样的实体。进行这种连接所需的处理称为文档内共同引用(in-document co-reference)。在 Preston 中,不需要这种处理,因为 IMDB 数据非常一致。

  创建 Extracted Information Database

  为了在 NameReferenceAnnotator 从文档集合中发现的信息上进行文本挖掘,所有 CAS 中的提及信息和文档实体信息必须写入一个结构化数据库。这是在文档处理流程结束时进行的(参见 图 1)。在处理结束时接收每个 CAS 的组件称为 CAS 消费者,UIMA 为这个组件提供了 CasConsumer 接口。一个 UIMA 处理管道可以有多个 CAS 消费者,在从 Text Analysis Engine 退出时,这些 CAS 消费者依次接收每个 CAS。Preston 使用两个 CAS 消费者。一个称为 cas2jdbc,它将来自每个 CAS 的数据写到一个关系数据库(DB2)的表中;另一个称为 EidbManager,它忽略接收的 CAS,但是在每次运行开始时设置数据库,并在分析完所有文档之后对所有信息进行后期处理。
  图 4. Extracted Information Database(EIDB)的结构


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