专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » 正则表达式:InfoSphere Warehouse 中的文本分析 第 1 部分: 体系结构概述和用正则表达式提取信息的举例 »正文

正则表达式:InfoSphere Warehouse 中的文本分析 第 1 部分: 体系结构概述和用正则表达式提取信息的举例

来源: 发布时间:星期一, 2009年9月7日 浏览:26次 评论:0
  介绍

  最近次 TDWI 调查向数据管理专业人员询问“您认为在以后 3年您数据仓库中哪种数据和源系统会大量增加?” 结果表明他们预计非结构化数据会大量增加这种数据包括电子邮件、呼叫中心谈话记录、来自内容管理系统文档以及来自论坛或博客公开内容(见 参考资料 中这次调查链接)

  本系列讨论文本分析技术如何把非结构化文本数据转换为可以在业务智能化应用中使用有意义信息非结构化数据可以改进现有 BI 分析质量在某些情况下还有助于实现新信息探查类型

  举例业务场景

  下面两个业务场景举例介绍说明文本分析技术价值:

  通过尽早发现不满意客户减少客户流失:电信行业公司已经为防止客户流失建立了详细预测分析模型但是这些模型主要使用结构化数据添加来自非结构化数据信息可以显著增强这些预测模型例如公司可以在服务呼叫记录中发现客户提到了竞争对手从而发现可能会流失客户通过在客户流失模型中包含这种信息公司可以在出现客户不满最初迹象时及时采取措施

  改进早期警报系统质量:内部问题报告、客户电子邮件或呼叫中心谈话记录可以提供有关产品问题重要信息目前许多公司使用问题分类法 中组固定类别捕捉这些信息这些分类法通常难以发现细粒度问题如果分类法只包含高级类别公司就无法捕捉到问题实际原因但是如果分类法试图捕捉所有可能出现问题它们就会太笨拙不适合呼叫中心职员等线人员使用产品缺陷实际原因往往淹没在技术评论或呼叫中心日志中例如公司可能能够发现某产品有问题但是发现不了导致此问题部件因此公司失去了采取适当措施机会比如招回产品或检查使用问题部件其他产品通过使用 InfoSphere Warehouse 中常见词分析公司可以从客户对某产品型号意见中提取出相关并在报告中列出它们这有助于直接找到可能有问题部件

  在这两个场景中非结构化数据主要类型是文本公司还可能需要分析半结构化文本(比如 XML 内容)或其他数据类型(比如音频和视频)但是本系列作者发现和当今应用相关主要内容是形式自由文本比如技术笔记、通过 CRM 应用或电子邮件提交客户评论或来自新闻服务文本片段因此我们把本系列重点放在形式自由文本上

  信息提取任务

  文本分析背后基本任务是信息提取(Information ExtractionIE)信息提取是自然语言处理领域的它通过检查非结构化文本提取出概念(称为实体)和这些概念的间关系

  相关信息提取任务包括:

  指定实体识别(Named Entity RecognitionNER):识别和提取指定实体例如人名、地点名、货币表达式和问题标志

  关系检测(Relationship Detection):检测指定实体的间关系例如部件 X 导致问题 Y

  相互引用解析(Coreference resolution):在整个文档中识别出引用相同实体表达式例如以下文本中饭店名 “Best Hotel”:I liked my stay at the Best Hotel. It has very bright rooms. The hotel also features…

  基于列表和基于规则指定实体识别

  指定实体识别种思路方法是基于列表提取 实体这包括提取职员姓名(例如来自公司 LDAP 服务器)或产品名及其属性些领域已经有正式领域词汇表例如用于医疗保健行业 atized Nomenclature of Medicine-Clinical Terms (SnoMed CT)

  基于列表提取优点是词汇列表常常来自可信这意味着它创建和维护可以实现定程度自动化例如每当添加新产品名时可以让它触发批量更新另外提取结果立即提供给最终用户列表中词汇常常有各种变体和缩写必须由领域专家在列表中添加它们

  某些类型实体无法列出比如电话号码或货币表达式对于这些实体基于规则提取 是更合适思路方法基于规则提取优点是般化 — 条规则可以覆盖很大范围内实体个优点是规则可以考虑文档上下文这对于某些任务很重要比如在情感检测中个否定词(比如 “not”)会反转整个句子意义

  规则关键难点是复杂性 — 用户需要得到帮助才能创建和维护规则具有适当领域知识人常常是非技术人员因此配置工具需要对这些用户隐藏语言学和规则语言复杂性

  本文和本系列概述

  本文其余部分简要介绍 InfoSphere Warehouse 及其文本分析特性基本体系结构然后通过个简单举例演示如何在 InfoSphere Warehouse 中使用正则表达式提取概念

  本系列后续文章将介绍 InfoSphere Warehouse 中其他文本分析特性介绍说明如何在 IBM Cognos 8 BI 等报告软件Software产品中使用这些结果

  IBM InfoSphere Warehouse 体系结构

  InfoSphere Warehouse 是 IBM 在 IBM DB2® 上构建数据存储仓库解决方案本文主要关注 InfoSphere Warehouse 文本分析功能但是这个产品还包含用于仓库管理和分析任务许多其他工具比如在线分析处理 (OLAP)、性能管理和工作负载管理

  图 1. InfoSphere Warehouse 体系结构



  图片看不清楚?请点击这里查看原图(大图)

  如上面体系结构图所示InfoSphere Warehouse 主要组件包括:

  DB2 数据库服务器其中存储结构化和非结构化(常常是文本)仓库数据

  Design Studio这是个工具平台业务分析师和仓库管理员使用它为数据挖掘和文本分析设计工作负载规则、数据转换流和分析流例如业务分析师可以通过创建个分析流从客户电子邮件或呼叫中心报告中提取出结构化信息然后可以把这些流部署到 InfoSphere Warehouse Administration Console 中另外Design Studio 提供工具有助于更好地了解数据和创建资源比如分析流中使用词典或正则表达式规则等等

  Administration Console它用于管理和监视仓库部署在 Design Studio 中设计流的后可以运行、调度和监视它们例如可以每周对新呼叫中心报告进行分析从而识别可能不满意客户或者搜索最近技术人员记录寻找潜在产品问题

  InfoSphere Warehouse 中非结构化分析

  InfoSphere Warehouse 使用 Unstructured Information Management Architecture (UIMA) 分析非结构化数据UIMA 是个开放、可伸缩、可扩展平台用于创建、集成和部署文本分析解决方案UIMA 是免费软件Software为企业和学术界提供通用基础用来提取实体(比如名称、情感或关系)基于 UIMA 组件称为 UIMA Annotators 或 Analysis Engines

  InfoSphere Warehouse 为基于词典和基于正则表达式指定实体识别提供了操作器和工具对于其他文本分析任务可以使用个通用文本分析操作器可以使用它在分析流中运行和 Apache UIMA 兼容注解器:

  数据理解对于从文本数据中成功地提取信息非常重要所以 InfoSphere Warehouse 提供了 Data Exploration 特性它可以寻找包含相关文本信息列(Text Statistics 视图)和浏览文本(Sample Contents 视图)对于更深入分析可以使用 Frequent Terms Extraction 特性提取文本列中最常出现词汇并结合使用云视图等高级显示功能Frequent Terms Extraction 是个重要特性有助于高效地创建在基于词典分析中使用词典

  基于词典分析从文本中提取出关键词可以提取实体包括姓名、公司和产品等等还可以提取个列表中包含所有实体InfoSphere Warehouse 通过 Dictionary Lookup 操作器支持对文本列进行基于词典分析Dictionary Lookup 操作器基于 IBM LanguageWare 提供技术它支持自然语言处理比如多种语言中词根缩减和标记化可以使用 InfoSphere Warehouse 中 Dictionary Editor 创建和维护词典InfoSphere Warehouse 还包含个 Taxonomy Editor它可以把词典条目分类为分类法树可以供数据挖掘和 OLAP 使用本系列中篇文章将详细讨论基于词典分析

  基于规则分析通过正则表达式规则从文本中提取出信息正则表达式很适合提取电话号码、信用卡号码、地址、日期等概念InfoSphere Warehouse 通过 Regular Expression Lookup 操作器支持基于规则分析这个操作器使用包含正则表达式规则规则文件从文本列中提取出概念可以用 Regular Expressions 编辑器创建和修改这些规则文件本文后面会提供个详细举例

  除了上面常用文本分析思路方法的外InfoSphere Warehouse 还允许使用和 Apache UIMA 兼容注解器可以把这些注解器导入 InfoSphere Warehouse Data Warehousing 项目在 Text Analyzer 操作器中使用它们例如为了提取关系或情感等高级概念可以使用 IBM 定制解决方案、IBM Research、其他公司和大学提供 Advanced UIMA 注解器还可以使用 UIMA SDK 从头创建注解器(有关 UIMA 更多信息参见 参考资料 中链接)

  使用 InfoSphere Warehouse Design Studio 进行文本分析

  图 2 给出 InfoSphere Warehouse Design Studio

  图 2. InfoSphere Warehouse Design Studio



  图片看不清楚?请点击这里查看原图(大图)

  Design Studio 是 InfoSphere Warehouse 综合工具平台它是基于 Eclipse 技术构建Design Studio 允许您把工作保存在项目中可以在 Design Studio 界面左边显示 Project Explorer 中看到您所有项目所有数据仓库工作默认项目是 Data Warehousing 项目这个项目包含个 Text Analysis 文件夹其中包含词典、规则文件、分类法等文本分析资源

  信息提取由数据转换流(数据流和挖掘流)中 Text 操作器执行通过这些强大可以对表进行取样、联结和修改然后Text 操作器可以从文本列中提取结构化信息把它们作为新列(其中包含找到姓名、技能、日期等概念)添加到输出中

  在图 3 所示场景中先给形式自由文本中概念加注解然后把它们和现有结构化信息起写到个数据库表中

  图 3. 非结构化数据到结构化数据



  图片看不清楚?请点击这里查看原图(大图) 

  使用模式从文本中提取信息:举例

  这个举例使用 United States Central Intelligence Agency 提供 World Factbook 文档集合作为源数据这些文档包含世界上所有国家相关信息包括国土面积(以平方公里为单位)以及地理位置(经度和纬度)

  首先我们要创建个从文本文档中提取面积和位置概念正则表达式规则文件然后个挖掘流中使用这个规则文件把概念从文本列中提取到关系数据库表中

  用于模式匹配正则表达式

  正则表达式是描述模式InfoSphere Warehouse 使用 Java™ 正则表达式语法正则表达式规则可以由以下内容组成:

  串字面值比如 a、b、c 等等

  比如 [abc](这表示在这个位置上可以是 a、b 或 c)

  预定义比如 \d(这等同于 [0-9])

  量词可以用量词指定子模式出现次数例如a* 表示字母 “a” 出现零次或多次a+ 表示字母 “a” 出现至少a{3} 表示 “aaa”a{1,3} 表示字母 “a” 出现至少次但不多于 3次

  组是正则表达式中子模式它们包含在圆括号中例如正则表达式 A(B(C)) 包含子组 (B(C)) 和 (C)

  对正则表达式语法完整描述请参见 InfoSphere Warehouse 文档或 Java 文档(见 参考资料)

  如果您不熟悉正则表达式或记不住正则表达式结构可以通过 InfoSphere Warehouse 中 RegEx 编辑器使用 Regular Expression Builder

  如果希望创建个匹配美国国际电话号码(例如 001-555-7323)正则表达式那么应该寻找符合以下模式串:以 “001” 开头然后是个连接下来是至少个数字然后是个连再然后是至少个数字这个正则表达式如下:

(001)-(\d+)-(\d+)

  下面举例演示如何使用正则表达式从文本中提取出坐标和面积等概念

  研究数据库表中文本

  为了对数据库表中文本进行分析首先要研究可用信息选择要分析相关文本列在 InfoSphere Warehouse Data Exploration 视图中可以浏览数据库表举例、浏览大型文本列内容和判断文本平均长度

  下面解释如何使用 Data Exploration 视图研究 FACTBOOK 表内容在 InfoSphere Warehouse 附带 DWESAMP 举例数据库中可以找到这个表

  在 InfoSphere Warehouse Data Source Explorer 中找到数据库 DWESAMP 和模式 CIA 下面 FACTBOOK 表右键单击这个表并从上下文菜单中选择 Distribution and Statistics -> Data Exploration

  图 4 中 Data Exploration 视图随机显示这个表中 275 行中 50 行每行包含国家名和名为 TEXT 列(其中包含这个国家相关信息)在表下面可以选择表中文本列的显示它完整内容这样就可以查看列中大量文本在下拉列表中选择 TEXT 列

  图 4. Data Exploration 视图显示 FACTBOOK 表内容举例



  图片看不清楚?请点击这里查看原图(大图)

  为了查看某国家相关信息在举例内容表中选择适当

  在对个国家文本描述中向下滚动找到它地理位置和面积例如选择 Germany(见图 4)就会看到以下信息: Geographic coordinates: 51 00 N, 9 00 E 
    
Map references: Europe 
 
Area: total: 357,021 sq km water: 7,798 sq km land: 349,223 sq km


  查看举例内容表可以看到国家地理坐标和面积总是采用相同格式可以使用正则表达式规则轻松地提取采用这种格式概念

  创建规则文件和匹配位置和面积正则表达式

  可以通过规则文件定义电话号码或统资源定位符等概念这些概念称为类型为了在文本中寻找这些概念可以通过指定规则定义匹配这些概念模式

  概念类型可以有特性例如由于电话号码由国家编码、地区编码和扩展号码组成可以创建类型 phone number 并指定特性 country code、area code 和 extension number

  在 RegEx 规则编辑器中定义概念类型及其特性然后把包含正则表达式模式规则分配给这些类型个模式和文本部分匹配时为相关类型创建个注解通过把正则表达式规则子模式(匹配组)分配给特性可以设置注解特性值

  在挖掘流或数据流中 Regular Expression Lookup 操作器中使用规则文件时可以把特性映射到关系表中表示提取概念

  创建 Data Warehouse 项目:

  在 Project Explorer 中右键单击并从上下文菜单中选择 New -> Data Warehouse Project

  在向导中输入项目名例如 Text Analytics

  单击 Finish

  创建新规则文件:

  在 Text Analysis 文件夹中右键单击 Rules 文件夹并从上下文菜单中选择 New -> Rules这显示 New Rules 对话框

  选择前面创建 Data Warehousing 项目

  指定 Factbook_Concepts 作为规则文件名并单击 Finish这会显示 RegEx 编辑器

  创建名为 Coordinates 类型:

  在 Types 部分最初显示 Factbook_Concepts 类型删除这个类型并创建个新类型把新类型命名为 Coordinates这会自动地创建个同名规则

  展开 Coordinates 类型Features 文件夹是空Rules 文件夹包含名为 Coordinates 规则但是还没有定义正则表达式模式

  创建个规则应该从 CIA.FACTBOOK 提取概念类型 Coordinates包括特性 longitude 和 latitude例如:

Geographic coordinates: 51 00 N, 9 00 E

  在 RegEx 编辑器中对于 Coordinates 类型选择 Features 文件夹并单击 New Feature

  在 New Feature 对话框中在 entry 框中输入 longitude接受默认数据类型 String单击 OK

  重复以上步骤添加另个名为 latitude 特性数据类型为 String

  如图 5 所示Types 部分现在显示 Coordinates 类型定义这个类型包含名为 longitude 和 latitude 两个特性

  图 5. Coordinates 类型以及 longitude 和 latitude 特性



  为这个规则指定正则表达式模式:

  展开树中 Rules 文件夹并单击选择 Coordinates 规则

  使用 RegEx 编辑器 Test Rule 部分(见图 6)在组举例文本片段上测试规则在 Input text 框中输入希望找到文本举例Matched 框就会显示规则中和 Input text 框中文本匹配部分

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: