自动分类法的生成的制作方法

文档序号:6628259阅读:245来源:国知局
专利名称:自动分类法的生成的制作方法
(1)技术领域本申请针对分类法的生成,尤其针对文档的自动分类法生成。
(2)背景技术为了寻找感兴趣的特定文档,计算机用户可通过一查询引擎进行电子搜索,来搜索文档集合。然而,某些文档集合,诸如因特网上的网页和文档数据库,可能一般基于用户提议的查询词,向用户返回大量文档。为了解决检索到的文档分散的问题,结果或者说到文档的链接可进一步按日期、普及性、与搜索词的类似性来分类或过滤,和/或依照一手动获得的分层分类法来加以归类。此外或可替换地,用户可选择一特定类别来将搜索限制在该类别中的文档。
一般而言,分层分类法(或文本归类)是通过手动定义一组规则来生成的,该组规则对关于如何分类一组预定类别中的文档的专家知识进行编码。机器增强分类法的生成通常依靠手动维护一受控词典,并基于所分配的关键词或与文档相关联并在该受控词典中找到的元数据,来分类文档。
(3)发明内容为了向读者提供一个基本的理解,下文提供所揭示内容一个简化的概述。此概述不是所揭示内容的穷举或限制性的综述。并非提供此概述来标识本发明的关键和决定性元素、描绘本发明的范畴、或以任何方式来限制本发明的范畴。其唯一的目的是以简化形式提供所揭示内容的一些概念,作为对稍后提供的更详细描述的介绍。
创建和维护手动或机器增强分类法的成本很昂贵,归因于生成和维护类别和受控词典的工时要求。而且,内容的特性或要分类的内容本身可能改变如此频繁,以至于手动自适应一分类法,即使以受控词典来增强,也是不切实际的。
要为文本分类手动地生成一种分层分类法或结构,可在没有任何外来知识的情况下分类文档,即,可仅基于从这些文档本身提取的知识将这些文档分类。在下面讨论的分层分类法中,有关的信息类别可以被结构化为二叉树,该二叉树的节点包含与搜索相关的信息。可通过检查一组训练文档并将这些文档分离成两个子节点,来‘训练’或形成该二叉树。这些文档组的每一组随后还可被分离成两个节点,来创建二又树数据结构。这些节点可被生成以将所有训练文档都在两个节点中任一个中或同在两个节点中的似然性最大化。在一示例中,二叉树的每个节点可与一词列表相关联,且每个词列表中的每个词与给定该节点该词在文档中出现的概率相关联。随着新文档到来,基于该文档与相关联的节点间的统计相似度,可将那些文档分配到一特定节点。
与特定节点相关联的文档可基于节点分配来检索,例如,可通过定位与指定的查询词相匹配的节点来检索节点中的文档。在某些情形下,搜索引擎可使用典型的倒排索引来响应于用户的查询返回所选的文档。为解决搜索结果中文档分散的问题,查询引擎可基于相关联的节点来分类、类聚、和/或过滤所选文档。为扩展搜索,来自有关节点的附加文档可被返回。
(4)


当集合附图参考以下详细描述更好地理解时,本发明的前述方面及许多附加优点将变得更易理解,附图中图1是一实施例中的示例分层二叉树。
图2是一实施例中的二叉树分类发过程的示例示意图,该过程适用于形成并使用图1的二叉树。
图3是一实施例中图2的分类法过程的示例树生成的示意图。
图4是一实施例中生成分类二叉树的示例方法的流程图。
图5是一实施例中将文档分配给二叉树的示例方法的流程图。
图6是可用于实现本发明一实施例的示例系统的框图。
(5)具体实施方式
被描述为二叉树的分支/节点分类法是一种分层分类法。图1示出二叉树150。主题节点154表示所关心的节点。在因特网搜索引擎的上下文中,主题节点154可表示一个类别,该类别充分类似于用户的查询,或者可以是与查询词相匹配的文档的位置。父节点153是比主题节点154高一层(或宽一个类别)的节点,祖父节点151比主题节点154高两层(或宽两个类别)。子节点156、158是比主题节点154低一层的节点,孙节点157、159、160、161比主题节点154低两层。兄弟节点155是和主题节点154在同一层,并与同一父节点相关联的节点。更多层的“曾”节点(未示出)可在任一方向上存在(例如曾祖父或曾曾孙)。如图1所示,祖父节点151是根节点,即二叉树150中的最高层节点。二叉树可以是平衡的或者不平衡的,然而二叉树的特性要求每个节点要么恰好有两个子节点,要么没有子节点。
可用任何适当的来源来选择训练组中的文档。例如,一批文档可希望被归类。为训练该树,要被归类的至少一部分文档可被选作训练文档组。可从基准集合中选择额外的或可替换的训练文档,这些基准集合包括用于新闻文档的Reuters集合、用于医疗文档的OHSUMEDTM集合、用于已张贴新闻组消息的20NewsgroupsTM集合、及用于新闻文档的APTM集合。
如图2中所示,一组训练文档210可被输入到树生成器220中,该树生成器基于来自训练文档组的外部信息(例如每个文档中的词)生成二进制分层分类树。因而,可基于全部训练文档内的词来检查训练文档,以确定一组训练词。
用于训练树的词可用任何适当的方法从选中的训练文档内选择。图3示出图2的树生成器220的一个示例。树生成器220可包括词生成器310,来确定要用于训练该树的训练词向量或列表320。例如,在单纯贝叶斯 Bayes)假设下,每个训练文档可被当做词向量或列表来处理,因为在单纯贝叶斯假设下,每个文档被当做统计不相关词的集合来处理。
用于训练该树的词可基于每个词出现的累计次数从所有文档中出现的所有词中选择。用于训练该树的词可以在大量文档中出现,和/或经常在一特定文档中出现。并且,该词生成器可访问一预定排除词列表,来确保选中用来训练该树的词并不被认为是在训练文档时较不有效。例如,如介词、冠词及/或代词之类的词,尽管在大多数文档中常常出现,然而作为训练分类树的词来说可能不是最优的。而且,可从可用的停用列表中访问排除词列表。该排除词可用任何适当的方法生成,包括试探法、训练词的过去表现、以及该词的出现是否在训练文档组内的每个文档中实质上都是相同的。
在某些情况下,为了计算效率,限制在训练系统时使用的词的数量是有好处的。通常,根据某一效用测度,前N个词被选为训练词,其中N的范围从10,000到100,000,取决于训练文档语料库的特性。两个最简单的测度是一单词在语料库中使用的次数(词计数)和包含该单词的文档数(文档计数)。另一个有用的测度将这两个测度相结合。例如,一给定词的效用测度可取为词计数的平方除以文档计数。
如图3中所示,词生成器310可接收训练文档组210,并对每个文档中每个词的出现次数进行计数,并将训练组中包含该词的所有文档的计数累加。如果该词的出现次数(词计数)的平方除以包含该词的文档数(文档计数)很大,那么该词在训练文档中被频繁使用;相反,如果该词的出现次数的平方除以文档数很小,那么该词只是偶尔使用,或如果是经常使用,它在每个文档中只出现少数几次。选择训练词的其他方法也可以是适用的,包括计算相对频率的不同方法,和/或多个单词可被标记化以形成作为单个词来计数的短语。选中的词可作为词向量320存储在数据存储中,如图3中所示。在数据存储中,词向量320可与二叉树的当前节点相关联,该当前节点在第一次迭代中为根节点。
如图3中所示,词生成器310将词向量320传递给节点生成器330。节点生成器330可生成当前节点的两个子节点,并将每个子节点与所选中的训练词的词列表或向量320相关联。为形成这两个子节点,词向量320中的每个词可与该词在文档中出现的概率相关联,换句话说就是选中的词在文档中出现的概率。与第一子节点相关联的各概率可储存在数据存储中,作为向量340中的一组词概率,与第二子节点相关联的各概率可储存在数据存储中,作为向量350中的一组词概率,如图3所示。因为每个子节点与一词概率向量相关联,因此生成两个词概率向量340、350,来对应于生成的两个子节点。
为开发每个词概率向量340、350,可初始化在文档中出现的词的每个概率。例如,可通过任何适当方法来初始化各概率,诸如用随机数生成器随机地生成各概率,或者调整或修改该词在训练文档组中的出现次数。在某些情况下,将词出现在文档中的概率初始化为每个词概率向量中的不同值是合适的。更具体地,确保两个词概率向量340、350不相等是合适的。
节点生成器330随后可对分别与两个子节点相关联的词概率向量340、350中的词概率进行优化。例如,可用任何适当的方法来优化词概率,诸如期望值最大化、遗传算法、神经网络、模拟退火等等。例如,节点生成器330可优化词概率,以使每个训练文档可从与两个兄弟节点都相关联的词列表来形成的似然性最大化。更具体地,通过基于出现在文档中的每个词的初始化概率(词概率向量340)计算每个训练文档由与第一子节点相关联的词(词向量320)创建的概率,并基于出现在文档中的每个词的初始化概率(词概率向量350)计算同一训练文档由与第二子节点相关联的词(词向量320)创建的概率,每个向量中的词概率可在整个训练文档语料库上被优化。
使用期望值最大化,图3中所示的节点生成器320可将所有训练文档都由两个兄弟节点的每一个中的词生成的对数似然性最大化。所有训练文档将由两节点的每一个中可用的词生成的对数似然性可由以下公式给出L=Sum{Sum[n(di,wjk)log(P(di,wjk)),j],i,k}在上面的公式中,n(di,wjk)是在节点k的文档di中的词wj出现的次数,P(di,wjk)是节点k的词wj出现在文档di中的概率,此概率基于该词在任一文档中出现的概率。与每个节点相关联的词概率随即可被迭代地调整,以使该对数似然性最大化。最大值可以是绝对最大值或相对最大值。这些所得的词概率储存在图3的向量340、350中,并在数据存储中与其各自的子节点相关联。以此方式,两个子节点(或图1的父节点152、153)的每一个与一训练词列表(词向量320)及出现在文档中的每个词的各自的概率(词概率向量340、350)相关联,此概率已被优化,以使训练文档组由每个子节点中的词形成的对数似然性最大化。
在一示例中,可使用问题的一方面的形式化来使用期望值最大化求出单词和文档概率。尽管各种形式的期望值最大化可以是适当的,然而一个代表性的例子被描述于Hofmann的“Probabilistic Latent Semantic Indexing”(盖然论的潜在语义索引),Proceedings of the 22ndInt′l SIGR Conference Research andDevelopment in Information Retrieval(第22届国际SIGR信息检索研究与发展会议学报),50-57页,1999年8月15-19日,伯克利,加利福尼亚州,该文章通过引用包括在此。在某些情况下,遵循如Hofmann所讨论的期望值最大化方法是合适的,然而,可使用诸如文档和单词概率间的K1发散量等距离测度来为新文档减少模型参数的调整,而不是在期望值最大化过程中保留文档概率。
为了对二叉树的较低层形成测试文档组,测试文档组210可被分配给两个子节点中的至少一个。以此方式,与第一子节点相关联的文档可用于生成两个孙节点,而与第二子节点相关联的文档可用于生成两个孙节点,来形成图1的二叉树150。
如图3中所示,树生成器220可包括文档分配器360,该分配器将训练文档组210分配给两个子节点中的至少一个或一空集。如果文档被确定不适用于训练,则文档分配器360可将该文档分配给空集。以此方式,如图3中所示,可形成三个文档组与第一子节点相关联的文档组362、与第二子节点相关联的文档组364、及作为要从训练组中移除的文档的空集的文档组366。
图3的文档分配器可用诸如熵或距离测度等任何适当方式,将训练组210的每个文档与两个子节点中的一个或两者或一空集相关联。例如,文档分配器360可使用与相应子节点相关联的最优化词概率向量340、350,来确定每个文档和两个子节点中的每一个之间的K1发散量。在一代表性例子中,可用以下公式来确定K1发散量Sj=Sum[P(wj)*log(P(wi)/Zj(wi))]其中Sj是K1发散量,P(wj)是词wj在给定文档中找到的概率,Zj(wj)是词wj在节点j找到的概率。应当理解,其他合适的统计上推动的距离或类似的测度也可适用,包括上面公式的对称形式。
通常,文档只包含在给定节点中找到的词的一个子集。因而,为了约束K1发散量,可使用平滑的单词概率。可用任何适当的方法来平滑词概率。文本信息检索领域的技术人员会熟知若干种单词概率平滑的方法,包括但不限于,简化的Jelinek-Mercer、Dirichlet先验、及绝对折扣(absolute discounting)。一代表性例子被描述于Zhai等人的“A study of smoothing method forlanguage information retrieval”(语言信息检索平滑方法的研究),ACM学报,第22卷,第2号,2004年4月,179-214页,该文章通过引用包括在此。以此方式,词出现在文档中的概率不为0,因为整个文档语料库提供了一虑及系统错误的系统知识,且新文档被统计地处理,从而它只是词的一个可能的发生或组合。本领域技术人员应当理解,也可使用其他距离或相似度的统计测度,包括Jensen-shannon发散量、Pearson的平方chi测试等等。
在一示例中,每个文档可被分配给有最低K1发散量的节点。此外或可替换地,如果K1发散量在预定阈值之下,则每个文档可被分配给一节点。在某些情况下,到第一节点的K1发散量与到第二节点的K1发散量可以近似相等或类似。在这种情况下,文档可同时与两个节点相关联。在其他情况下,到两个节点的K1发散量与预定阈值相比可能都相对较大。在此情况下,文档可被分配给空集,例如,文档可能不适宜用作训练文档。
可对正在生成的二叉树的每个新层递归地重复上面步骤,且当达到一中断条件,该过程停止。如图3中所示,树生成器可包括树管理器370,该管理器可确定是否达到中断条件。中断条件可以是任何合适的参数或度量,包括可以在一节点中的文档的最小数目(例如,与一特定节点相关联的文档数少于一特定阈值);从两个新节点到训练文档组的K1发散量类似于训练文档组和父节点间的K1发散量(例如,到父节点的K1发散量和到子节点的K1发散量之差在一预定阈值之下);该树沿一给定分支的深度已到达一预定限度(例如,该树中的层数超过一预定阈值);及两节点间的K1发散量在一预定阈值之下(例如,第一节点和第二节点之差在一预定阈值之下)。
当训练组中的至少一些文档被分配给两个子节点中的至少一个或空集时,每个子节点将与原始训练文档组的一个子集(文档组362或文档组364)相关联。随后树管理器370可将这些文档组的每一组作为一新的训练文档组转发,以生成新的训练词列表。更具体地,树管理器370可向词生成器310发送文档组362,用作一训练文档组,来生成与第一子节点的两个孙节点相关联的训练词组320。类似地,树管理器可向词生成器310发送文档组364,用作一训练文档组,来生成与第二子节点的两个孙节点相关联的训练词组320。
每一新训练词组可由节点生成器330使用,来为每个孙节点生成并优化相关联词概率向量。如上面提到的,词概率向量可通过随机地生成词概率来初始化。或者,可调整前一层(子节点)的词概率,来初始化与每个孙节点相关联的词概率向量。例如,可用前一节点的原始词概率值的大约90%到大约110%来随机地调整词概率向量340,类似地,可用前一节点的原始词概率值的大约90%到大约110%来随机地调整词概率向量350。
节点生成器330随后可为每个孙节点优化词概率值。这些最优词概率随即可分别与两个新的孙节点相关联,并用于将文档进一步分配给四个新的孙节点中的至少一个或空集。更具体地,文档组362的每个文档可被关联到空集或与第一子节点相关联的两个孙节点中至少一个,且文档组364的每个文档可被关联到空集或与第二子节点相关联的两个孙节点中至少一个。与节点相关联的文档可存储在一数据存储中。结果,形成了一个具有多个节点的二叉树数据结构230,如图2和3中所示,其中每个节点与一词向量(词向量320)相关联,这些词向量具有每个词在文档中出现词的相关联的概率(词概率向量340或350)。
图4示出图2的树生成器220的操作的示例方法400。树生成器可接收(410)一训练文档组。如前面提及的,在单纯贝叶斯假设下,每个文档可被表示为该文档中出现的词的列表。树生成器可对那些词的每一个在每个文档中的出现频率进行计数(412)。基于在文档中出现的词的列表,树生成器可通过词生成器,选择(414)第一训练词组,该训练词组可被表示为一词向量。对于训练向量中的每个训练词,树生成器可通过节点生成器,生成(416)训练词出现在给定文档中的第一概率,且该第一组概率可被表示为第一词概率向量。第一词概率向量可与第一子节点相关联(418)。树生成器也可为词向量中的每个词生成(420)该词出现在给定文档中的第二概率,且该第二组概率可被表示为第二词概率向量。该第二词概率向量可与第二子节点相关联(422)。如上面提及的,节点生成器可用随机值来初始化词概率向量,并可基于期望值最大化来优化那些概率,期望值最大化将训练文档由与第一和第二子节点的每一个相关联的词概率生成的对数似然性最大化。通过文档分配器,树生成器可将每个训练文档(当作词列表)与第一子节点、第二子节点、不适用于训练的文档的空集中的至少一个相关联(424)。节点生成器通过词生成器可基于出现在与第一子节点相关联的训练文档组中的词的至少一部分,来形成(426)第二训练词组或词向量。通过节点生成器,树生成器可再次为第二词向量中的每个训练词生成(428)给定该节点时该训练词出现在文档中的第三概率,并可将所得的第三词概率向量与第一孙节点相关联(430)。类似地,树生成器可为第二词向量中的每个训练词生成(432)给定该节点时该训练词出现在文档中的第四概率,并可将所得的第四词概率向量与第二孙节点相关联(434)。基于第三和第四词概率向量,树生成器通过文档分配器,可将与第一子节点相关联的每一文档与第一孙节点、第二孙节点及空集中的至少一个相关联(436)。图4的过程或其部分可按需重复,直到达到一指定的中断条件。
如果训练文档是要由二叉分类树归类的文档的一个子集,那么在所得的分类树数据结构中,与节点相关联的每一训练文档组可保持与该节点相关联。在一示例中,每个文档组可保持被分配给其各自的节点,不管它在树中的哪一层,结果是父节点与其每个子节点的所有文档相关联。在另一示例中,仅与所得的树数据结构的叶节点相关联的那些文档组可被保留在文档关联数据存储中。或者,如果训练文档组不是要归类的文档组的部分,则文档关联可被忽略或移除。以此方式,训练文档可仅用于训练分类树。
通过将每个新文档与二叉树的一个节点相关联来形成一具有与该二叉树数据结构250的节点相关联的文档的分层分类树,新文档可被分类,如图2中所示。如图2中所示,文档分类器240可接收新文档242,并将该文档与树230的至少一个节点相关联。每个文档的节点关联可被存储于数据存储中。文档分类器240可与图3中所示的树生成器的文档分配器360是同一个,且可使关联基于熵或距离测度(例如K1发散量)。然而,与训练过程不同,在每个节点处的词列表及其相关联词概率未经调整。结果是,一新文档的分配可能要在一路径上‘走查(walk)’该二叉树的节点,该路径是通过基于具有最小K1发散量的节点和/或到节点的K1发散量低于一预定阈值的节点来选择下一层节点所确定的。因为该树被每个要分配的文档‘走查’,因此分配过程可用并行计算来实现。
因为新文档可包含不在训练文档组内的词,因此整体文档概率可基于对未真正在该文档中出现的那些词的词概率的平滑。如上面提及的,可用任何适当的方法来平滑词概率,包括简化的Jelinek-Mercer、Dirichlet先验及绝对折扣。以此方式,词出现在文档中的概率不为0,因为整个文档语料库提供一虑及系统错误的系统知识,且新文档被统计地处理,从而它只是词的一个可能的发生或组合。
图5示出图2的文档分类器240的操作的示例方法500。文档分类器可访问(510)一要与二叉树分类数据结构相关联的新文档。文档分类器可确定(512)该新文档与第一子节点间的第一距离值,且可确定(514)该新文档与第二子节点间的第二距离值。如上面所提及的,诸如K1发散量等距离测度可基于词列表在该文档中出现的概率,且每个子节点可有其自己的每个的相关联的概率。
文档分类器可确定(516)是否满足一中断条件。如上面所讨论的,中断条件可以是任何适当的条件,诸如两个子节点间的K1发散量高于一给定阈值,或者父节点是二叉树中的叶节点。如果满足了中断条件,那么可将文档与两个子节点的父节点相关联。如果未满足中断条件,则文档分类器可确定(520)确定的距离值之一是否低于一距离阈值。该距离阈值可以是预定的,且在文档分类器中保持不变。以此方式,如果两个距离值都低于距离阈值,则该文档可同时跟随两个节点。可替换地,距离阈值可以是基于被分类的文档的动态值。例如,距离阈值可以是两个计算所得的距离值的最大者。如果距离值之一低于距离阈值,则文档分类器可确定(522)两个子节点是否依赖于与该距离值相关联的子节点(例如,父节点通过该子节点的两个孙节点)。例如,如果第一距离值低于阈值,则文档分类器可确定第一子节点本身是否有两个子节点,例如,树是否从第一子节点延伸。如果两个孙节点存在,则文档分类器可确定该新文档与第一孙节点间的第三距离值,且可确定该新文档与第二孙节点间的第四距离值,如上面关于确定(512、514)第一和第二距离值所讨论的。文档分类器可继续走查该二叉树,直到满足中断条件,且该文档与二叉树的至少一个节点相关联。
文档分类器240可使用不同于文档分配器360的过程来将新文档与二叉分类树的一节点相关联,而不是基于到单个节点的K1发散量来分配文档。在一示例中,文档分类器240可基于该文档始于根节点的完整路径上的最小K1发散量来分配文档。更具体地,如上面所讨论的,文档基于该文档与下一层的两个兄弟节点间的K1发散量来‘走查’该树。然而,文档的K1发散量可被累计或组合为该文档通过该树走查的完整路径的总K1发散量值,而不是将该文档与具有给定节点处的两个选择中较小的K1发散量的节点。该文档随即可被分配给具有低于预定阈值和/或有最小值的组合K1发散量的一条或多条路径。组合K1发散量值可用任何适当的方法来确定,包括诸如Viterbi算法之类的复合决策理论。Viterbi算法可找出二叉树最大后验意义上的最可能的节点序列或路径,这可被假设成一有限节点离散时间过程。一代表性例子被描述于Viterbi,“Error bounds for convolutional codes and an asymptotically optical decodingalgorithm,”(卷积码的误差界限及渐近光学解码算法),IEEE Trans.InformationTheory(IEEE学报,信息理论),IT-13,260-269页,该文章通过引用包含于此。
文档与二叉树结构的节点间的关联可存储于一数据存储中。关联可以用任何适当的格式和/或索引来存储,包括关联数据存储、表、向量、或作为文档元数据的一部分。例如,树中的每个节点可根据其在分层分类法中的路径来寻址。此路径可通过遍历将图1中所示主题节点154与先辈节点(例如父节点和祖父节点)及后代节点(例如子节点和孙节点)相连接的分支来创建。称为节点路径或类别路径的该路径可以用“祖父节点/父节点/主题节点/子节点”的形式来存储。应当理解,对于节点在树结构中的位置的任何合适的指示都可以是恰当的。例如,二进制字符串可以用下方式来指示到节点的路径‘0’指示遍历到左边的子节点,而‘1’指示遍历到右边的子节点。在另一例子中,各节点可被编号,诸如祖父节点可以为1,且各父节点可以分别被编号为2和3,等等。在一示例中,文档分类器240可在诸如数据库、索引、或该文档元数据的一部分等的数据存储中存储指示相关联节点的路径的字符串。
如图2中所示,具有相关联文档的二叉分类树250可被发送到信息检索系统260,用于按需对文档进行检索、类聚、分类和/或过滤。例如,可基于节点分配来检索与特定节点相关联的文档,例如,可通过定位一与指定的查询词相关联的节点,来检索与特定节点相关联的文档。在某些情形下,响应于用户的查询,查询引擎可使用一典型的倒排索引来返回选中的文档。为了解决搜索结果中文档分散的问题,查询引擎可基于相关联的节点来分类或类聚选中的文档。此外或可替换地,可形成专用于由查询引擎选中的文档的分层树。以此方式,所检索的文档的至少一部分可用于生成或训练一专用于那些文档的二叉树,且随即可根据其各自的节点来分类或类聚那些文档,以向计算机用户呈现分层搜索结果。该分层分类树还可用于过滤文档,来根据用户偏好仅向用户返回那些文档。并且,该分类树可返回对于类似于或关联于一选中文档的附加文档的指示。例如,查询引擎可基于查询词来检索文档,且检索到的文档可与该二叉分类树的一特定节点相关联。查询引擎不仅可返回检索到的文档,还可返回与同一节点和/或相邻节点相关联的文档列表,来将搜索扩展到用户提交的查询词以外。此外或可替换地,可随检索到的文档一起向用户返回与相邻节点相关联的标签,来指示进一步搜索期望的文档的位置。也可基于节点关联来搜索已归类的文档,以将搜索限定到可用文档的仅一部分。应当理解,基于上面讨论的二叉树,任何适当的信息检索方法及使用都可适用。
图6示出可在其上实现树生成器220和文档分类器240的任一组合的合适的计算系统环境900的示例。计算系统环境900只是合适的计算环境的一个示例,并不试图对本发明的使用范围或功能提出任何限制。也不应将计算环境900解释为对示例性操作环境900中示出的任一组件或其组合具有任何依赖性或要求。
本发明可用多种其他通用或专用计算系统环境或配置来操作。适用于本发明的公知的计算系统、环境和/或配置的例子包括,但不限于,个人计算机、服务器计算机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC,微型计算机、大型计算机、包括上面任何系统或设备的分布式计算环境,等等。
本发明可以在诸如由计算机执行的程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实施,其中,任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参考图6,用于实现本发明的示例性系统包括计算机910形式的通用计算设备。计算机910的组件包括,但不限于,处理单元920、系统存储器930、及将包括系统存储器的系统组件耦合到处理单元920的系统总线921。系统总线921可以是若干种总线结构中任意一种,包括存储器总线或存储器控制器、外围总线、及使用各种可用总线体系结构中的任意一种的局部总线。作为例子而非限制,此类结构包括工业标准体系结构(ISA)总线、微通道(MCA)总线、扩展ISA(EISA)总线、视频电子计数标准协会(VESA)局部总线、外围部件互联(PCI)总线(也称Mezzanine总线)。
计算机910通常包括各种计算机可读介质。计算机可读介质可以是可由计算机910访问的任何可用介质,包括易失性和非易失性介质,可移动和不可移动介质。作为示例而非限制,计算机可读介质可包含计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的易失性和非易失性,可移动和不可移动介质,用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储期望信息并可由计算机910访问的任何其他介质。通信介质通常具体化为诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”指以在信号中将信息编码的方式设置或改编其一个或多个特征的信号。作为例子而非限制,通信介质包括诸如有线网络或直线连接等有线介质,及诸如声学、RF、红外及其他无线介质等无线介质。上面的任意组合也应被包括在计算机可读介质的范畴内。
系统存储器930包括易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)931和随机存取存储器(RAM)932。包含例如在启动期间在计算机910内部各元件间传送信息的基本例程的基本输入输出系统933(BIOS)通常存储在ROM 931中。RAM 932通常包含可由处理单元920立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图6示出了操作系统934、应用程序935、其他程序模块936及程序数据937。
计算机910还可包括其他可移动/不可移动,易失性/非易失性计算机存储介质。仅仅作为例子,图6示出读或写不可移动、非易失性磁介质的磁盘驱动器940、读或写可移动、非易失性磁盘952的磁盘驱动器951、以及读或写诸如CD ROM或其他光介质等可移动、非易失性光盘956的光盘驱动器955。可用于示例性操作环境的其他可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器941通常通过诸如接口940等不可移动存储器接口连到系统总线921,而磁盘驱动器951和光盘驱动器955通常通过诸如接口950等可移动存储器接口连到系统总线921。
在上面讨论并在图6中示出的各驱动器及其相关联的计算机存储介质为计算机910提供了计算机可读指令、数据结构、程序模块及其他数据的存储。例如,在图6中,硬盘驱动器941被示为存储操作系统944、应用程序945、其他程序模块946和程序数据947。注意,这些组件可以和操作系统934、应用程序935、其他程序模块936和程序数据937相同或者相异。此处给操作系统944、应用程序945、其他程序模块946和程序数据947不同的标号,以说明至少它们是不同的副本。用户可通过诸如键盘962和定位设备961(通常指鼠标、跟踪球或触摸垫)之类的输入设备来输入命令和信息到计算机910中。其他输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些及其他设备常通过耦合到系统总线的用户输入接口960连到处理单元920,但也可通过其他接口和总线结构连接,诸如并行端口、游戏端口或通用串行总线(USB)。监视器991或其他类型的显示设备也通过诸如视频接口990等接口连到系统总线921。除了监视器之外,计算机还可包括其他外围输出设备,诸如扬声器997和打印机996,它们可通过输出外围接口990连接。
计算机910可用到诸如远程计算机980的一个或多个远程计算机的逻辑连接在联网环境中运行。远程计算机980可以是个人计算机、服务器、路由器、网络PC、对等设备或其他通用网络节点,且通常包括相对于计算机910所描述的许多或全部元件,尽管在图6中仅示出记忆存储设备981。图6描绘的逻辑连接包括局域网971(LAN)和广域网973(WAN),但也可包括其他网络。诸如此类的网络环境常见于办公室、企业范围计算机网络、内联网和因特网。
当用于LAN网络环境时,计算机910通过网络接口或适配器970连到LAN971。当用于WAN网络环境时,计算机910通常包括调制解调器972或用于通过诸如因特网的WAN 973建立通信的其他装置。可以是内置或外置的调制解调器972可通过用户输入接口960或其他适当的机制连到系统总线921。在联网环境中,相对于计算机910描绘的程序模块或其部分可存储于远程记忆存储设备中。作为示例而非限制,图6示出远程应用程序985驻留在存储器设备981中。应当理解,所示网络连接是示例性的,且可使用在计算机间建立通信链路的其他手段。
尽管已示出并描述了本发明的较佳实施例,然而应当理解,可在其中进行各种改变而不会偏离本发明的精神与范畴。
权利要求
1.一种具有计算机可执行组件的计算机可读介质,所述计算机可执行组件包括(a)一节点生成器,它被构造成接收基于一训练文档组的训练词列表,并生成包含第一组概率的第一兄弟节点,及生成包含第二组概率的第二兄弟节点,对于所述训练词列表中的每个词,所述第一组概率包含该词在文档中出现的概率,且对于所述训练词列表中的每个词,所述第二组概率包含该词在文档中出现的概率。(b)一文档分配器,它被构造成基于所述第一和第二组概率,将所述训练文档组的每个文档与包含所述第一兄弟节点、所述第二兄弟节点和一空集的组中的至少一项相关联,与所述第一兄弟节点相关的文档形成第一文档组,且与所述第二兄弟节点相关联的文档形成第二文档组;以及(c)一树管理器,它被构造成将所述第一文档组和所述第二文档组的至少一个传递给所述节点生成器,以基于所述节点生成器和所述文档分配器的递归执行,创建一包括多个兄弟节点的层次的二叉树数据结构。
2.如权利要求1所述的计算机可读介质,其特征在于,还包括一文档分类器,它被构造成基于所述概率组中所生成的概率,将一新文档与多个兄弟节点中的至少一个节点相关联。
3.如权利要求2所述的计算机可读介质,其特征在于,所述文档分类器比较所述新文档和所述第一和第二兄弟节点的每一个之间的统计距离。
4.如权利要求1所述的计算机可读介质,其特征在于,还包括一词生成器,它被构造成接收所述训练文档组,并基于在所述训练文档组中的至少一部分文档中出现的词,生成所述训练词列表。
5.如权利要求4所述的计算机可读介质,其特征在于,所述词生成器基于在至少一部分文档中出现的词出现的频率,来生成所述训练词列表。
6.如权利要求4所述的计算机可读介质,其特征在于,所述词生成器考虑一预定的排除词列表。
7.如权利要求1所述的计算机可读介质,其特征在于,其中所述节点生成器基于将所有训练文档根据所述第一和第二组概率与所述第一和第二节点相关联的似然性最大化,来确定所述第一和第二组概率。
8.如权利要求7所述的计算机可读介质,其特征在于,所述节点生成器基于期望值最大化算法来将所述似然性最大化。
9.如权利要求1所述的计算机可读介质,其特征在于,所述文档分配器确定所述训练文档组中的每个文档与所述第一节点和所述第二节点的每一个之间的统计距离。
10.如权利要求9所述的计算机可读介质,其特征在于,如果一文档与所述第一节点间的所确定的距离低于一预定阈值,则所述文档分配器将所述训练文档组的该文档与所述第一节点相关联。
11.如权利要求9所述的计算机可读介质,其特征在于,所述距离值是KL发散量值。
12.一种其上储存一二叉树数据结构的计算机可读介质,,所述二叉树数据结构包括(a)根节点,它存储在所述计算机可读介质的至少一个区域中,所述根节点与分配给一训练文档组中找到的个别词的第一概率列表相关联。(b)第一子节点,它存储在所述计算机可读介质的至少一个区域中,并与所述根节点以父-子关系相关联,所述第一子节点与分配给一训练文档组中找到的个别词的第二概率列表相关联。(c)第二子节点,它存储在所述计算机可读介质至少一个区域中,并与所述根节点以父一子关系相关联,所述第二子节点与分配给一训练文档组中找到的个别词的第三概率列表相关联。
13.一种其上存储了文档的计算机可读介质,所述文档包括(a)出现在所述文档中的多个词。(b)包括一节点指示器的元数据,所述节点指示器指示一二叉分类树的哪个节点与所述文档相关联,其中,所述二叉分类树的每个节点与一词列表及一词概率列表相关联。
14.如权利要求13所述的计算机可读介质,其特征在于,所述元数据包括文本串。
15.如权利要求14所述的计算机可读介质,其特征在于,所述文本串包括通过所述二叉分类树到所述相关联的节点的路径的二进制指示。
16.一种方法,包含以下步骤(a)基于一训练文档组创建一二叉分类树,从而所述二叉分类树的每个节点与一词列表相关联,且每个词列表中的每个词与给定所述节点时该词在文档中出现的概率相关联。(b)基于一新文档与所述节点间的距离,将所述新文档与所述二叉树的至少一个节点相关联。
17.如权利要求16所述的方法,其特征在于,创建所述二叉分类树包含基于期望值最大化算法,确定每个词在文档中出现的概率,所述期望值最大化算法将所述训练文档组中的每个文档由与所述二叉分类树的两个兄弟节点的每一个相关联的词列表生成的似然性最大化。
18.如权利要求16所述的方法,其特征在于,所述距离值是基于K1发散量来确定的。
19.如权利要求18所述的方法,其特征在于,所述新文档与具有低于一距离阈值的K1发散量的节点相关联。
20.如权利要求18所述的方法,其特征在于,关联所述新文档包含将所述新文档关联到具有路径上的最小K1发散量的路径的节点。
21.如权利要求16所述的方法,其特征在于,创建所述二叉分类树包含基于与所述列词相关联的节点的一父节点相关联的词列表,来确定与节点相关联的每个词列表。
22.如权利要求16所述的方法,其特征在于,创建所述二叉分类树包含将所述训练文档组的至少一部分关联到第一子节点、第二子节点及一空集中的至少一个。
23.如权利要求22所述的方法,其特征在于,关联所述训练文档组的至少一部分是基于与所述第一子节点相关联的每个词的每个概率,以及与所述第二子节点相关联的每个词的每个概率。
24.一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行下列步骤(a)访问一文档;(b)基于一组训练词在所述文档中出现的第一概率,确定所述文档和两个兄弟节点中的第一个之间的第一距离值;(c)基于一组训练词在所述文档中出现的第二概率,确定所述文档和两个兄弟节点中的第二个之间的第二距离值;(d)如果所述第一距离值低于一距离阈值,则确定两个子节点是否与与所述两个兄弟节点中的第一个相关联;(e)如果两个子节点与所述两个兄弟节点中的第一个相关联,则确定所述文档与所述两个子节点中的第一个之间的第三距离值,并确定所述文档与所述两个子节点中的第二个之间的第四距离值;以及(f)如果两个子节点与所述两个兄弟节点中的第一个相关联,则基于所述第三距离值和所述第四距离值,将所述文档与所述第一和所述第二子节点中的至少一个相关联。
25.如权利要求24所述的计算机可读介质,其特征在于,确定所述第一距离值包含确定所述文档与所述两个兄弟节点的第一个之间的第一K1发散量,并且其中,确定所述第二距离值包含确定所述文档与所述两个兄弟节点中的第二个之间的第二K1发散量。
26.如权利要求24所述的计算机可读介质,其特征在于,所述距离阈值是所述第二距离值。
27.如权利要求24所述的计算机可读介质,其特征在于,所述距离阈值是一预定的熵值。
28.如权利要求24所述的计算机可读介质,其特征在于,还包含确定所述第二距离值是否低于所述距离阈值,以及确定另外两个子节点是否与所述两个兄弟节点中的第二个相关联。
29.如权利要求28所述的计算机可读介质,其特征在于,如果另外两个子节点与所述两个兄弟节点中的第二个相关联,则还包含确定所述文档与所述另外两个子节点中的第一个之间的第五距离值,并确定所述文档与所述另外两个子节点中的第二个之间的第六距离值。
30.如权利要求28所述的计算机可读介质,其特征在于,如果另外两个子节点不与所述两个兄弟节点的第二个相关联,则还包含将所述文档与所述两个兄弟节点中的第二个相关联。
31.如权利要求24所述的计算机可读介质,其特征在于,如果两个子节点不与所述两个兄弟节点中的第一个相关联,则还包含将所述文档与所述两个兄弟节点中的第一个相关联。
32.如权利要求24所述的计算机可读介质,其特征在于,如果所述第一和所述第二距离值都不低于所述距离阈值,则还包含将所述文档与所述两个兄弟节点中的第一个和第二个的父节点相关联。
33.一种方法,包含(a)接收一训练文档组,每个文档包含一词列表;(b)从所述词列表中所列的至少一部分词中选择第一组训练词;(c)对于所述训练词的每一个,生成该训练词在任一文档中出现的第一概率,并将该概率与第一节点相关联;(d)对于所述训练词的每一个,生成该训练词在任一文档中出现的第二概率,并将该概率与第二节点相关联;(e)基于每个训练词的所述第一和第二概率,将每一词列表与包含所述第一节点、所述第二节点及空集的组中的至少一项相关联;(f)从与所述第一节点相关联的词列表中列出的至少一部分词形成第二组训练词。(g)对于所述第二组训练词中的每个训练词,生成该训练词出现在任一文档中的第三概率,并将该概率与第三节点相关联。(h)对于所述第二组训练词中的每个训练词,生成该训练词出现在任一文档中的第四概率,并将该概率与第四节点相关联。(i)基于每个训练词的所述第三和第四概率,将每一词列表与包括所述第三节点、所述第四节点及空集的组中的至少一项相关联。
34.如权利要求33所述的方法,其特征在于,生成所述词的概率包含将每一词列表在所述二叉树的一层的第一节点和第二节点的至少一个中的概率最大化。
35.如权利要求33所述的方法,其特征在于,还包含将一新文档分配给所述二叉树的一个节点。
36.如权利要求35所述的方法,其特征在于,分配所述新文档包含生成出现在所述新文档中的一新的词列表,并基于与该树的每个节点相关联的每个词的概率走查该树。
全文摘要
在文档的分层分类法中,信息的类别可被结构化为一二叉树,该二叉树的各节点包含有关搜索的信息。该二叉树可通过检查一组训练文档并将那些文档分成两个子节点来“训练”或形成。那些文档组的每一组随即可被进一步分成两个节点,来创建二叉树数据结构。这些节点可被生成以将所有训练文档在两个子节点中的任何一个或同在两个子节点中的似然性最大化。在一个例子中,该二叉树的每个节点可与一词列表相关联,并且每一词列表中的每个词与给定该节点时该词出现在文档中的概率相关联。新文档可由该树的各节点来归类。例如,基于该文档与相关联的节点间的统计相似性,新文档可被分配给一特定节点。
文档编号G06F17/30GK1716256SQ20051008225
公开日2006年1月4日 申请日期2005年6月30日 优先权日2004年6月30日
发明者C·B·韦瑞 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1