中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> IBM专区 > DB2 > 集成
实现企业分类学
作者:佚名 时间:2005-08-05 11:44 出处:互连网 责编:小渔
              摘要:用 WebSphere Information Integrator OmniFind Edition 实现企业分类学

级别: 中级

Wendi L. Pohs, 顾问 IT 专家, IBM
Stephen C. Gates, 高级经理, Taxonomy & Categorization Systems Research Group, IBM
Jochen D?rre, 高级软件工程师, IBM

2005 年 3 月

根据分类学构造 Web 内容,为企业创造价值。本文将描述高性能企业分类学的特征,展示如何在 WebSphere® Information Integrator OmniFind™ Edition 中使用分类学构建系统,以相对较低的成本创建分类学。

简介
对于一家公司而言,使用其内部或外部网站的最有效方法之一是根据分类学或者 Web 内容的一种结构化的分类来组织内容。在本文中,我们将讨论如何构造分类学,以及如何使用分类学为企业创造价值。特别是,我们将展示高性能企业分类学与其他分类学之间的不同之处,并讨论构建企业分类学的技术基础和组织基础。

在任何给定的专业范围或领域中,都存在很多可能的分类学。然而,在通常的分类学中,各种类别是以一种树型结构组织的,以便显示类别之间的逻辑关系。每个分支的端点称为节点(node)。这种树通常以它顶端或左边的根节点(与现实中的树刚好颠倒过来)表示,根节点的下面或者右边有一些更细的节点。图 1 展示了一个两层的简单分类学。

计算机科学家把分类学称作有向非循环图(directed acyclic graphs),因为通常的分类学可以表示各种不是严格分层的或者不一定有严格逻辑的关系。具有多种关系的分类学也被称作本体论(ontology)

图 1. 一种简单的分类学
一种简单的分类学

Web 分类学通常是学科分类学,每种类别表示某种学科或主题,例如图 1 中展示的分类学就是这种。然而,也可能存在很多其他类型的分类学,例如客户或文档类型的分类学。实际上,一个组织可能使用多种不同的分类学。这些通常被分类学描述为整个分类学的不同方面(facet)。每个方面表示该组织中数据的一个不同方面。我们将采纳惯用的“分类学”这个术语来描述整个系统,而用“方面”这个术语来描述分类学中一个特定的子集。这些方面根据相对独立的因素(例如主题或文档类型)来组织文档集。

企业分类学的使用
我们可以以多种不同的方式来使用企业分类学,而且这些方式之间不一定是相互排斥的:

  • 作为一种标准的(或者可控制的)词汇表,企业中的信息可以根据该词汇表来分类。这可能是最常见的用法(例如,一家企业所服务的行业列表)。
  • 用于内容管理,在内容管理中,使用多方面(multi-faceted)分类学帮助作者识别描述他们使用的元数据。(例如,作者可以从一个下拉菜单中选择汽车,该菜单包含用于描述一篇营销文章内容的术语。于是,术语“汽车”出现在文档的元数据中,然后搜索引擎使用这个术语来澄清这篇文档是关于什么主题的。)
  • 用于面搜索,在这种搜索中,使用多方面分类学帮助用户发现属于多个方面的信息。(例如,用户可以缩小对白皮书的搜索范围,使之仅包括关于汽车业的白皮书。)
  • 用于面浏览,在用户的浏览过程中提供分类学。(例如,用户可以单击关于白皮书的一个链接,然后通过分类学的可视化表示逐层进入到关于汽车业的链接。)
  • 用于报表,在内容管理系统中使用分类学将所有内容组织到特定的类别中。(例如,公司的经理可能有兴趣知道他的营销部门在汽车业的覆盖程度。)
  • 用于个性化或内容路由,根据特定人群的兴趣选择信息子集。(例如,用户可以订阅一种服务,这种服务只发送包含与汽车业文章相关的电子邮件,或者将问题报告自动路由到适当的汽车部门。)
  • 作为导航辅助,用于定位企业中的信息。(分类学兼负改进站点目录的任务,在这些站点目录中,内容与站点的可视化表示是相关联的。)

例如, IBM 将它的企业分类学用于以下方面:

  • 搜索。 在 IBM 创建的企业分类学被用于一般关键词搜索、使用预定义参数的高级搜索以及用于内外站点的目录结构搜索。
  • 内容管理。 IBM 创建的所有分类学在内容管理系统中都被用于对内容对象进行分类和标识。分类学被用于提供主题、内容类型、行业、产品、工作职位、组织、位置、语言、竞争对手和解决方案等领域。
  • 用户概要。 在 IBM 中创建的某些分类学被用于对关于 IBM 内部人员的信息进行分类。用户可以添加字段到发布的概要中,以扩大他们的内部目录列表。

管理词汇表

创建
创建一个可控制词汇表是在文本集合中定义表示概念模型的一种好方法。通过创建一个将用户术语与可控制词汇表术语相结合的结构,索引者可以填充那些表示各文档所属主题的字段。

但是由于技术上和组织上的原因,构建企业分类学可能是一项令人生畏的任务。我们推荐先进行如下明确的分析:

  • 确定谁将使用分类学,以及他们将如何使用分类学。

    您的用户是外部客户,还是内部客户,还是两种都有?是否有自动化系统(例如企业搜索或其他应用)使用该分类学。有多少终端用户、编辑和管理员用户将维护这个分类学?该分类学是否将用于构造 Web 站点的导航结构?

  • 组织中是否已经存在分类学?

    查看遗留应用程序、客户列表、产品目录以及公司图书馆信息系统。这些地方都可以通过提供特定于组织的术语来增强企业分类学。如果要使用分类学来支持应用程序客户,那么应确保该分类学同时适合内部客户和外部客户。

  • 确定一种分类策略。

    分类是指将分类学中的一种类别指定给外部系统中某个文档的过程。例如,索引者可以阅读一篇文档,然后从分类学中选择最相近的能描述该文档内容的类别,从而为该文档分类。自动化的分类则使用一个计算机程序自动执行该任务。

  • 将导航与其他用法区分开来。

    站点上的导航,特别是外部站点上的导航,几乎总是先帮助用户找到他们想要的答案,然后将他们带到组织认为“最适合”的文档面前。导航模式可以反映组织结构,特别是在企业内部网中,因为内容是由不同组织创建和掌握的。各种分类学通常都适合这两种用途。

  • 以标准的格式在一个集中的地方发布当前版本。允许定制格式。

    分类学应该易于终端用户查看,并且应该以一种易于使用的格式在一个集中的地方(例如在一个内部公司网站上)出现。如果每隔一段固定的时间发布分类学,那么应确保实现某种形式的版本控制,以便终端用户或调用分类学的应用程序能够容易地识别任何更改。您会发现,选民小组常常只想要某些方面或子集,他们会定制自己的子集,以满足自己的需求。

维护和治理
公司应该创建一个公司范围的代表各部分业务的人员小组。这个小组应该负责拟订他们自己范围内的分类学,然后将他们的提议提交给整个小组。建立一个分类学家(或其他相关人员)核心小组,他们将创建和管理分类学。

IBM 是怎样做的?
一个由研究人员、技术人员、资料管理员和用户体验专家组成的小组形成了 IBM 的企业分类学小组。这些人当中的一小部分,即核心企业分类学小组,每个星期都会碰面,讨论挑战、成功、需求以及定义分类学小组在 IBM 中如何开展工作的进程。

受过培训的分类学家根据将使用该分类学的不同人群的需求构建分类学。研究人员和开发人员则构建分类学工具和自动分类引擎,并为部署分类学而估计公司的 IT 架构。用户体验和用户测试专家负责以终端用户和核心涉众的身份对分类学进行测试,以确保分类学有意义,并且易于使用。最后,变更管理小组会与涉众、高级管理人员和全公司的用户密切合作,确保分类学能受到全世界的接受。

为了管理分类学,企业分类学小组定时举行核心小组会议,以确定有什么需求和人们接受分类学的过程。企业分类学小组有专门的研究和开发资源,重点负责开发分类学管理工具,定义该工具输出分类学的方式,确定分类引擎与分类学以及外部开发者应用程序(例如搜索和内容管理)之间如何协作。

企业分类学项目经理确认涉众能够接受新的分类学,并且其中的术语适合于他们的业务和客户要求。企业分类学小组定期与涉众举行会议,交流企业分类学的目标,讨论小组如何构建分类学,以及小组需要涉众提供什么来创建一个有意义的分类学。

使用文档分类
分类是指使用分类学中的一个或多个节点来描述一个特定的文档。例如,工作人员首先阅读某篇文档,然后从分类学中选择最相近的、能描述文档是关于什么的一个类别,从而给文档分类。自动分类则使用一个计算机程序来分析文档中所包含的信息,并自动执行分类任务。

在构建企业分类学时,关键要考虑的是决定是否使用自动分类。为了在使用自动分类时获得高度准确性,必须特别严格地构造分类学。与手工分类人员相比,自动分类系统对不合逻辑的分类学更缺乏容错性。 如果分类学变得更大,那么这个问题几乎会呈指数增长。但是,自动分类更为廉价,这在后面分类的代价一节中可以看到。

我们得到了以下“法则”,用于判断哪种分类方法是最好的:

  • 如果文档数量少,文档价值高,分类学较小且变动不多,并且有专人负责分类学的更新,那么应该使用手工分类。

通常,如果要分类的文档数量少于 1,000,我们建议使用手工分类。如果文档数量多于 10,000,那么建议使用自动分类。在这种情况下,您可以根据维护上的需要做决定。分类学的变动频率,以及使用分类学的应用程序随变动而更新的频率,这些都是您要重点考虑的。对于大多数企业应用,明智的做法是为定期变化的分类学做一个计划,以反映企业的变动需要。

小型分类学包含的类别通常不多于 150 种;当分类学超过这个数字时,手工分类人员要想轻松发现最佳类别就难得多。

高价值文档是企业关键型(business-critical)文档,需要以一种一致的分类模式来组织这些文档。例如,法规遵循文档就是一种高价值文档。

在下面的讨论中,我们假设您的组织比较大,需要应用自动分类。但是,这里的基本原理同样适用于手工分类系统。

构建企业分类学
我们定义了三种创建企业分类学的方法:

  • 人工创建分类学,用分类学对文档进行人工分类。
  • 人工创建分类学,用分类学对文档进行机器分类。
  • 机器创建分类学,用分类学对文件进行机器分类。

图 2. 为什么是 Eureka?
为什么是 Eureka?

如图 2 所示,这三种方法可以通过两组基本属性来进行比较:对人来说有多大的意义(与用户的期望相比,文档分类的正确性如何),以及系统的自动化程度。自动分类可以大大减少成本,并且可以带来更大的可伸缩性。

人工创建分类学,人工分类
通常,大型系统,例如 Yahoo! 和 Open Directory Project (ODP),都人工创建分类学,并对文档进行人工分类。Yahoo! 和 Netscape 每天要为 Web 上估计 20 亿个文档中的 2 百万个文档建索引。Yahoo! 用大量全职的“冲浪者”来做这些工作,这些人收集提名,调查这些提名,并确认提名者(nominator)建议的分类。ODP 则宣布,他们有 40,000 多名志愿者来完成这些事情。

人工创建分类学,机器分类
通过职业分类学家可以构建高性能分类学,因此这些分类学不但对于人工终端用户有意义,而且也符合机器分类者所要求的更严格的规则。在 IBM 使用的 Eureka! 系统就是这样一个系统;在一组受过培训的资料管理员创建的分类学中,包含分层结构的类别,另外还有一些好的、代表性的文档,以便描述层次结构中终端节点。机器分类者使用该信息为外部文档提供建议的类别。

机器创建分类学,机器分类
机器生成的分类学可以通过使用文档集群引擎来创建。文档集群引擎通常使用从计算语言学或数据挖掘借用过来的统计分析,分析文档中包含的词语。统计分析以某些词语相邻出现的几率为依据。文档集群引擎将每个文档看作“一袋词语”,并为具有类似一袋词语的文档创建分组。这些类似文档的分组就称作集群。

文档集群引擎创建了集群之后,便查找描述集群内容的代表性词语。这与人工索引者的工作方式有很大的不同。人工索引者逐个扫描文档,考虑这些文档,然后根据他们的知识或可控制词汇表指定关键词。文档集群引擎首先扫描文档中的词语,以发现可以描述集群的代表性短语,即所谓的标签(label)。通常,人工分类学编辑要重做这些标签,以便能更贴近匹配用户的搜索词汇表。重做后的标签称为集群描述符(cluster descriptor),或者类别(category)。

评判企业分类学
有很多方法可以用来评判一个企业分类学:

  • 检查内容。跟踪由分类学所分类的内容。
  • 扫描整个分类学。首先查看顶层的类别,然后逐层展开查看子类别标签,以便对信息的组织方式有完整的了解。
  • 分类学的均衡。确保类似层次上出现一般类别和特定类别,这样,兄弟类别在相互比较时才有意义。
  • 对组织的适合性。确保分类学能准确反映它描述的信息所属企业的需要和质量。
  • 多语言支持。有些企业分类学只需支持一种语言;另外一些可能需要支持多种语言。在某些情况下,这种“支持”只需要把类别名翻译成另一种语言;而在其他情况下,多语言支持意味着将各种语言编写的文档以同一种语言的分类学分类。后一种情况可能要求对每种语言使用不同的人工分类者,或者分别为每种语言训练一个自动化的分类者(需要较大的额外开销)。
  • 分辨率。分类学可能需要根据不同的目的在不同层次上表示企业,而在分类学的不同部分可能需要采用不同的粒度。 例如,对于一家电脑公司,对于计算机相关主题可能需要非常细的粒度,而对于客户行业细分之类的领域则需要非常粗的粒度。
  • 定制能力。在某些情况下,单个企业级的分类学可能就足够了。而在其他一些情况下,可能需要对分类学做一些简单或复杂的修改,以适合企业内不同部门甚至各个用户的需要。显然,开发更多版本的分类学要付出一定的成本代价。
  • 可用性。像大多数终端用户应用程序一样,对于企业分类学,应当由未来的用户测试它在各种不同情况下的使用情况。这通常包括分类学本身的可用性测试,以及对终端用户应用程序的测试。
  • 成本。企业分类学系统的成本包括创建分类学本身的成本,集成到一个或多个终端用户系统的成本,在系统中将每个文档分类的成本,以及维护或更新分类学的成本。我们将在后面的创建和维护分类学的成本一节中考虑这些成本。

评判一个分类系统
评判一个分类系统的两种标准方法是计算机科学家所谓的精确率(precision)和再调用率(recall)。然而,这里我们将使用两个相关但不尽相同的术语,因为这它们对于非计算机科学家来说更有意义,这两个术语就是准确率(accuracy)和覆盖率(coverage):

  • 准确率。这也是最重要的一个标准,可以将其定义为被正确地指定到适当的种类或类别的文档所占的百分比。要使一个企业分类学完全有用,通常必须允许以较高的准确率将文档按分类学分类(也就是说,为文档指定分类学中的一个类别)。如何要按一个大型的分类学进行分类,与一组普通人相比,一个受过良好培训的人员的准确率可以高达 85% 左右,这是因为单个人通常难于做到对一个复杂的分类学的所有部分都理解透彻。而基于机器的分类者则是始终如一的(即使是错的,也会始终错下去),因此在犯下错误时更容易更正。
  • 覆盖率。覆盖率度量的是企业内可以进行分类的文档(不管对错与否)所占的百分比。

通常,在准确率与覆盖率之间有一个权衡。两者中其中一者的提高是以另一者的降低为代价的。为了取得高度的准确率,用于对文档分类的规则需要非常明确,这样会导致有些文档无法指定类别。如果放松规则,覆盖率会有所提高,但也会随之会出现一些错误的分类,从而导致准确率下降。

什么是好的准确率和覆盖率?对于这个问题,很难用绝对的词语来回答。通常,这取决于文档的类型,以及需要通过分类来完成的任务。例如,对于高价值的文档,高准确率是关键,因为对于未指定类别文档的手工分类而言,所需的成本要低于错误指定类别(以及在审计期间没有发现某个重要文档)所带来的成本。另一方面,如果分类学是用于浏览很多数量的文档,那么覆盖率就变得更为重要了,因为用户不会发现未指定类别的文档,而且这么大的文档数量也不允许人工分类。

然而,一般情况下,用户常常更偏爱准确性,而不那么在乎覆盖率。在分类学开发周期的初始阶段,高度的准确性有助于在用户之中建立信任。如果类别与内容与用户期望的一致,那么他们就会接受这个分类学,尽管并不是所有的内容都指定了类别,并且分类学中有些分支仍然空在那里。

创建和维护分类学的成本
对于一个组织来说,虽然创建和维护分类学的成本通常是隐藏,因为这些成本分散在组织内的各个地方,但这些成本又是真实存在的。而且,创建和维护分类学的成本也不是线性变化的;当分类学的规模变大时,其创建和维护工作就变得更复杂,更消耗时间。但我们仍然建议对这些成本进行以下粗略的估计:

  • 类别的创建。
    每个类别通常需要花 1 到 2 小时,因为在构造分类学的时候,需要改进和重新定义类别。
  • 分类学的创建。
    对于每个类别,要在分类学上为一个类别找到适当的地方又需要半个小时。
  • 训练数据的收集。
    如果您的系统要求您为每个类别收集训练数据,检查其合适性,测试结果,然后返工,那么对于每个类别这需要 2 个小时,甚至更多时间。
  • 分类学的评审和批准。
    通常要由多个人来评审和批准公司的分类学以及分类学中的类别。每个类别平均要花 2 小时。
  • 新类别的发现。
    您应该准备花一些时间,尽量确保需要的类别已经加入到分类学中。这方面大概每年要花 300 小时。
  • 分类学的维护。
    创建好分类学之后,还必须定期地对其进行检查,与使用该分类学的人群进行讨论,并在必要时根据变化对其进行更新。

根据这些评估手段,如果您想构造一个含 500 个节点的分类学,并且要维护一年,那么总共需要 500*(1+1+2+2)+300+80=3380 小时。如果以 $40/小时计算,这总共需要 $135,200。

如果您计划通过自动化的分类来使用分类学,那么必须更加严格地构造分类学,以确保有比较合理的分类准确率(必须非常小心地避免类别重叠)。并不是说手工分类系统的用户不要求严格的分类学,而是说准确率不高的自动分类系统常常会产生明显错误的分类,使得各用户群最终需要花时间修改分类学,并解决这个问题。由于这个原因,如果您计划为自动分类使用分类学,那么这个分类学的估计成本还要翻倍。

分类学的自动生成。
一个有趣的问题是,分类学的创建是否可以完全自动化。通常的回答是,就目前的技术而言,这一点还无法实现,不过这可以为人工分类学家提供一个很好的起点。自动生成分类学的系统只对非常特定领域中较小的分类学比较有效。

完全自动化地构建分类学的种种尝试往往以失败告终,当分类学达到企业规模时,情况更是如此。出现这种现象的原因有:

  • 全自动系统通常不使用具体的人类专家知识或人类自然积累的文化知识,只有借助这些知识来构建分类学,才能得到对人类用户来说较为直观的系统。
  • 当主题的数量非常多的时候,全自动系统不能以人类可察觉的方式来区分概念。这是因为自动化系统通常只能看到词语或概念在数据上的关联模式;然而这些关联中有很多可能只是偶然遇到的,而不是固有的。
  • 全自动系统通常从企业获得所有的训练数据。在大多数情况下,对于一个给定的主题,企业只有少量的文档。因此,由于采用如此稀少的、无代表性的文档作为训练数据,训练数据只能反映出有偏差的结果。更隐蔽的是,常常有些文档是关于多个主题的,因而需要更多数量的训练文档,使离题的词语或概念得到均衡。作为参考点,在用于构建与 WebSphere Information Integrator OmniFind Edition 一起使用的分类学的系统中,我们要求至少有 25 个训练文档,并建议对于每个类别使用 100 个文档。很少有企业系统会包含这么多关于分类学每个主题的相当纯的文档。对于某些主题,即使从整个 Web 上来找,也很难找到这么多切题的文档。

即使是用于构建分类学的“全自动”系统,也常常需要进行大量的人工编辑,以保证分类学的有用性,因而更准确地说应该将其称为半自动系统。

预制分类学
如果给定构建分类学的成本,那么购买预制的分类学可以带来实在的好处。这不仅包括显而易见的经济上的利益,而且还包括更多实在的好处:

  • 让专家来构建分类学,可以更有把握地获得一个高性能的系统。这通常还意味着您将使用更通用的词汇表。
  • 您可以开箱即用(out-of-the-box)地使用分类学,而不至于非得投资数月的时间才能知道您自己的分类学如何。

在任何情况下,您无疑想定制那样的分类学,以满足自己的要求。

分类的成本
如前所述,对于文档,您可以手工分类,也可以自动分类。然而,这两种方法的成本是截然不同的。

手工分类。
手工对文档分类的成本显然可以这样来估计:

  • 由受过完整训练的、熟悉公司的资料管理员来做,排除经常性费用:每个文档 $5-$8,假设其工作速度为 30-50 个文档每天(请参阅参考资料中的 [Pohs2001, p.53])。
  • 由受过高等培训的主题专家来做:每个文档 $25 到 $35 是很合理的估计。

一个想要对 100,000(对于大多数大型企业来说,这是一个很小的数字)个文档分类的企业预计需要支付 $500,000 到 $3500,000,这样估计是比较合理的。

实际上这样的估计相当保守。首先,如果公司的分类学有多个面,那么您应该粗略地估计每个面的成本。其次,这并不是一次性的成本。通常,企业内部网和互连网会有一个很大文档周转率(turnover);30% 的周转率并不少见。因此,也许每年还要重新出现 30% 的这种成本。再次,这些成本还只是以一种语言为假设的。如果有多种语言的文档,那么要准备多个专家或资料管理员,每种语言准备一个人,这方面的成本又会使总成本增加。

手工分类最大的附加成本往往被组织忽略了。这个成本出现在分类学发生变化的时候。每当分类学发生变化,组织就可能需要重新在分类学中受影响的部分范围内对一些文档重新分类。这不仅意味着重新分类的大量开销,而且还包括要识别需要重新分类的文档的系统开销,或许还包括将文档路由到主题专家或文档作者以便进行重新分类处理的开销。

自动分类
通过自动分类,例如 WebSphere Information Integrator OmniFind Edition 中的这项功能,可以在一台低端桌面电脑上以不超过一天的时间将 1M 个文档分类。每个文档的分类成本通常不超过 $0.01。($5,000 每台电脑 / 1M 文档/每台电脑 = $0.005 /文档。分类者本身的软件成本可以忽略不计,但这个成本不包括任何附加的将其集成到某个特定系统中的软件开发成本。)由于文档集通常要定期重新分类,可能是每周一次,因此真正的成本实际上还要更低一些。每年扫描和索引的总文档数量可能相当大,因此对应于每个文档的成本就非常低。此外,基本上再没有与多层面或多语言相关的其他成本。图 3 对此做了总结。

图 3. 为什么使用自动分类?
为什么使用自动分类?

前面我们提到,在使用手工分类系统时,必须应对分类学发生的变化。因为在自动分类中对应于每个文档的分类成本较低,所以对付分类学变化的最简单方法是:每当分类学发生变化时,便重新将整个文档集分类。的确,这样可以导致两个最佳实践:

  • 妥善地构建系统,以允许分类学在必要时可以快速变化。

    我们发现,允许分类学每周甚至更频繁地变化有其业务上的原因,例如反映产品集或公司各部门的变化。任何依赖分类学的系统都必须能够非常快速地随新的分类学而更新。

  • 从一个中央服务器分发分类学。

    这允许所有使用分类学的应用程序可以在任何必要的时候获得分类学。

权衡
自动分类有其无与伦比的经济上的优势,至少对于中型到大型文档集是如此。以一个预制的分类学为基础,根据您自己的需求说明对其进行修改,这也具有很大的优势。另外,与手工方法相比,半自动地构建分类学也具有一些经济上的优势。换句话说,对于一个要构建和使用分类学的企业来说,节省成本的一大方法是使用自动分类。

集成分类和搜索
搜索和分类常常被集成到一个单独的系统中。这是因为它们在很多方面都是自然互补的:

  • 它们为描述文档提供了互补的机制。搜索基于用户提供的一小组词语来描述文档,而分类则试图基于分类学提供的一组描述符(例如,在一个主题分类学中的某一个主题)来描述整个文档。这意味着,如果搜索引擎为用户提供类别,那么用户要分辨哪些结果是相关结果就很容易。例如,如果用户查询是“fat”,某些结果将被标上“dieting”或“nutrition”,但其他一些将被标上“file systems”(因为 FAT 也是 File Allocation Table 的简称,它被 DOS 操作系统所使用)。然后,查看这些混合主题的用户便可以缩小它们的查询范围,只选择他们想要的那一项。
  • 搜索和分类都要求类似的数据处理(例如取文档,断词和词干提取),因此将它们放在一起便可以利用共同的处理机制。
  • 搜索和分类在很多方面可以成对出现:
    • 在一个类别中进行搜索。 用户可以选择一个类别,然后只搜索属于这个类别且符合用户查询的文档。
    • 面搜索。在这种方法中,用户可以向搜索引擎指定文档的一些不同的方面或特征(例如,“搜索所有关于数据库的白皮书”) 。
    • 站点目录。一个 Web 站点上的部分或全部文档都是以可导航分类学形式显示的,每个文档被指定到一个或多个分类学节点。

作为高性能搜索、分类学和分类系统的 WebSphere Information Integrator OmniFind Edition
WebSphere Information Integrator OmniFind Edition 为用户提供了两种不同的方法来对文档分类。第一种方法是基于规则的分类器。对于这种类型的分类器,您可以创建一些规则,这些规则实际上是查询分类学中的每个类别。例如,您可以为一个名为“dental insurance”的类别创建一条规则,它类似于以下查询:
+"dental insurance" -"health insurance" -travel -"life insurance" 基于规则的分类者,例如 WebSphere Information Integrator OmniFind Edition 中的分类者,其速度都比较快,易于设置,并且在类别数量较少时有很好的表现。

对于正在使用 WebSphere Portal 5 的客户,WebSphere Information Integrator OmniFind Edition 还支持预定义的分类学与 WebSphere Portal 中基于模型的分类者的集成。IBM 构建了这样的分类学和分类者,以便针对类别非常多的情况提供较高的准确率。这个分类学包含超过 2700 个类别,对于网页或类似的数据,其中有 2200 多个类别可供对文档以近似人类的准确率进行分类。当然,对于您自己的数据,其准确性可能有所不同。通常,对于关于单个主题、包含至少几段文本和专门编写的文档,可以达到最大的准确率(对于任何分类者,不管是人工分类者还是自动分类者,这一条指导方针通常都是对的。)

在 WebSphere Information Integrator OmniFind Edition 中使用基于规则的分类者
基于规则的分类者为设置层次结构的类别提供了一种容易的方式。每个类别与一组规则相关联,这些规则直接指定哪些文档要映射到那个类别。WebSphere Information Integrator OmniFind Edition 基于规则的分类者支持两种类型的规则。

  • URL 规则。作为 URL 规则,可以指定要分类的文档的 URI 所匹配的模式。例如,规则“/hr/”将匹配任何具有包含这 4 个字符序列的 URI 的文档。
  • 内容规则。作为内容规则,可以指定一个限定的查询。该查询是要分类的文档的内容所应匹配的。这个查询可以包含以双引号括起来的词语或短语,或者可以在词语或短语前面加上操作符 + 或 -。

    例如,可以使用查询
    "dental insurance" -"life insurance"
    来关联包含短语“dental insurance”,但不包含短语“life insurance”的一定类别的文档。

让我们考虑一个例子,这个例子演示基于规则的分类的常见用法。假设我们有一组数据记录,它们描述在一个小型的、可能是分部的图书馆中拥有的书和杂志。我们要像图书馆的一般做法那样,将这些描述按主题类别进行组织。我们还要提供对这些描述的任意文本的搜索,并在一个搜索应用程序中浏览类别树。这可以用 WebSphere Information Integrator OmniFind Edition 来完成,方法如下。

  1. "categorization type"=rule-based 创建一个集。
  2. 为要分类的数据记录创建一个 crawler。在我们的示例图书馆中,每个数据记录都放在一个单独的文件中,因此我们创建了一个文件系统 crawler。
  3. 在 Parser 的配置屏幕上(编辑 Parser),选择 Configure the category tree
  4. 正确地添加类别到这棵树中。 图 4 展示了这一步的一个屏幕快照。

    图 4. 编辑类别树
    编辑类别树

  5. 对于每个类别添加规则,这些规则将那个类别中所有书籍或杂志的各个描述指定到这个类别。在 图 5 中,为“Software”的子类别“Design & Architecture”创建了一条规则。该规则指定 URL 模式“/J2522/”。在我们的示例图书馆中,我们将某种杂志各期的所有摘要放在拥有这个名字的一个目录中。因此我们在这里使用了数据记录的原始组织方式的特性。如果数据记录没有被组织,我们还可以为每个要指定到一个类别的记录指定一条规则。

    图 5. 为一个类别指定一条规则
    为一个类别指定一条规则

  6. 定义了完整的类别树之后,运行 crawler、解析器和索引器,以便为数据记录建立一个索引。
现在您可以使用自己的基于 WebSphere Information Integrator OmniFind Edition Search and Indexing API 的搜索应用程序或示例搜索应用程序来搜索或浏览这些记录。图 6 展示了一个限定在一个类别的搜索。

 

图 6. 在一个类别中搜索
在一个类别中搜索


在 WebSphere Information Integrator OmniFind Edition 及其预定义的分类学中使用基于模型的分类者
预定义的分类学是 IBM 用一个大型系统(Eureka!)创建的,这个系统从上千万个文档中选择用于训练这个系统的一些文档。它是这样做的:

图 7. WebSphere Information Integrator OmniFind Edition 的分类学创建过程
WebSphere Information Integrator OmniFind Edition 的分类学创建过程

如图 7 所示,构造预定义的企业分类学的 WebSphere Information Integrator OmniFind Edition 方法是一种半自动的方法,这种方法以一个迭代过程为基础,在这个迭代过程中,受过培训的图书管理员为企业分类学创建类别,然后将这些类别提交到后端,由一个全自动的系统用训练数据填充这些类别。在这里,关键的底层概念是:图书管理员确保分类学对人来说是有意义的(并保持有意义),而后端系统则确保分类学对于自动(基于机器)分类者来说是有意义的。后端系统将多种类型的反馈提供给图书管理员,后者决定如何修复碰到的问题。整个分类学,或者它的某些部分,都是在一个迭代的过程中创建的,每个阶段都进行广泛的测试,以确保整体性能。图书管理员使用一个“taxonomy workbench”应用程序来管理这个过程。因此,客户可以有一个开箱即用的分类学,这个分类学经过了优化,可以提供非常高的准确率。

IBM 创建了分类学和类别的定义后,产生的信息便通过两个主要部分进行发布:

  • WebSphere Portal Taxonomy Manager 和 Viewer portlet。通过使用 WebSphere Portal 附带的这两个 portlet,客户可以使用 Taxonomy Manager 创建他们自己的不同分类学,然后用 Taxonomy Viewer 向他们的组织展示分类学。之后,通过使用一个专门的迁移实用程序,将来自 Taxonomy Manager 的数据迁移至 WebSphere Information Integrator OmniFind Edition 系统,这个实用程序是随 WebSphere Information Integrator OmniFind Edition 一起发布的。
  • OmniFind Model-Based Classifier。这个组件被集成到 Parser 组件中。如果您在创建文档集时选择了基于模型的分类,那么该组件根据 IBM 和您提供的类别对收集到的文档进行分类。类别信息与文档内容一起被存储在 WebSphere Information Integrator OmniFind Edition 搜索索引中。

为文档集建立索引后,搜索应用程序就可以使用该文档集。通过使用 WebSphere Information Integrator OmniFind Edition Search and Index Application Programming Interface(SIAPI)(请参阅参考资料中的产品文档链接),您的应用程序可以利用分类学为搜索结果浏览和检索类别信息。同样,随 WebSphere Information Integrator OmniFind Edition 一起发布的搜索应用程序可以作为如何实现那些功能的一个蓝图。

图 8. 集成的分类学浏览和搜索
集成的分类学浏览和搜索

图 8 中的屏幕快照描述了如何在随 WebSphere Information Integrator OmniFind Edition 一起发布的示例搜索应用程序中结合使用分类学浏览和搜索。通过从树中选择一个类别,例如这个例子中的
Business & Commerce > Computers > Computer Software > Database Software & Middleware > Database Systems > Multimedia Database Systems
,我们可以执行一个限定在属于那个类别的文档范围内的搜索。在这里,该搜索只返回一个文档。

用您自己的节点定制企业分类学
有了预定义的分类学系统,您可以利用大量预定义的类别,这些类别可以开箱即用地确保以非常高的准确率对数据进行分类,必要时,您还可以加入自己的类别。

您在定义和操纵分类学方面可以有很大的灵活性。为了理解这个灵活性,可以定义三种类型的分类学节点:

  • 内节点(用于导航)。这些节点的存在可以提供到文档所属类别的对应节点的逻辑导航路径。在随 WebSphere Information Integrator OmniFind Edition 附带的分类学中,这些节点在树中都是最低级的节点(相对根节点的最远端)。您可以移动、添加、删除或更改这些节点。
  • 叶子节点(预定义的和可分类的)。这些是自动 WebSphere Information Integrator OmniFind Edition 分类者可以检测的节点。因此,每个这样的节点都有一个与之关联的定义(模型)。这些节点被故意设计成通用的(而不是特定于公司的),以便用户能尽可能容易地发现和理解它们。您可以移动、删除或重命名这些节点,但不能创建这些节点。受过培训的 IBM 分类学家将与您会面,讨论新的节点,然后创建您需要的定义。
  • 产品节点(用户定义)。这些是您自己创建的节点。这些节点由一个词语或短语定义,该词语或短语必须出现在文本中(大小写也必须匹配)。例如,如果您定义一个“ProductX”类别,那么,当一个文档中提到“ProductX”时,这个文档便被与这个类别相关联。如果文档中提到“Productx”或“Product X”,那么这个文档不会被分类(但是,请参阅同义词一节,看看如何绕过这个限制)。您还可以指定一个重量,说明为了以这种方式对页面分类,产品需要被提到多少次。虽然我们将这些节点称为产品节点,但它们实际上可以是您选择的任何短语,包括非大写的短语。WebSphere Information Integrator OmniFind Edition 预定义的系统包含一个分类者,该分类者可以检测独立于预定义节点的这些类型的节点。您可以移动、添加、删除或更改这些节点。

同义词
WebSphere Information Integrator OmniFind Edition 预定义分类学系统还支持叶子节点和产品节点的同义词概念。有些词语或短语在分类学中没有显示,但却被分类者用来作为一个给定类别的附加证据。例如,如果您定义了一个名为“ProductX”的产品节点,但有些文档包含了对“Product X”或“productX”的引用,那么您可以使用 Taxonomy Manager 将这些词语或短语定义为同义词。每个同义词都有一个给定的权重,这类似于产品节点。产品节点与同义词之间的不同点是,同义词不是一个单独的分类学节点,因而分类者不会将其作为一个类别报告出来。

例如,如果您使用一个名为“401K Plans”的预定义节点,而您的公司有一个 401k 计划,这个计划称作“Tax Deferred Savings”或“TDS”,那么您可以使用这两个短语作为 401K Plans 类别的同义词。这是为您自己的环境定制预定义类别以及为用户定义类别添加同义词的一种强大的方式。

产品节点和同义词都应该尽可能明确(随给定类别的不同而不同)。例如,如果您为所有安全相关的产品构造一个名为“Security”的产品节点,那么它还将检测那些描述您公司在提供雇员安全性或提供内部网安全性方面所作出的努力的页面。通常,您应该使同义词和产品节点尽可能明确。例如,不使用“Security”,而使用“Security Products”,以及同义词“Security Bars"、"Security Locks”和“Security Gates”,如果这些是您公司卖的产品的话。通过查看文档集的分类情况,测试这些类型的类别。

删除和压缩节点
有时候,您不想使用 WebSphere Information Integrator OmniFind Edition 提供的完整的预制分类学来对数据进行分类。这时您可以使用 Taxonomy Manager 中的 Collapse 和 Delete 功能创建用于分类的子集。删除节点是指使节点离开分类者的考虑范围。压缩节点允许只提供更高层的内节点作为用于分类文档的术语。与叶子节点相关联的定义被压缩,或者调入更高层内节点中。

测试企业分类学
每当对分类学作出重大更改时,应当执行的一项重要任务是测试结果。这里有很多方法。例如,您可以向 WebSphere Information Integrator OmniFind Edition 提交一个查询,请求它显示一个给定类别中所有文档的列表。可以使用随 WebSphere Information Integrator OmniFind Edition 一起发布的示例搜索应用程序,或者使用建立在 WebSphere Information Integrator OmniFind Edition Search and Index Application Programming Interface (SIAPI) 基础上的搜索应用程序来做这件事。然后,可以检查文档标题和摘要,看看是否匹配。

另一条线索是查看属于每个类别的文档的数量,将这个数量与您预期的数量进行比较。如果有一个能按类别显示结果的应用程序,例如示例搜索应用程序,那么这也是快速检查结果的一种很好的机制。如果这些数量与您的预期不一致,那么首先看看该文档是否包含有关多个主题的信息,或者,它是否包含很多关于它的导航信息或广告信息,这些信息是离题的。如果不是,那么可以根据您为那个类别定义的同义词来搜索文档,看看您是否选用了一个并不十分特定于那个类别的同义词。

非英语语言
对于一个企业分类学,最关键的问题之一是它所支持的语言。一个企业分类学可以通过以下方式支持多种语言:

  • 将所有类别名翻译成多种语言。
  • 支持对多种语言编写的文档进行分类。

WebSphere Information Integrator OmniFind Edition 同时实现了这两种方法,因而更加强大。目前,它支持英语、法语、德语和意大利语。这个多语言系统使公司可以只维护一个分类学,但是可以对其他 4 种语言编写的文档进行分类。Taxonomy Manager 和 Taxonomy Viewer 都允许通过一个管理功能,很容易地在不同语言之间进行切换。然而,必须通知分类者文档包含那种语言。系统不会自动将文档按语言分类。因此,让 WebSphere Information Integrator OmniFind Edition 以分组形式为文档创建索引和对文档进行分类,每一组包含一种语言,这种做法很有用。

作者简介
作者照片 Wendi Pohs 是 IBM 内部网用户体验小组的一名 IT 专家,也是 Practical Knowledge Management: The Lotus Knowledge Discovery System 的作者,这是一本关于知识管理方法学的书籍,由 IBM 出版社出版。Wendi 于 1996 年加入 IBM,曾经参与很多不同的项目,担任过规范说明作者、在线帮助设计人员、用户辅助管理员和顾问分类学家。Wendi 经常在业界活动上发表演讲,她目前在 Enterprise Search and Taxonomy Integration for w3 工作,这是 IBM 的内部网站。在加入 IBM 之前,Wendi 在美国数学学会(American Mathematical Society)和 Digital Equipment 公司工作过。Wendi 获得了密歇根大学的学士学位和图书管理科学硕士学位。


Author photoStephen C. Gates 在位于纽约霍索恩的 IBM Thomas J Watson 研究实验室中担任 Taxonomy and Categorization Systems 小组的经理。他的小组开发了 IBM WebSphere Information Integrator OmniFind Edition 中使用的分类学和分类技术。Steve 还是 IBM Enterprise Taxonomy 小组的创立者之一,该小组将这种技术部署到 IBM 的不同应用程序中,例如搜索、内容管理、个性化和专业知识定位。他在 Watson 呆了 18 年,在那里,他参与了很多不同的计算机相关项目。他获得过生物化学的博士学位。


Author photoDr. Jochen Doerre 是 IBM Boblingen Laboratory 的一名软件工程师,有文本搜索和文本挖掘技术方面的背景。他于 1997 年加入 IBM,参加过一些软件开发项目,这些项目集中在文本分类、文本分析集成、XML 文档搜索以及核心搜索引擎设计和性能问题等领域。在加入 IBM 之前,Jochen 做了几年自然语言处理的研究。他获得过斯图加特大学的博士学位。Jochen 是万维网联盟(W3C)XQuery 工作小组的成员之一,在这个工作小组中,他与其他成员协同开发带有纯文本搜索操作的 XML 查询语言 XQuery 的扩展。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有