构建用于基于知识的匹配的特征和索引的制作方法

文档序号:13261293阅读:156来源:国知局
技术领域本描述一般涉及生成包含在知识库中的文档或文章的增强的索引。背景软件应用程序的消费者通常会产生与软件相关联的问题。这些问题在从配置错误到系统崩溃的范围内。当消费者遇到这些类型的问题时,他们通常首先尝试通过咨询搜索引擎来查找该问题的解决方案。搜索引擎旨在从通过爬行经过web文档、讨论板、电子邮件线程、软件操作手册及其他公开可用的文档而创建的索引中查找相关的文档。如果搜索引擎不提供适当的结果,则消费者通常将呼叫客户支持服务。当处理客户支持时,客户支持代表或工程师试图例如通过搜索数据库或使用分类方案来将报告的问题与包含在知识库数据库中的信息匹配。此方法允许客户支持人员向用户提供专家编写的事实和规则来解决客户的问题。然而,公司提供使用人类的客户支持服务是极为昂贵的。其次,当大量的客户立即或在短时间窗口内向呼叫中心呼叫时,此方法会产生有显著的等待时间的风险。这通常例如在新功能被发布或有缺陷的软件修补程序导致在客户机器上引起新的问题时发生。第三,这种故障排除方法取决于数据库中的专家定义的规则,这些专家定义的规则随着软件发展会有不完整的风险或者会变得过时。最后,这种方法只解决由客户向客户支持报告或呈现的问题,但不会标识其他潜在地相关的问题,诸如应用特定的安全修补程序的需要。诸如Google和Bing之类的搜索引擎已经被优化以输出针对给定查询的高度相关的结果。然而,它们的技术专注于对查询项或其扩展(诸如拼写校正或改变项顺序)的基于文本的匹配,以允许相关文档的匹配。此方法使得难以基于包含在知识库中的文章(例如,技术解决方案)中的信息来正确地标识并分析配置错误。这是因为,这些文章是以自然语言文本编写的,它们是高度领域特定的,而且它们常常使用技术单词的缩写和同义词,并且还可在特定的文档中的配置参数和值上描述指示该文档在哪里相关以及它在哪里不相关的配置的条件约束。如此,由消费者报告/呈现的问题或错误可能不能在知识库文章中被容易地搜索出。概述下面呈现了本发明的简要概述,以便向读者提供基本理解。本概述不是本发明的详尽概述,并且不标识本发明的关键/重要元素,也不描述本发明的范围。其唯一的目的是以简化形式呈现此处所公开的一些概念,作为稍后呈现的更详细的描述的序言。本示例提供了用于生成包含在知识库中的文档的增强的索引的系统和方法。该系统获得文档,并通过使该文档传递通过分析器中的一个或多个过滤器来生成该文档的增强的索引。分析器添加项、修改向或将项从文档的令牌流中移除。分析器可以向令牌流添加技术术语的同义词或认识到看起来像单独的单词的两个或更多单词实际标识特定的软件实体。分析器可确定出现在字符串中的数字不只是数字,而是指代特定的版本。然后,将令牌流添加到文档的索引中,使得当从配置快照或从输入的搜索查询中生成搜索时,可以相对知识库完成搜索。通过结合附图参考以下详细描述,可更易于领会并更好地理解许多附带特征。附图简述根据附图阅读以下详细描述,将更好地理解本发明,在附图中:图1是示出了根据一个说明性实施例的增强的索引系统的组件的框图。图2A是示出了根据一个说明性实施例的使用多个过滤器来生成增强的索引的分析器的框图。图2B是示出了根据一个说明性实施例的图2A的过滤器根据这些过滤器的基本功能的组织的框图。图3是示出了根据一个说明性实施例的生成增强的索引的过程的流程图。图4是示出了根据一个实施例的可实现增强的索引系统的计算设备的框图。在各个附图中使用相同的附图标记来指代相同的部件。详细描述下面结合附图提供的详细描述旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。本描述阐述了本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。当元素被称为被“相连接”或“相耦合”时,这些元素可被直接连接或耦合在一起,或者也可存在一个或多个中间元素。相反,当元素被称为被“直接连接”或“直接耦合”时,不存在中间元素。本主题可被体现为设备、系统、方法、和/或计算机程序产品。因此,本主题的部分或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本主题可以采用计算机可使用或计算机可读存储介质上的计算机程序产品的形式,介质中收录了供指令执行系统使用或结合指令执行系统一起使用的计算机可使用或计算机可读的程序代码。在本文档的上下文中,计算机可使用或计算机可读介质可以是可包含、储存、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合指令执行系统、装置或设备一起使用的任何介质。计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于储存所需信息且可由指令执行系统访问的任何其他介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或其他合适的介质,因为程序可经由例如对纸张或其他合适的介质的光学扫描来被电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并且随后被储存在计算机存储器中。通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”可被定义为其一个或多个特性以对信号中的信息编码的方式被设置或改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任何组合也应包含在计算机可读介质的范围内。当本主题在计算机可执行指令的一般上下文中具体化时,该实施例可包括由一个或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。图1是示出了根据本公开的一个说明性实施例的索引系统100的组件的框图。系统100包括多个基于知识的文章或文档101、知识库110、任选的配置快照模块120,以及知识发现模块130。在一个实施例中,知识库110是存储涉及指定的知识库的文章或文档101的数据库或其他数据储存库。例如,知识库110可包含涉及一般而言为计算系统的特定计算机软件产品(诸如SQLServer或MicrosoftWord)或其中可产生或消费基于知识的文章和文档的任何其他主题的多个文章,该知识库还可包括由客户服务人员在报告或对事件的协助期间创建的文档。在一些实施例中,知识库110可以保持多个不同的主题的或涉及许多不同的产品的基于知识的文章。保持在知识库110中的文档101按使得允许文档被搜索引擎或其他查询输送系统快速地访问的方式在索引111中被索引。文档或文章也可以包括来自社交媒体站点或来自在线论坛的馈源。索引111提供知识库110中的每一个文档到该文档的相关联的特征的列表的映射或当索引111是倒排索引时从每一特征到其相关联的一个文档或文档的映射。配置快照模块120是被配置成获得已经被部署的软件产品或计算机系统的配置文件的快照的模块。配置快照模块120可以使用这些快照121来生成可与基于知识的文章相关联的示例基于知识的文档以向用户返回对应的信息。这些快照121可以被存储在知识库110中,并按与基于知识的文档101相同的方式被处理和索引。另外,还可以使用快照121来将关于特定域级别的术语或问题的附加知识添加到知识发现模块130中。在一个实施例中,知识发现模块130包括预处理组件140、分析器150和索引器160。预处理组件140被配置成获得诸如文章101之类的文章,并将该文章转换为可以被分析器150用来创建该文章的项索引的格式。预处理组件140实现适用于各种文档格式(诸如XML、HTML、CSV和纯文本)的各种解析器。在一个实施例中,预处理组件将任何HTML标签或文章中的与该文章本身无关的其他嵌入的内容从该文章中移除。然而,为了解决由例如HTML标签的剥离造成的使可出现在文档中的某些内容丢失的问题,预处理组件140通过转换文档中的常规文本(当它出现时)来使输入文件变平(flatten)。然而,在文档包含可按线性方式表达的表或图形的情况下,预处理组件140将表转换为诸如键值对阵列之类的格式,其中在表的情况下,每一行都被转换为键-值对,其中键表示列名称,且值表示该行中的相关联的信息。通过使用此变换方法,有可能确保包含在表中的语义信息按准许该表本身被稍后索引的方式被传播到文档中。在其他实施例中,预处理组件140可以从从配置快照模块120中获取并包含在快照121中的配置快照中提取症状或条件。在一些实施例中,预处理组件140可以确定相关联的文档的主题。在再一个实施例中,预处理组件140可确定该文章是否是关于问题的起因或该问题的解决办法的文章。关于最终用户可能没有固定解决方案的问题的起因的文章和文档仍可对该最终用户理解他们正遇到的特定情况有价值。相反,解决办法对于最终用户了解而言是有用的。如此,他们知道问题本身是否已经被解决。例如,客户服务代表可生成关于尚未被解决的问题的工作单,或者用户可以将问题张贴在诸如MicrosoftDeveloperNetwork(MSDN)之类的在线知识库中。此工作单可以作为未解决的问题被输入到文章的知识库中。如此,说出文章被解决还是未被解决的能力可对使用知识库系统的人员重要,因为该能力向他们提供关于如何利用他们自己的系统向前移动的信息。从预处理组件140输出经预处理的文档141。然而,在其他实施例中,文档可被直接提供给分析器150,而无需经过预处理组件150。分析器150从预处理组件接收经预处理的文档141。分析器150使文档经过多个过滤器,以便生成将用于索引文档的项。图2是示出了可以存在于分析器150中的用于标识供在文档的索引中使用的项的各过滤器的框图。应该指出的是,本发明的各实施例可以具有不同的过滤器,不同数量的过滤器,并且这些过滤器可按不同的顺序被应用。开发人员具有选择索引系统可应用或使用图2中示出的哪个过滤器的能力。由此,可存在任何数量或组合的过滤器。图2A是示出了可以存在于分析器150中并可由系统在生成文章的令牌索引的过程中使用的各过滤器的框图。分析器150可包括令牌化器210、骆驼拼写法过滤器220、值类型过滤器230、命名实体过滤器240、停止过滤器250、小写过滤器260、同义词过滤器270、第二同义词过滤器280,以及词干过滤器290。图2B是示出了根据一个说明性实施例的过滤器210-290根据将过滤器应用到经预处理的文档141的辅助方法的的组织的框图。在第一级别201,使用令牌化器210将经预处理的文档141令牌化为令牌流。在下一级别202处是令牌流的规范化。在级别202,分组过滤器220、230和240。然而,应该指出的是,在此级别也可以存在提升规范化的其他类型的过滤器。在级别203,是令牌流的截短。级别203包括停止词过滤器250。然而,在此级别可应用通过移除或组合查询中的令牌而导致令牌流的总尺寸的减小的任何其他过滤器。在级别204是扩展级别。此级别包括针对命名实体240的过滤器、第一同义词过滤器270和第二同义词过滤器280。然而,通过基于令牌流中的信息包括额外的信息来扩展令牌流中的项的其他过滤器也可以存在于此级别。最后一个级别205是标准化级别。在此级别定位有词干过滤器290。然而,在该级别处也可存在可标准化令牌流中的项的任何其他过滤器。系统的输出是增强的令牌流151。本讨论现在返回到图2A以讨论分析器150中的各过滤器的特征。再次请注意,任意数量的这些过滤器可以存在于分析器150中。令牌化器210获得文章,并将纯文本转换为较小的原子单元,这些原子单元将被进一步处理以生成用于索引的增强的令牌流151。令牌化过程通常在文档中的单词级别发生。然而,系统通常难以知道单词实际上是什么。如此,在一些实施例中,令牌化器210使用试探法来标识要被令牌化的单词。试探法可包括在所遇到的每一各字符之间的空白处进行令牌化,以及考虑所有遇到的文章中的标点符号。骆驼拼写法过滤器210被配置成在由令牌化器210生成的令牌内标识各种“骆驼拼写法单词”。骆驼拼写法过滤器210将骆驼拼写的单词扩展为它们的组成单词。骆驼拼写单词是出现在技术文档中的通常具有组合成单个单词的两个或三个单词的单词。在本公开的一个实施例中,骆驼拼写法过滤器210考虑并标识骆驼拼写单词的以下五种常见的情况:(1)标准情况“CamelCase(骆驼拼写法)”通常用于源代码或配置实体中的类型名广告引用,例如,GetMethodName(获得方法名称);(2)内部情况“camelCase”常常用于标识符名,例如,methodName(方法名称);(3)末尾处为大写字母“CamelCASE”,例如,GetBIT(获得比特),(4)全部为大写字母“CAMELCASE”通常用于缩写或布尔比特,例如ENABLED(被启用);以及,(5)骆驼拼写和大写字母的混合常常用于在单词内部包括缩写,例如WeakRSAKey(弱RSA密钥)。给定一输入骆驼拼写法单词,此过滤器210将原始令牌与其组成单词一起输出。例如,“IsSecurityLogOverwrite(是安全日志盖写吗)”将被转换为[IsSecurityLogOverwrite(是安全日志盖写吗),Is(是),Security(安全),Log(日志),Overwrite(盖写)],以支持查找骆驼拼写表示或其组成单词的查询。然而,骆驼拼写法过滤器可标识并处理骆驼拼写单词的其他情况。值类型过滤器220被配置成从令牌中标识与令牌相关联的值类型以提供与遇到的数字有关的进一步的暗示。这通常出现在讨论某些软件版本或特定系统设置的文章中。例如,文章可以说明“在SQL中,如果逻辑处理器的数量小于或等于8,则将InMemory(存储器内)比特设置为真...”。值类型过滤器220在令牌流中与标识出的值令牌相同的位置处向该索引流添加为Numeric(数字)或Boolean(布尔)的令牌。由此,值类型过滤器220检测数字、真/假以及版本号。值类型过滤器220也可检测并标识额外的诸如枚举之类的值。由此,在该示例中,值类型过滤器220将输出“在SQL中,如果逻辑处理器的数量小于或等于8NUMERIC,则将InMemory比特设置为真BOOLEAN…”。在一些实施例中,值类型过滤器220能够标识并解决令牌流中的比较特征。例如,值类型过滤器可以标识单词“greaterthanorequalto(大于或等于)”,并利用指出这是令牌流中的比较令牌并还指出与比较特征相关联的数学函数以便在查询期间中可以评估该比较特征以便确定真匹配的标识符来标识它。可以由值类型过滤器220标识其他比较特征,诸如“equalto(等于)”、“setto(设为)”、“greaterthan(大于)”、“lessthan(小于)”等等。小写过滤器260是仅输出已标识的令牌的小写版本的过滤器。如此,在示例中,“SQL”被转换为第二令牌“sql”,该第二令牌“sql”随后被添加到文章的令牌的列表中。通过从令牌流中移除大写,当用户稍后输入相对于知识库的查询时,标识单词变得更容易。应该指出的是,当小写过滤器与骆驼拼写法过滤器210一起存在时,应该在小写过滤器260之前应用骆驼拼写法过滤器210。这允许保留与将被丢失的骆驼拼写单词相关联的信息,并且对骆驼拼写单词的扩展充其量变得困难。将停止词过滤器250应用于令牌流,以从字符串中删除频繁出现的单词。在一个实施例中,停止词过滤器250使用正针对其索引文档的自然语言中最频繁出现的常用单词的列表。例如,将从令牌流中移除诸如“a(一)”、“an(一个)”、“and(和)”、“the(此)”、“is(是)”、“are(是)”、“my(我的)”、“our(我们的)”等等之类的英语单词。另外,还可以移除知识库的主题中的常见的某些单词。此单词列表可以被提供到来自于开发人员或组织的有助于标识通常将不会被移除,但是由于主题可能会给查找信息的人产生比值更多的噪声的单词的系统。命名实体过滤器240是被配置成标识令牌流中的命名实体的过滤器。例如,在文档陈述“将SQLServer安装在您的机器上”的情况下。标识并识别“SQLServer”是命名实体而不是两个单独的不相关的单词变得有帮助。命名实体过滤器240修改令牌流的令牌顺序信息,以便单词“SQLServer”被标识为单个令牌,而不是两个单独的令牌。命名实体过滤器240从域专家那里获取命名实体列表,其中,这些命名实体已被映射成用于标识这些命名实体所共有的其他特征的本体模型。例如,“SQLServer”和“逻辑处理器”可以被标记为本体模型中的“软件实体”。也可以自动地或结合领域专家一起自动地创建命名实体列表。在一个实施例中,在给定命名实体列表的情况下,命名实体过滤器240构建一个图形作为允许快速查找的预处理步骤。在此图形中,节点表示单词,并且在单词在命名实体列表中的短语中一起出现的情况下变连接这些单词。例如,在给定单词[sql,sqlserver,sqlserverdatabase(sqlserver数据库),sqlserver2005]的情况下,最后的图形将包含四个节点(sql,server,database,2005),以及从sql→server,server→database,以及server→2005的边。表1(下面)示出了命名实体如何在索引-时间处被识别并被实现为命名实体过滤器的一部分。对于每一个输入令牌,其位置被记录在TokenPosition(令牌位置)(L4)。在L5上的ExistsAsEntity(作为实体出现)函数用于检查令牌是否作为实体存在,即,图形是否包括具有TOKEN作为其值的节点。如果是,那么进行检查(使用L11中的ExistsAsNeigbor(作为近邻存在)函数),以查看下一令牌(L10)是否作为图形中的TOKEN的近邻存在。如果是,那么将它与先前的令牌串接,并将其推送到堆栈中。算法将继续执行,只要下一令牌作为先前令牌的近邻存在。一旦此条件被违犯,堆栈就被弹出,并且串接的字符串将被给予来自L4的TokenPosition的令牌位置。表1索引-时间命名实体识别Require:Pre-processeddatabaseofwordautomatons,Tokenstream(需要:经预处理的单词自动机数据库,令牌流)Output:Groupoftokensrecognizedasnamed-entities(输出:被识别为命名实体的令牌群组)1:Initially:2:TOKEN←Currenttoken3:STACK←InitializeStack()4:TokenPosition=GetTokenPosition()5:whileExistsAsEntity(TOKEN)do6:CurrentTerm=TOKEN7:ifIsEmpty(STACK)==1then8:STACK.Push(CurrentTerm)9:endif10:NextTerm=IncrementToken()11:ifExistsAsNeigbor(CurrentTerm,NextTerm)==1then12:CurrentTerm=STACK.Pop()13:STACK.Push(CurrentTerm+NextTerm)14:else15:NextTermBuffer=NextTerm16:endif17:endwhile18:STACK.Pop()19:TOKEN.SetPosition(TokenPosition同义词过滤器270是应用于令牌流以标识令牌流中可与域专用级别上的单词有关的单词或同义词的过滤器。当过滤器270查找到相关的单词时,过滤器270扩展令牌流。此方法在域专用知识库中特别有用,因为同义词不会经常变化而且将该信息存储在索引中并不昂贵。此外,通过存储在索引中,有可能减小查询延迟。同义词过滤器270与命名实体过滤器240工作的方式类似地工作,下面的表2示出了同义词过滤器。然而,代替使用命名实体过滤器240的图形,同义词过滤器使用两个散列表。第一散列表包含作为键的单词及其相关联的作为值的同义词组标识符。第二散列表包含作为键的同义词组标识符以及该组中的作为值的所有同义词的集合。当同义词过滤器270标识字符串中的令牌时,它注入该组中作为值的所有同义词。然而,在其他实施例中,可以使用额外的逻辑来过滤掉与文档不相关的那些同义词。然后,将同义词插入到令牌流中已标识的令牌的位置值处。在替换实施例中,同义词不能被直接插入到令牌流中,但是在表中被引用,并且对应的索引或同义词的id被插入到令牌流中该令牌的位置处。表2索引-时间同义词扩展Require:Synonymgroups,Tokenstream(需要:同义词组,令牌流)Output:Tokenstreaminjectedwithassociatedsynonyms(输出:与相关联的同义词一起注入的令牌流)1:Initially:2:TOKEN←Currenttoken3:STACK←InitializeStack()4:ifHasSynonyms(TOKEN)==1then5:STACK.Push(GetSynonyms(TOKEN))6:TokenPosition=GetTokenPosition()7:endif8:whileSTACKisnotemptydo9:InjectNewToken(STACK.Pop(),TokenPosition)10:endwhile第二同义词过滤器280是被配置成获得令牌流并将令牌流中的单词的常见同义词添加到字符串中的过滤器。在一个实施例中,第二同义词过滤器利用单词网(WordNet)即G.A.Miller的单词网:aLexicalDatabaseforEnglish(英语词汇数据库).CommunicationsoftheACM(ACM通信),38(11):39-41,1995来标识要作为同义词被添加到字符串的额外的单词。然而,所讨论的语言的任何同义词列表都可用于该术语扩展。然后,这些标识出的同义词被添加到字符串中其对应令牌的位置处。词干过滤器290是被配置成移除单词或将单词转换为其基本形式的过滤器。由此,词干过滤器290被用来将工作返回到其基本形式。例如,描述“升级您的软件”的文章和关于“软件模块的升级”的文章两者都可能表示相同的概念,即,“升级”。在一个实施例中,词干过滤器使用Porter词干提取算法。Porter词干提取算法是用于移除较常见的形态学和屈折的结尾单词的过程。然而,可以使用用于标识单词和进行词干提取的任何方法。索引器160从分析器中接收所讨论的文章的最后令牌流151。已传递通过过滤器210-290中的一个或多个的令牌流151现在作为文章的索引与文章相关联。然后,此索引与父文档101一起被存储在知识库数据库110中,以后该索引可在搜索或查询期间在该知识库数据库110中被检索到。图3是示出了用于通过标识并构建文档的索引中的附加特征来索引基于知识的文档的过程的流程图。这也被称为知识构建。基于知识的文章101被标识、接收和/或提供给系统。这在步骤310中示出。文章可以由开发人员在程序开发期间生成,由对客户抱怨或问题作出响应的客户服务代理在使用特定软件段时生成,由熟悉特定产品的工作的主题专家从基于知识的文章的在线公告板系统或对张贴的问题的响应中生成,由解决并编写了关于产品的问题或特征的人员生成,或通过生成基于知识的文章的任何其他装置或方法来生成。所有这些作者之间的共同联系是他们均产生可以由最终用户消费以更好地配置或使用特定软件产品的文档。尽管本讨论针对基于软件或计算机的知识库系统,但是此处所呈现的概念也可同等地应用于使用基于知识的文章的其他领域,诸如汽车、家用电器、船、烹饪等等。替换地,可以在此步骤中接收或提供配置快照121。一旦文章101或多篇文章已在步骤310中被标识并提供给系统,该系统就着手预处理文章。这在步骤320中示出。预处理步骤通过从文章中移除标签及其他无关系的文档数据(诸如HTML标签)使得该文章现在例如采用纯文本格式来线性化该文章中的文本。在步骤320可使用可用于将文章转换为纯文本的任何方法。通过将文章转换为纯文本,现在有可能执行本公开的索引过程。一旦文章是纯文本,则在步骤330使文本通过诸如令牌化器210之类的令牌化器以生成令牌流。令牌化器将文本拆分为较小原子单元或令牌,这些单元或令牌将由系统在生成用于索引知识库110中的文档的增强的令牌流151时进一步处理。令牌化文本的过程可以通过从单词创建可以用于文档的索引或搜索的令牌的任何方法或过程来执行。对文本的令牌化标识文档中的单词或单词分组。在文本已被令牌化之后,使令牌和令牌流传递通过至少一个过滤器。在步骤340中示出了过滤令牌和令牌流的步骤。过滤令牌流中的令牌有助于创建更清洁的索引,该更清洁的索引可在以后用于搜索文章的知识库,以发现与接收到的查询更相关的文章。令牌被传递通过的过滤器中的每一个都在构建用于索引文档的增强的令牌流时对令牌和令牌流执行特定动作。例如,过滤器可以从文档中移除过度常见或重复的单词,诸如“a”、“the”,或可以将附加单词添加到令牌流中,诸如将各令牌的同义词添加到令牌流中。如上文参考图2所讨论的,任意数量的过滤器可存在,并在过滤步骤340中被使用。过滤步骤输出处理的每一个文档的诸如令牌流151之类的增强的令牌流。此增强的令牌流作为文档的索引与原始文档101配对。然后,被索引的文档被存储在知识库110中。在步骤350中示出了此。系统的用户可向系统提供反馈,以便文档的索引可被更好地增强。在步骤360中,提供反馈。此反馈可以基于用户标识出与特定问题有关的额外的单词。相反,此反馈可包括不适用于特定文章的单词或概念的列表。在此方法中,系统能够学习和调谐它应用于令牌流的各种过滤器,以实现对系统的用户而言更好的结果。这些输入可包括应该始终被包括的项或特征的白名单、应该始终被排除的项的黑名单,以及命名实体,其中,用户为系统标识应该被视为命名实体的特定项。此用户反馈被包含在对应的过滤器中以增强该过滤器。在一些实施例中,反馈可以在调节或不调节对应的过滤器的情况下简单地修改索引。在某些实施例中,本公开导致构建倒排索引,该倒排索引以适于快速的检索的形式存储从文档或文章中提取的项。本公开使用倒排索引即面向单词的机制来用于索引文本集合,以加速搜索任务。在一个实施例中,倒置文件结构由两个元素组成:词汇表以及元信息。词汇表是文本中的所有不同令牌的集合。对于每一个这样的令牌,存储被称为元信息的附加信息项。当对检索任务进行评分时,通常使用元信息。本公开存储有令牌出现在其中的所有文本位置的列表(这被称为位置信息——令牌位置(即,位置k是指第k个令牌)以简化短语和接近度查询(令牌y附近的令牌x))、有令牌出现在其中的所有文档的列表以及令牌出现在文档中的次数(被称为项频率)。表3示出了倒排索引的示例。表3图4例示出根据一个实施例的计算设备的组件图。计算设备400可被用于实现本文所述的一个或多个计算设备、计算机过程、或软件模块。在一个示例中,计算设备400可用于处理计算、执行指令,接收并发送数字信号。在另一示例中,如本发明实施例的系统所要求的那样,计算设备400可被用于处理计算,执行指令,接收并发送数字信号,接收并发送搜索查询以及超文本,编译计算机代码。此外,计算设备400可以是分布式计算设备,其中计算设备400的组件位于通过网络或其他形式的连接而彼此连接的不同计算设备上。此外,计算设备400可以是基于云的计算设备。计算设备400可以是现在已知或将变得已知的能够执行本文所述的步骤和/或执行本文所述的功能(采用软件、硬件、固件或其组合的形式)的任何通用或专用计算机。在其最基本的配置中,计算设备400通常包括至少一个中央处理单元(CPU)402和存储器404。取决于计算设备的确切配置和类型,存储器404可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。另外,计算设备400还可具有附加的特征/功能。例如,计算设备400可包括多个CPU。所述方法可由计算设备400中的任何处理单元以任何方式来执行。例如,所描述的过程可由多个CPU并行地执行。计算设备400还可包括另外的存储(可移动和/或不可移动),其包括但不限于磁盘、光盘或磁带。这些另外的存储在图4中由存储406示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器404和存储406是计算机存储介质的全部示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并且可由计算设备400访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备400的一部分。计算设备400还可包含允许该设备与其它设备通信的(一个或多个)通信设备412。(一个或多个)通信设备412是通信介质的示例。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。如此处所使用的术语计算机可读介质包括存储介质和通信介质两者。所描述的方法可用诸如数据、计算机可执行指令等之类的任何形式被编码在任何计算机可读介质中。计算设备400还可具有诸如键盘、鼠标、笔、话音输入设备、触摸输入设备等输入设备410。还可包括诸如显示器、扬声器、打印机等输出设备408。所有这些设备在本领域是众知的并且不必详细讨论。本领域技术人员会认识到,用于存储程序指令的存储设备可分布在网络上。例如,远程计算机可以存储被描述为软件的进程的示例。本地或终端计算机可以访问远程计算机并下载软件的一部分或全部以运行程序。替代地,本地计算机可以根据需要下载软件片段,或通过在本地终端上执行一些软件指令而在远程计算机(或计算机网络)上执行另一些软件指令来分布式处理。本领域的技术人员还将认识到,通过利用本领域的技术人员已知的传统技术,软件指令的全部,或一部分可以通过诸如DSP、可编程逻辑阵列等等之类的专用电路来实现。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1