(5)具体实施方式
实践本发明的示例***
图2描绘的是基于用户的信息请求来评估文档并返回结果的代表性***1。该***具有在带有用于从多个文档源4之一接收文档3的数据存储器的后端服务器5上实现的预处理器。后端服务器5对该文档进行评估用于随后的发布。图1描绘了可用于实现后端服务器的代表性计算机的架构。尽管本发明并不限于文本文档的评估,但在一示例性实施例中,所接收文档包含“XML”格式的文本。例如,当世界各地发生新闻时,新闻文档由***、路透社、***、CNN等(代表性源4)制作并被定期提供给***1。
示例性预处理器是后端服务器计算机5的一部分,该计算机运行诸如Windows Server软件等操作***,并具有存有大量被评估和分类文档的存储器。每个接收到的XML文档中所包含的文本数据被评估或分类。在web服务器7中维护所接收文档的数据库。文档数据库的分类被更新,使得文档的输入请求(例如来自用户)可通过发布基于以下讨论的标准被认为是最适当的文档以最新的信息来响应。后端服务器5通过把有共同点的文档归组成被称作文档目录的众多文档聚类来完成评估或分类。
图2的web服务器7使用来自后端服务器5的聚类数据更新目录。网络服务器7把包含在聚类中的被网络服务器判断为最相关的文档提供给用户或客户8。相关性的判断基于众多标准,其中部分标准可能包括特定客户提供给web服务器的信息。
计算机***
图1描绘了一种示例性数据处理***。诸如图1所示***的数据处理***可充当后端服务器5和网络服务器7。该***具有常规计算机20形式的通用计算设备,它包括一个或多个处理单元21、***存储器22、和耦合各种***组件包括将***存储器耦合到处理单元21的***总线23。***总线23可以是若干类型总线结构的任一种,包括存储器总线或存储器控制器、***总线、和使用各种总线架构的任一种的本地总线。
***存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。包含帮助在计算机20元件间传送信息(如起动时)的基本例程的基本输入/输出***26(BIOS)存储在ROM 24中。
计算机20还包括读取和写入硬盘(未示出)的硬盘驱动器27,读取和写入可移动磁盘29的磁盘驱动器28,读取和写入可移动光盘31,如CDROM或其它光学介质的光盘驱动器30。硬盘驱动器27、磁盘驱动器28、和光盘驱动器30分别由硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接到***总线23。驱动器及其相关联的计算机可读介质为计算机20提供计算机可读指令、数据结构、程序模块、和其它数据的非易失存储。尽管在此所述的该示例性环境采用了硬盘、可移动磁盘29、和可移动光盘31,但本邻域技术人员应明白计算机可访问的可存储数据的其它类型计算机可读介质,如磁带、闪存卡、数字化视频光盘、Bernoulli盘、随机存取存储器(RAM)、只读存储器(ROM)等等,也可被用于该示例性操作环境中。
众多程序模块,包括操作***35、一个或多个应用程序36、其它程序模块37、和程序数据38,可存储于硬盘、磁盘29、光盘31、ROM 24、或RAM 25中。用户可通过输入设备如键盘40和定位装置42向计算机20输入命令和信息。其它输入设备(未示出)可包括麦克风、游戏杆、游戏垫、***、扫描仪等等。这些和其它输入设备通常通过与***总线耦合的串行端口接口46连接到处理单元21,但也可通过其它接口相连,如并行端口、游戏端口或通用串行总线(USB)。监视器47或其它类型显示设备也通过接口,如视频适配器48和***总线23相连。除了显示器742,个人计算机通常还包括其它***输出装置(未示出),如扬声器和打印机。
计算机20可以在使用与一台或多台远程计算机,诸如远程计算机49的逻辑连接的网络化环境中运行。远程计算机49可以是另一台个人计算机、服务器、路由器、网络PC、对等装置或其它普通网络节点,且通常包括上述与计算机20相关的许多或全部元件,尽管在图1中仅示出存储器存储设备50。图1的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的网络化环境在办公室、企业范围计算机网络、企业内部互联网和因特网上是常见的。
当用于LAN网络化环境时,计算机20通过网络接口或适配器53与本地网51连接。当用于WAN网络化环境时,计算机20通常包括调制解调器54或其它用于在广域网52中建立通讯的设备。可以内置或外置的调制解调器54通过串行端口接口46连接到***总线23。在网络化环境中,与计算机20相关的所描述程序模块或其部分模块,可存储在远程存储设备中。可以理解的是,所示网络连接是示例性的,并且也可以使用在计算机间建立通讯连接的其它方法。
图3-5描绘了由后端服务器5对输入信息所执行的过程。该过程分成三个阶段:输入阶段110、合并阶段140、和分配阶段160。在输入阶段110中,带有内容的数据进入该***。在合并阶段,示例性***通过把数据聚类将共同的数据归组,并将其存储在数据库中。在分配阶段,***将内容分配给聚类邻域。这种分配也被维护在描述输入内容的一个或多个聚类及邻域的记录数据库中。
本发明三个阶段的职责由两个主要组件完成:分析组件、和聚类组件。分析组件负责把内容中所含数据缩减成为在该内容中出现的最重要N个权标(token)的相关性排序列表。分析在输入阶段110中进行。内容可以是文本、视频、音频等等。用于缩减的具体技术取决于内容的类型。聚类组件负责将内容分配到聚类中,并负责归组相似聚类。
输入阶段110
考虑一种文本内容的分析组件。这种分析的一个应用是结合新闻分析域来使用,以向用户提供一个相关新闻文章清单。该分析组件在字—权标级上工作。
“权标”被认为是代表单一概念的一个或多个字。例如,“球”、“***”、“航天飞机”都是指单一概念。一篇给定文章中的文本用以下方式被缩减成权标的相关性排序阵列:
·注意每个权标在文本里出现的位置和频率。
·如果权标出现在标题中,那么向该权标的字计数增加T出现次(occurrence),且该权标的起始位置设置为零。
·权标i的相关性设置为e(-α*P0i)*Ni*Ri,其中α为权标相似性的衰变率,它是与文本起始点距离的函数,P0i是权标i第一次出现在文章中的位置,Ni是权标i在给定文章中的出现次数而Ri是权标i文档频率倒数的对数,其中频率可用该字出现在文档中的次数除以在代表性文集中所含的文档数。通常,用近期文章的集合作为代表性文集。
·每条内容的最高K个权标—相关性对被发送到聚类引擎中。相关性之和被归一化为1.0(L1归一)。
考虑以下短新闻故事;
Shuttle Disintegrates on Re-Entry
At 12:08 this afternoon,NASA announced that the space shuttle
Discovery disintegrated as it was re-entering the earth’s atmosphere.
Witnesses in a remote area of Texas saw remnants of what was believed
to be the doomed shuttle disintegrate in long white plumes that
extended across the blue sky.Discovery’s mission had been plagued
with difficulties for the entire two weeks it had been in space.Just
yesterday,Commander Smith of Discovery was quoted by
communications specialists at NASA’s mission control as saying“this
has been a tough ride and on behalf of my crew I want to thank you
guys for all the help you have given us.”Smith along with the seven
other mission specialists are presumed dead and NASA has confirmed
that it has contacted the families of all eight crew members.In the post
9/11 sensitivity to terrorist activity,NASA made it clear there was no
evidence of tampering or attacks on the space craft.President Bush has
already scheduled a news conference tomorrow evening(Wednesday
8:00PM EST)and it is speculated that by the time of the new
conference NASA may have more information regarding the cause of
this disaster.
考虑此故事中的字“shuttle”。在示例性***中,字中字母的大小写被认为是不重要的,因此Shuttle和shuttle是一样的。注意,除了在文章正文中找到的正常频率次数外,术语Shuttle在标题中的出现增加了频率次数。假设T=2。在此新闻故事中,术语shuttle出现六次(真实的四次和因为出现在标题中的两次)。另外,因为“shuttle”出现在标题中,其起始位置设置为零,使得e(-α*P0i)等于1。
当收到文档时,根据其来源它已被归类为“新闻”文档。其它类别为“运动”、“娱乐”、“旅游”等或这些类别下的小类别。运行于后端服务器上的预处理器软件维护着新闻类文档的数据库。该数据库具有当前在目录中的新闻文档中所包含的数以千计的字的文档频率数据。对于近来发生的新闻故事中某些字的频率可能起始时较低,而随时间流逝增长。对于新近收到的新闻故事,Shuttle在所有目录中的新闻文档中的出现率低,从而其倒数的对数值高。基于这些因素,相当肯定的是此故事中K个最高相关性权标之一为字“shuttle”。
对于一给定新闻文章,这种分析的结果是一尺寸为K的(权标,相关性)对的向量,其中K是向量中这种对的数量。形式为
的向量形成。相关性最高的K个权标或字W分别对该向量有所贡献,而权标的值X由以上相关性公式确定。该向量的值被归一化,从而N项或N个权标的相关性因子值Xi的和为1.0。基于粗略检查,最高N项中出现的其它权标为“NASA”、“Space”和“Discovery”。
预处理器的聚类组件采用了一种改进的“模糊K中数”聚类技术(fuzzyK means clustering)。K中数聚类是一种基于数据的相似性将数据归组的著名方法。K中数聚类在例如2000年1月授权给Fayyad等人的6,012,058号美国专利中有描述。该专利在此引入作为参考。
聚类是在包括数据挖掘、统计学数据分析、和数据压缩在内的各种技术的重要应用领域。很多流行的聚类技术使用基本K中数法,其中数据聚类被初始化而且数据以硬方式添加到初始化聚类中,也就是说,每个数据项属于且仅属于一个聚类。根据该示例性实施例,一个信息内容项或文档可属于一个以上聚类。
根据示例性实施例,每个聚类由以下信息来表示:
·以用于由web服务器发布的形式分配给聚类中的内容项(例如文本文档)。
·代表该聚类的K个最高权标-相关性对(归一化使相关性因子之和为1.0)。这些组对被称为聚类中数。
·该聚类最高的L个所需权标。为了使一条内容,比如一个文本文档,能添加到该聚类中去,该内容必须在其K个最高权标-相关性对中包含所有的L个所需权标。L是比K小的数字,且可以是对所有聚类而言相同的一个固定预设定值。在一示例性实施例中,L的值被设定为取决于文档语言和类别的值。值3就曾在一***中成功用于分类新闻文档。
当首次从自源4收到一个文档,该文档被评估并分配到一个现有聚类中。如果无法将其分配到一个聚类中,则它形成自己的包含一个文档的聚类。当给定内容的权标—相关性对进入聚类组件时,遵从图3所示过程110:
·检索当前内容可能会属于其的所有候选聚类,即其L个所需权标在当前内容中出现的所有聚类。
·计算该内容和候选聚类之间的权标—相关性对的内积。内积也称为两个向量的点积。这一计算使后端服务器能作出内容是否加入聚类的决定(112)。
·在上述内积超过给定阈值T时,内容添加到每个聚类中(114)。在一示例性***中,如果内积超过一经验确定值,则做出添加的决定。此值基于在组或聚类中维持适当数量文档的同时,文档类别必须集中到什么程度来确定,且此值可动态变化。
·当一条信息被添加到聚类中时,聚类中数通过对分配到该聚类中所有内容的所有权标—相关性对取和重新进行计算;选择K个最高权标—相关性对;将结果的和归一为1.0。来自L个最高权标—相关性对的权标成为聚类的所需权标。
·如果没有聚类匹配输入内容,则为该内容创建一个新的聚类。该单个文档聚类的中数是K个权标—相关性对。来自L个最高权标—相关性对的权标成为该聚类的所需权标。
合并阶段140
在周期性间隔上(在本发明的新闻收集实施例中为每隔几分钟),在所谓发布周期期间,对聚类进行检查(图4)以了解是否应将先前独立的聚类归组成一个邻域(neighborhood)。这个过程在“合并阶段”140期间发生。用于发现输入内容聚类的相同过程在此阶段使用,即聚类中数的内积被确定。但是,在找到匹配时所发生的就不相同了。
当两个或多个聚类被合并时,聚类的中数(归一化的权标/相关性对)没有改变。然而,导致合并的聚类被选为父聚类。这个“多个聚类的聚类”称为邻域。一个邻域可包含一个或多个聚类。
如果聚类B合并到聚类A中,即聚类B现在以聚类A为父,则所有以聚类B为父的聚类现在以聚类A为父,并属于A的同一邻域。
当聚类成员改变,即新聚类加入邻域,或老邻域过期,则原来分配到该邻域的内容(例如文本文档)被分配到空邻域(在内容首次进入聚类***时它也被分配到空邻域)。在上例中,当聚类B合并到聚类A中,B和A的所有内容被分配到空邻域。类似地,如果由于时间流逝邻域过期,该邻域所有聚类的内容被分配到空邻域中。邻域过期意味着其相关性下降到低于阈值,如下所述。
考虑如图6A所示的三个聚类142,144,146。这三个聚类包含具有相似内容的文档。但是,这三个文档经其中数内积衡量并未相似到可以称为一个邻域。换一种说法,聚类的内积没有超过所确立的将聚类归组的阈值。这一阈值通常与为把文档分类到聚类而确立的阈值相同。现假定聚类148被创建,且彼此相似的文档被添加到该聚类中。在图4流程图的执行过程中,聚类148被选择(141),且该过程检查邻居142,144,146(及更多远距离聚类,注意,当其内积较小时聚类被视作远距离)(143),确定这四个聚类142,144,146,148足够相似以保证邻域150的创建(图6B)。如在图4流程图中所见,其评估导致邻域建立的聚类148被选作邻域150的父聚类。
分配阶段160
尽管内容在输入阶段被分配到多个聚类,该内容(文档)还未被分配到一邻域中。
在每个发布周期中,有一个分配阶段160。该分配阶段确定一条内容应从属于哪个邻域。回想一下,在输入阶段时,一条内容可被分配到多个聚类中去。考虑图7的情况。文档165被分配到聚类148及第二个邻域中的第二个聚类170。因此,有时就是这种情形,在合并合并阶段140中将内容或文档分配到其中的聚类分别属于独立邻域,诸如邻域150、175。因此在发布给用户时,有必要选择该内容属于哪个邻域。
在分配阶段160中,所有分配给空邻域的内容被选中。对于每一条内容,计算该内容和该内容被分配的每个聚类的内积。有最高内容—聚类内积的聚类所属的邻域是该内容被分配的邻域(见图5)。回想一下,有两种类型的聚类,一种类型是内容可以归属的低级聚类。实际上内容可属于若干个这种低级聚类。第二种类型是作为“多个聚类的聚类”的邻域。一条内容仅可属于一个邻域。当内容被带入***、或当邻域过期、或当邻域被拆分或组合,邻域的成员被设置为空。这样,***知道哪些内容需要被重新分配,即先前从属于已改变的邻域之一的内容需要进行重新分配。***使用以上过程来了解该内容从属于哪个聚类,以确定该内容应重新分配到哪个邻域。在过期邻域情形中,重新分配是必须的。在被改变邻域的情形中,对邻域的改变可导致在一个邻域中的内容要重新进行分配。
用户或客户8希望以文档的邻域形式从web服务器7得到信息。在典型实例中,文档的这些邻域显示在网络浏览器上,诸如互联网浏览器(IE)或众多其它适于在通过公司内部互联网或诸如因特网的广域网而网络化的计算机上作文档显示的众多浏览器之一。在图2中,网络服务器7和客户8之间的信息交换通过请求进行。服务器通过发布最相关邻域中所包含的众多文档来对这个请求作出响应。
客户8可提供给服务器7关于该特定客户的翔实信息。例如,如果该客户用其.Net密码登录他或她的计算机。从客户8处可得到的信息包括客户过去的浏览器行为。更具体地,所提供的信息是涉及不同类型文档的各种链接的鼠标点击形式的过去行为。因此,如果客户是体育迷,文档的类别可能都涉及“棒球”。如果客户是投资家,文档类别绝大多数是“股市新闻”相关类的。如果用户未以网络服务器借以标识具体过去行为的方式登录他或她的计算机,则客户请求即以一般方式对待,且被赋予所有这种一般用户的过去行为。
其它信息也可自动提供给网络服务器7。请求的源可被编码为客户唯一互联网地址的一部分。如果这样,客户的独特语言和国别也可作为与该请求一并提供的信息的一部分。请该求包括具体查询也是可能的。因而,该请求可包括一的直接指示:客户对近期涉及航天飞机事件的所有文章感兴趣。这个请求可能会导致网络服务器向用户发布以上所摘录的那则样本新闻。基于网络服务器7可得到的信息,服务器7通过发布被判断为与该请求最为相关的邻域来响应该请求。网络服务器维护着每个文档邻域的相关性因子。
邻域的相关性会随着时间改变。旧新闻对搜寻有关当前事件信息的人们而言,不会引起多少兴趣。然而,旧文档会与对涉及某一事件、地方或人物的历史或事件年表感兴趣的人特别相关。为确定邻域的相关数或相关因子,必须一开始就考虑文章或文档的相关性。
文章的相关性Ar如下:
A是代表文章A关键字的向量,其中每一元素对应于一个字,元素的大小对应于字的相关性。
N是代表该文章父邻域的向量。此向量基于组成该邻域的所有文档的中数。A和N间的内积(写作A·N)是A和N间的相似性度量。
la是文章衰变率,为时间t的函数。
ICBa是奖励从代表性市场向用户显示的文章的因子。例如,如果文章是向英国的用户或客户8发布,而文章的发布者或源4也来自英国,那么ICBa的值将设为大值,即10.0,否则,ICBa通常取1.0。
PRa是奖励来自重要源的文章的因子。该值代表发布者的值。例如,来自BBC的文章的点击率比随机选择的发布者平均点击率高两倍。因此,来自BBC的文章的PRa值将为2.0。
文章的相关性在以下所示用来确定文档邻域相关性的计算中使用。
进入***的某些文章因为缺乏中心而从来未获发布。这些文档可能是关于多种话题的。文章的中心由文章中最相关关键字的相关性值给出。如果此值过低,它表示对文章是围绕单个主题的假设可能是假的。因此,邻域不会考虑包含该文章。当前,使用的值为0.1。接近0.05的值表示根本不存在必需的中心,其它关键词关联性也是0.05,因此该文章没有中心。
另外,两天后,因为缺乏中心而未被分配到邻域中的文章被丢弃。它将永远不会被发布。
邻域相关性Nr如下:
Ar的和是基于以邻域N为父的所有文章求和。
la是邻域衰变率,为时间t的函数。
Srn是从其它类别文档对邻域加权的因子。例如,体育新闻的分级可有1.0的值,而世界新闻的分级可能有10.0的值。Srn因子可以是邻域默认的,或是基于经特定客户过去的行为而确定的特定用户或客户兴趣而赋值的。
一旦邻域的相关性随时间流逝降到阈值以下,或取决于网络服务器接收的用户请求,该邻域不再通过相关性测试,并不再因回应请求而返回。
尽管本发明进行了一定程度的详细描述,本发明旨在包括所有在所附权利要求的精神或范围内的更改和变化。