CN1265209A - 使用自然语言处理技术用于处理文本输入的系统 - Google Patents

使用自然语言处理技术用于处理文本输入的系统 Download PDF

Info

Publication number
CN1265209A
CN1265209A CN98807504A CN98807504A CN1265209A CN 1265209 A CN1265209 A CN 1265209A CN 98807504 A CN98807504 A CN 98807504A CN 98807504 A CN98807504 A CN 98807504A CN 1265209 A CN1265209 A CN 1265209A
Authority
CN
China
Prior art keywords
logical form
group
document
lexical
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN98807504A
Other languages
English (en)
Other versions
CN100524294C (zh
Inventor
西蒙·H·科斯特
威廉·B·多兰
露西·H·范德温德
莉萨·布兰登-哈德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/898,652 external-priority patent/US5933822A/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1265209A publication Critical patent/CN1265209A/zh
Application granted granted Critical
Publication of CN100524294C publication Critical patent/CN100524294C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种系统(1480)响应一查询过滤从一文档存储器中检索的文档组。该系统(1480)获得基于所选的一个查询的第一组逻辑形式和在该文档组中的文档。该系统(1480)获得基于另一个查询的第二组逻辑形式和在该文档组中的文档。然后,该系统(1480)使用自然语言处理技术来修改(1832,1834)第一逻辑形式,以获得修改的逻辑形式组。该系统(1480)根据修改的逻辑形式组与第二组逻辑形式之间的预定关系过滤(1836)应该文档组中的文档。

Description

使用自然语言处理技术用于处理文本输入的系统
发明背景
本发明涉及处理文本输入。更具体来说,本发明涉及使用自然语言处理技术来确定文本输入之间的相似性。本发明广泛应用于各种应用领域,例如信息检索、机器翻译、自然语言理解、文本归类/分组,等等。但是,本发明将主要针对信息检索的情况进行描述,仅用于解释说明的目的。
通常,信息检索是一种处理过程,通过该过程用户从大量信息中查找和检索与该用户相关的信息。在执行信息检索中,检索用户所需的所有信息是重要的(即,完整性是重要的)并且同时限制为用户检索的不相关信息也是重要的(即,选择性是重要的)这些尺度通常被称为“查全率”(完整性)和“精度”(选择性)。在许多信息检索系统中,在查全率和精度的尺度之间获得良好性能是重要的。
在一些当前的检索系统中,可以被查询和搜索的信息量是非常大的。例如,一些信息检索系统被设置为在互联网、数字视频光盘、以及其它通常的计算机数据库中检索信息。该信息检索系统一般体现为例如互联网搜索引擎和图书目录搜索引擎。另外,即使在常规的台式计算机操作系统中,提供特定类型的信息检索机构。例如,一些操作系统提供一种工具,用户通过该工具可以根据由用户所输入的特定词语搜索在给定数据库上或者在计算机系统上的所有文件。
许多信息检索技术是已知的。在这种技术中的用户输入查询一般表现为明示用户产生的查询或者暗示查询,例如当用户需要与一组现存文档相类似的文档时。典型的信息检索系统在存储于单个词语级别或者在一个项目级别上的大量数据搜索文档。每个文档都被分配一个相关(或相似性)值,并且信息检索系统提供为用户搜索的文档的特定子集,一般地,该子集具有超过给定阈值的相关值。
常规的统计搜索引擎的较差精度源于“字词是独立的变量”这样的假设,即,在任何文本段落中的字词是相互独立出现的。在本文中的“独立”意味着假定在一个文档中存在一个字,则任何其它出现在该文档中的词条件概率总是零,即,文档仅仅包含词的无组织的集合,或者简单地说是“一袋单词”。任何人可以容易地看出,对于任何语言来说,该假设完全是错误的。象其它语言一样,英文具有丰富和复杂的语法和词义结构,单词的意思根据它们所用于的特定的语言环境通常广泛地变化,在任何情况中,上下文决定一个单词的给定含义以及随后可以出现的单词。因此,出现在文本段落中的单词不仅仅简单地相互独立,而是它们之间高度地相互依赖。基于关键字的搜索引擎完全忽略了该细微的语言结构。例如,考虑用自然语言表达的一个说明性查询:“章鱼有多少个心脏?”统计搜索引擎对所包含的词语“心脏”和“章鱼”进行运算,或者对其语形词干进行运算,这样可能返回或把用户引向包含具有其成分的菜谱的所存储文档,其中包含词语:“朝鲜蓟菜心、鱿鱼、洋葱和章鱼”。假定匹配两个包含的词“章鱼”和“心脏”,该引擎可能根据统计测量(例如,包括近似和逻辑操作符)确定该文档是一个良好的匹配,而实际上该文档与该查询完全无关。
该技术给出多种用于提取语法词元素作为没有表明关系的主要修正量对的各种方法。这些元素然后在常规的统计矢量空间模型中被作为条目(一般没有内部结构)。
这种方法的一个例子在J.L.Fagan的“用于文档检索的在自动短语编索引中的实验:语法和非语法方法的比较”,博士论文,康奈尔大学,1988年,第i-261页。更具体来说,该方法是用自然语言处理来分析英文句子,并且提取语法短语的组成元素,其中这些短法成分被作为条目并作为使用统计矢量空间模型中的索引。在检索中,用户用自然语言输入查询,在这种方法中,该查询受到自然语言处理以分析并提取类似于存储在索引中的元素的语法短语的组成元素。然后,尝试把来自查询的语法短语组成元素与存储在索引中的元素相匹配。作者把这种纯粹的语法方法与统计方法相比较,在该统计方法中,使用随机方法来识别语法短语中的元素。作者得出这样的结构,即自然语言处理没有比随机方法有实质性的改进,并且自然语言处理有时产生的在精度上的微小改进与自然语言处理相关联的实质性处理成本不相当。
下面描述另一个这种基于语法的方法,在使用自然语言处理的文本中选择包含在搜索查询中的适当条目,在T.Strzalkowski的“自然语言信息检索:TIPSTER-2最终报告”,在文本处理中的发展:Tipster进展第二阶段,DARPA,1996年5月6-8日,Tysons Corner,弗吉尼亚,第143-148页,(在下文中称为“DARPA论文”);以及T.Strzalkowski的“自然语言信息检索”,信息处理和管理,Vol.31,No.3,1995年,第397-417页。尽管该方法提供理论上的判断,但是DARPA论文的第147-8页上的作者得出这样的结论,即由于需要实现在自然语言技术下的成熟的处理,该方法目前是不实际的:
“…记住满足我们的性能要求(或者至少接近这些要求)的NLP(自然语言处理)技术在它们处理自然语言文本的能力上仍然相当不成熟。具体来说,涉及概念性结构、逻辑形式,等等的先进处理仍然不能计算实现。可以设想由于这些先进的技术处理代表级别限度的问题,因此它们将更加有效;但是,实验证据较少并且局限于相当小范围内的实验”。
这种类型的另一个基于语法的方法在B.Katz的“使用这样语言注释万维网”,RIAO 97的会议记录,在互联网中的计算机辅助信息搜索,McGill大学,魁北克省,加拿大,1997年6月25-27日,Vol.1,第136-155页(在下文中称为“Katz出版物”)。如在Katz出版物中所述,产生主-动-宾表达式,并保持内部结构,使得在检索过程中,可以包含较小的语法变化。
因为这些语法包括具有不显著的改进,或者在当前可用的自然语言处理系统中不实际,因此本领域已经不尝试直接改进查询的初始结查的精度和查全率,以改进用户接口,即,特别地通过用于根据与用户的交互作用细化查询的方法,例如用户响应检索结果通过“查找相似”,以及通过用于以适当的群集使包括显示结果的查询结果可视化的方法。
尽管这些改进在它们各自方面中是有用的,但是通过这些改进可获得的增加的精度仍然令人失望的低,并且不足以大大减小用户在关键字搜索中受到的挫折。更具体来说,用户仍然需要手动过滤相对大的文档组,其中仅有少量具有相关的响应。
发明概要
根据一个示意实施例,本发明提供一种用于确定两个文本之间的相似性的方法和装置。第一逻辑形式组是为第一文本输入获得的,并且第二逻辑形式组是为第二文本输入获得的。第一和第二逻辑形式组被比较,并且第一和第二文本输入之间的相似性是根据该比较来确定的。
广义上说,该处理涉及乘法、比较和分别与第一和第二文本输入相关的匹配逻辑形式的选择性加权。一个逻辑形式是一个有向图,其中表示任何任意大小的文本的字词由标注的相互关系所连接。具体来说,逻辑形式描绘结构关系(即,语法和语义关系),特别是,在输入串中的重要字之间的参数和/或附加关系。该描绘可以有各种具体形式,例如,逻辑形式图或者任何子图,或者例如包括,一个逻辑形式三成分组的列表,每个三成分组表示为“字-关系-字”的形式,其中这些形式中的任何一个可以用于本发明。
根据本发明的一个方面,每个文本输入受到自然语言处理,说明的语形、语法和语义,以最终产生对于在每个文本输入中的每个句子的适当逻辑形式。然后用于第一文本输入的逻辑形式组与相关与第二文本输入的逻辑形式组相比较,以确定逻辑形式之间的匹配。
如在此所用的,“相似性”意味着根据语义和语法结构或者词语含义获得关于两个文本输入之间的接近程度的度量。
根据一个示例性的应用,信息检索系统部分地基于自然语言处理。语义信息被用于获得关于被搜索文档或查询,或者这两者的更多信息,以获得更好的性能和精度。通常,这种系统使用自然语言处理技术以尝试把第一文本输入(例如查询)的语义内容与第二文本输入(例如被搜索的文档)的语义内容相匹配。这种系统代表在本技术中的重要发展,特别是对于在信息检索处理中获得增加的精度。
特别地,输入查询被转换为一个或更多的逻辑形式,并且由搜索引擎所检索的文档还被转换为逻辑形式。用于查询的逻辑形式与用于文档的逻辑形式相比较。其逻辑形式精确匹配对应于查询的逻辑形式的文档被排序并提供给用户。
根据本发明的另一个方面,与上述匹配处理相关的紧迫性被通过利用解释逻辑形式来降低。例如,在信息检索应用中,可能需要减少过滤处理中的紧迫性,以避免抛弃相关文档。例如,有时查询(或关键字搜索)正确地包括在查全组中的文档被不正确的抛弃。当来自查询的关键字出现在该文档中,但是不在由为该查询产生的逻辑形式所要求的精确的语法/语义关系中时,可能出现这种情况。这些不正确的被抛弃文档可以用下例说明。应当注意,该实例讨论逻辑形式的三成分组,但是其它逻辑形式的子图也可以被使用。假设该查询如下:
蜘蛛是如何吃掉它的猎物的?
对该查询产生的逻辑形式三成分组将是:
吃;Dsub;蜘蛛
吃;Dobj;猎物
相关文档可以包括句子“许多蜘蛛吃掉它们的猎物…”。对该句子产生的逻辑形式三成分组将是如下:
吃掉;Dsub;蜘蛛
吃掉;Dobj;猎物
由于没有对应于该文档的逻辑形式三成分组精确地匹配任何对应于该查询的逻辑形式三成分组,因此即使该文档可能是高度相关的,它也被抛弃。
另外,需要抛弃要提供给用户的无关文档。例如,逻辑形式的特定类别可能在文档中以高的频度出现。这种逻辑形式还常常出现在查询中。例如,假设该查询是:
告诉我关于狗的知识。
对该查询产生的一个逻辑形式三成分组将是:
告诉;Dobj;我
这将出现在许多与狗无关的文档中。因此,这种无关文档被提供给用户。
因此,根据本发明的一个方面,一个或两个逻辑形式的组(对于一个或两个文本输入)被改变,例如通过解释该逻辑形式组或者抑制特定的逻辑形式。逻辑形式的改进组被用于该匹配处理中。
在所示的信息检索系统中,系统响应一个查询在从文档存储器中检索的文档组中过滤文档。系统根据所选的一个查询和在文档组中的文档获得第一组逻辑形式。系统根据另一个查询和在文档组中的文档获得第二组逻辑形式。然后,系统使用自然语言处理技术来修改第一组逻辑形式以获得修改组的逻辑形式。系统根据修改组的逻辑形式与第二组逻辑形式之间的预定关系在文档组中过滤文档。
根据本发明的一个方面,自然语言处理技术被用于获得表示第一组逻辑形式的释义的第一组释义逻辑形式。根据本发明另一个方面,该自然语言处理技术抑制预定类型的逻辑形式,以获得第一抑制组逻辑形式。然后根据该组示意逻辑形式和/或该抑制组逻辑形式进行过滤。
在一个实施例中,该查询被接收并且根据该查询计算查询的逻辑形式。进行该查询,并且根据该查询检索文档。从为每个检索的文档存储的数据计算或取得逻辑形式。高频率的查询逻辑形式被抑制,并且根据该查询逻辑形式计算释义逻辑形式。释义逻辑形式被与该文档逻辑形式相匹配。
附图简述
图1示出根据本发明的信息检索系统5的非常高级别的方框图;
图2示出图1中所示类型的利用本发明的思想的信息检索系统200的高级别实施例。
图3示出计算机系统300的方框图,特别是一个包含在图2中所示的系统200中的客户个人计算机;
图4示出在图3所示的计算机300中执行的应用程序400的非常高级别的方框图;
图5A-5D示出变化复杂度的英文句子的不同相应实例以及其相应逻辑形式元素;
图6示出用于图6A和6B的正确排列;
图6A和6B集中地示出本发明检索处理600的流程图;
图7示出在处理600中执行的NLP例程700的流程图;
图8A示出匹配逻辑形式三成分组加权表800;
图8B图形示出逻辑形式三成分组的比较;以及根据本发明思想的文档计分、排序和选择处理,这出现在方框650、660、665和670中,所有都在图6A和6B中示出,用示例的查询和示例的三个统计搜索文档的示例组;
图9A-9C分别示出包含本发明的思想的信息检索系统的三个不同实施例;
图9D示出9C中所示的远程计算机(服务器)930的另一种变换形式,其用于实现本发明的另一个不同实施例;
图10示出用于图10A和10B的正确排列;
图10A和10B集中地示出本发明的另一个实施例,其中对于每个文档的逻辑形式三成分组与为其记录的文档一同被预先计算并存储,以在后续的文档检索操作中访问;
图11示出由图10A和10B中所示的文档索引引擎1015所执行的三成分组产生处理1100 ;
图12示出用于图12A和12B的正确排列;
图12A和12B集中示出本发明检索处理1200的流程图,其在图10A和10B中所示的计算机系统300中执行;
图13A示出在三成分组产生处理1100中执行的NLP例程1300的流程图;以及
图13B示出在三成分组产生处理1200中执行的NLP例程1300的流程图。
图14为示出本发明一个实施例的功能方框图。
图15为示出根据本发明一个方面确定文档索引的功能方框图。
图16是根据本发明一个方面的检索引擎的更加具体的方框图。
图17为示出图16中所示的系统的操作的流程图。
图18为示出根据本发明一个方面的逻辑形式的自然语言处理器修改的流程图。
图19为示出根据本发明一个方面的逻辑形式的自然语言处理器修改的更加具体的方框图。
优选实施例的具体描述概述
本发明利用自然语言处理技术来产生对应于第一文本输入和第二文本输入的逻辑形式组。本发明根据逻辑形式组的比较确定第一和第二文本输入之间的相似性。根据本发明的另一个方面,一个或两个逻辑形式组被修改,例如通过获得释义或者抑制特定的逻辑形式而修改。尽管本发明考虑到用于广泛的应用中,但是在此主要针对信息搜索的情况进行描述,以仅用于解释说明的目的。
在信息检索实施例中,本发明产生对应于输入查询和对应于响应输入查询而返回的文档组的逻辑形式组。本发明还利用自然语言处理技术来修改对应于查询、文档组或这两者的逻辑形式。在一个实施例中,修改的逻辑形式被扩展到包括释义。在另一个实施例中,该修改的逻辑形式被处理,与抑制逻辑形式的预定类别,该类别在区别各种文档中被证明是无用的。通过按这种方式修改逻辑形式,本发明减少与匹配技术相关的紧迫性,因此,增加信息检索处理中的精度和查全率。
应当指出,当前讨论部分地参照具有由一个单词、语法或语义关系,以及其它单词所表示的形式的逻辑形式三成分组而进行。但是,本发明考虑到逻辑形式的其它子图也可以使用,并且都总体地在此称为逻辑形式。
在考虑如下描述之后,本领域内的专业人员将清楚地认识到本发明的思想可以容易应用于许多领域和几乎任何信息检索系统,以增加在此所用的搜索引擎的精度,而不管该引擎是否常规的统计引擎。另外,本发明还可用于从记录任何类型的大容量数据存储器,例如,存储在磁、光(例如,CD-ROM)或其它介质上的数据库中检索文本信息的精度,并且与该文本信息所在的任何特定语言,例如英语、西班牙语、德语等等无关。
请记住,图1示出利用本发明的信息检索系统5的非常高级别的方框图。系统5由跟随在处理器30之后的常规检索引擎20,例如基于关键字的统计检索引擎,所构成。如下文所述,处理器30利用本发明的自然语言处理技术来过滤由引擎20所产生的重新排序文档,以产生一个比其它情况更加与用户提供的查询相关的检索文档的有续组。
更具体来说,在操作中,用户向系统5提供一个搜索查询。该查询应当用纯文本14(通常称为“文字”),以通过自然语言处理获得其语义内容的全部优点,因此提供比单独与引擎20相连更高的精度。系统5把该查询提供给引擎20和处理器30。响应该查询,引擎20搜索存储文档的数据集10,以从中产生一检索文档组。然后,由线25所表示的这组文档(在此还被称为“输出文档组”)被作为输入提供给处理器30。如下文中具体描述的那样,在处理器30中,在该组中的每个文档受到自然语言处理,示例的语形、语法和逻辑形式,以对该文档中的每个句子产生逻辑形式。每个对于句子的逻辑形式编码例如在该句子中的短语内的单词之间的语义关系、特定参数和相邻结构。处理器30以相同方式分析该查询,以产生一组相应的逻辑形式。然后,处理器30把用于该查询的形式组与在该组中的每个文档相关连的逻辑形式组相比较,以确定在查询组中的逻辑形式与对于每个文档的逻辑形式之间的任何匹配。不产生匹配的文档被从进一步的考虑中取消。包含至少一个与该查询逻辑形式相匹配的逻辑形式的每个剩余的文档被保留并且由处理器30进行探试性的赋值。如下文所述,每个不同的关系类型,即,例如可以出现在逻辑形式三成分组中的深主语、深宾语、运算符等等被分配给预定的权重。每个这种文档的总权重(即,分值)例如是所有唯一匹配的三成分组的权重的总和,即,重复的匹配三成分组被忽略。最后,处理器30把剩余文档按照其分值排序提供给用户,一般按照预定数字的组,例如5组或10组,以具有最高的分值的那些文档开始。
因为系统5是非常通用的并且可以是适用于广泛的不同应用中,然后,为了简化如下讨论,我们将在一个示例中讨论本发明的使用。该情况是一个信息检索系统,其采用基于统计互联网搜索引擎的常规关键字来检索被从万维网编索引为与一个数据集的英语文档的存储记录。如下文所述,每个这种记录通常包含用于相应文档的预定信息。对于其它搜索引擎,该记录相以包含整个文档本身。尽管如下讨论针对使用常规互联网搜索引擎的情况,其检索关于包括具有一个网址的相应文档的特定信息的记录,在该网址处可以找到该文档,通常来说,即使利用该地址的中间处理通常被用于实际从网络中访问该文档,但是由该引擎所检索的最终项目实际上是文档。在考虑如下描述之后,本领域内的专业人员将容易理解本发明如何容易地适用任何其它信息检索应用中。
图2示出用于互联网搜索引擎情况中的本发明的一个特定实施例的高级别方框图。本发明将在该特定实施例的情况中具体地进行原理上的讨论。如图所示,系统200包含计算机系统300,例如一个客户个人计算机(PC),其通过网络连接器205、通过网络210(在此为互联网,尽管还可以使用例如内部网这样的其它网络)、以及网络连接器215连接到服务器220。该服务器一般包含互联网搜索引擎225所在的计算机222,具体来说,例如ALTA VISTA搜索引擎(ALTA VISTA是麻萨诸塞州的梅纳德市的数字设备公司的注册商标),以及连接到大容量数据存储器227,具体来说是一个记录由检索引擎编索引的文档记录的数据集,并且可以通过互联网上的万维网访问。每个这种记录一般包含:(a)一个网址(通常称为统一资源定位符--URL),在该网址处可以由网络浏览器访问相应文档;(b)出现在该文档中的预定包含文字,在特定引擎中伴随有与该文档中其它包含文字相关的这种文字;(c)该文档的短摘要,通常只有几行,或者该文档的开头几行;以及可能的(d)在其超文本标识语言(HTML)描述区域中提供的该文档的描述。
位于计算机300中的用户例如通过在该系统中执行的相关的网络浏览器(例如基于可从微软公司获得的“Internet Explorer”版本4.0浏览器,并且适当地被修改为包含本发明的思想)建立到服务器220的互联网连接,特别地建立到在其中执行的搜索引擎222的连接。此后,用户向该浏览器输入一个查询,在此由输入线201所表示,反过来经过系统300和通过连接到服务器220的互联网连接向搜索引擎225发送该查询。然后,搜索引擎在存储于数据集227中的文档中处理该查询,以产生对文档一个检索记录的组,该引擎确定与该查询相关。因此,作为一种引擎225实际检索文档以形成用于在数据存储器227中存储的文档记录的方法,以及引擎所承担的选择任何这种所存储文档记录的实际分析方法与本发明无关,我们将不更加具体地讨论这些方面。只需要说明引擎225响应该查询通过互联网连接把一组检索的文档记录返回到网络浏览器420就足够了。在引擎225检索文档和/或在此之后,浏览器420同时分析该查询以产生其相应的逻辑形式三成分组。一旦该搜索引擎完成其查询后,并且已经检索一组文档记录和把该组提供给浏览器,相应的文档(即,形成输出文档组)被浏览器从相关联的网络服务器访问(相关联的数据集总体形成一个所存储文档的“存储库”;这种存储库可以是单独的数据集,例如基于数据检索应用中的自含CD-ROM)。然后该浏览器分析一个访问的文档(即,在输出文档组中),以对每个这种文档形成逻辑形式三成分组的相应组。此后,如下文中具体描述的那样,浏览器420基于查询和检索文档之间的逻辑形式三成分组对具有这种匹配的每个文档记分并且把这些文档提供给用户,如线203所示,按照分值的降序排列,一般以具有最高排行的预定小数目的文档分组,如果用户还通过浏览器选择,则随后接着这样的组等等,直到用户已经检查如此提供的足够数目的文档。尽管图2示出本发明利用网络连接来从远程服务器获得文档记录和文档,但是本发明不限于此。如下文中结合图9A具体描述那样,在该检索应用程序和本发明都执行于通用计算机上,即,局域PC,并且例如存储在CD-ROM或其它适当介质中的相应数据集位于该计算机中并在其中访问的情况下,这种网络连接在检索应用中是不必要的。
图3和相关的讨论用于提供一个关于可以应用本发明的适当计算机环境的简短的一般描述。尽管不是必要的,但是本发明将至少部分地在由个人计算机所执行的计算机可执行指令(例如程序模块)的一般环境中描述。通常,计算机模块包括执行特定任务或采用特定的摘要数据类型的例程、对象、部件、数据结构,等等。另外,本领域内的专业人员将看出本发明可以用其它计算机系统结构实现,包括手持装置、多处理器系统、基于微处理器的或可编程的用户电子装置、网络PC、微型计算机、主机,等等。本发明还可以应用于分布计算环境,其中任务由通过通信网络相连接的远程处理设备所执行。在分布计算环境中,程序模块可以位于局域和远程存储设备中。
参照图3,用于实现本发明的典型系统包括处于常规个人计算机320形式的通用计算设备,其中包括处理单元321(其可以包括一个或多个处理器)、系统存储器322、和连接多个系统部件的系统总线323,包括把系统存储器连接到处理单元321。系统总线323可以是如下几种类型的总线结构中的任何一种,该总线结构包括存储器总线或存储控制器、外围总线、和使用任何总线构架的局部总线。系统存储器包括只读存储器(ROM)324和随机存取存储器(RAM)325。基本输入/输出系统326(BIOS)存储在ROM 324中,其中包括有助于在个人计算机320中的元件之间传输信息的基本例程,例如在启动过程中。个人计算机320还包括用于读写硬盘(未示出)的硬盘驱动器327、用于读写活动磁盘329的磁盘驱动器328、以及用于读写象CD ROM或其它光介质这样的活动光盘331的光盘驱动器330。硬盘驱动器327、磁盘驱动器328、和光盘驱动器330分别由硬盘驱动接口332、磁盘驱动接口333、和光盘驱动接口334连接到系统总线323。驱动器和相关的计算机可读介质提供计算机可读指令、数据结构、程序模块和用于个人计算机320的其它数据的非易失性存储。尽管在此所述的典型环境采用硬盘、活动磁盘329和活动光盘331,但是本领域内的专业人员应当知道还可以在该典型操作环境中采用存储可由计算机所访问的数据的其它类型的计算机可读介质,例如磁带、快速存储卡、数字视频光盘、贝努里盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM),等等。
多个程序模块可以存储在硬盘、磁盘329、光盘331、ROM 324或RAM 325,该程序模块包括操作系统335、一个或多个应用程序336、其它程序模块337、和程序数据338。用户可以通过象键盘340和打印设备342这样的输入设备把命令的信息输入到个人计算机320中。其它输入设备(未示出)可以包括话筒、游戏杆、游戏板、圆盘式卫星电视天线、扫描仪,等等。这些和其它输入设备通常通过耦合到系统总线的串行端口346连接到处理单元321,但是可以通过象并口、游戏端口、或者通用串行总线(USB)这样的其它接口进行连接。监视器347或其它类型的显示设备还通过象视频适配器348这样的接口连接到系统总线323。除了监视器347之外,个人计算机一般还包括其它外围输出设备(未示出),例如扩音器和打印机(未示出)。
个人计算机320还工作于采用逻辑连接到一个或多个远程计算机(例如远程计算机349)的连网环境中。远程计算机349可以是另一个个人计算机、服务器、路由器、网络PC、对等设备或者其它网络节点,并且一般包括上述与个人计算机相关的许多或所有部件,尽管在此仅有存储设备350在图1中示出。在图1中所示的逻辑连接包括局域网(LAN)351和广域网(WAN)352。这种网络环境在办公室、企业计算机网络内部网和互联网中是常见的。
当用于LAN网络环境中时,个人计算机320通过网络接口或适配器353连接到局域网351。当用于WAN网络环境中时,个人计算机320一般包括调制解调器354或用于通过象互联网这样的广域网352建立通信的其它装置。内置或外置的调制解调器354通过串行端口346连接到系统总线323。在网络环境中,与个人计算机320或其部分相关的程序模块可以被存储在远程存储设备中。应当知道在此所示的网络连接是示例性的,并且可以采用在计算机之间建立通信链路的其它装置。
图4示出执行于图3所示的计算机300内的应用程序400的非常高级别的方框图。如图4中所示,这些与本发明相关的程序包括实现本发明的网络浏览器420,其中包括检索处理600(将在下文中结合图6A、6B具体讨论)。假设在网络浏览器和例如用户选择的统计搜索引擎(例如,ALTA VISTA搜索引擎)之间建立互联网连接,然后用户提供具有纯文本(“文字的”)搜索查询的处理600,如图4中所示的线422所示。如线426所示,该处理通过网络浏览器把该查询提供给搜索引擎。另外,尽管没有具体示出,但是处理600还在内部分析该查询,以产生其相应地逻辑形式三成分组,然后把其局部地存储在计算机300中。响应该查询,搜索引擎把一组统计地检索的文档记录提供给处理600,如线432所示。如上文所述,每个记录包括一个可以访问该文档的网址,特别是URL,以及由该文档所在的远程网络服务器所要求的适当命令,其足以通过互联网下载包含该文档的计算机文件。一旦处理600接收所有记录,则该处理通过网络浏览器420发送由线436所示的适当命令,以访问并下载所有由该记录所指定的文档(即,形成输出文档组)。然后这些文档被从它们相应的网络服务器按次序地访问,并下载到网络浏览器420和特别地处理600,如线442所示。一旦这些文档被下载后,处理600分析每个文档,以产生并局部地存储其相应的逻辑形式三成分组。然后,通过把用于该查询的逻辑形式三成分组与用于每个文档的逻辑形式三成分组相比较,处理600对包含至少一个匹配的逻辑形式三成分组的每个文档评分,然后根据它们的分值排列这些特定的文档,最后指示网络浏览器400按照文档分值的降序排列一组接一组地把这些特定文档(如线446所示)显示给用户。浏览器400在显示器380(参见图3)的屏幕上产生一个适当的选择按键,用户通过适当地用鼠标“敲击”可以进行选择,以按需要显示连续的文档组。
为了完整地理解逻辑形式在确定、保留和编码语义信息中的作用,在这一点上,我们将离开对实现本发明的处理的讨论,以说明和描述用于本发明中的逻辑形式和逻辑形式三成分组,并提供它们产生方式的概述。
总体上说,逻辑形式是一个有向图,其中表示任意尺寸的文本的字由标注的关系相连接。一个逻辑形式描述在短语中重要字之间的语义关系,其中可以包括该字的上义词和/或同义词。如图5A-5D中所示,一个逻辑形式可以取多个不同形式中的任何一个,例如逻辑形式图或它的任何子图,例如一个逻辑形式三成分组的列表,每个三成分组表示为“字-关系-字”的形式。如具体所示,尽管本发明产生并比较逻辑形式三成分组,但是本发明可以容易地利用任何其它形式,例如上述的那些形式,其可以描述在此所用的字之间的语义关系,所有这些都包含在术语“逻辑形式”中。
由于逻辑形式三成分组和它们的构成可以最好通过一系列增加复杂度的句子的实例来得到理解,因此首先考虑图5A。该图示出用于说明输入字符串510的逻辑形式图515和逻辑形式三成分组525,该字符串具体来说是句子“章鱼有三个心脏。(The octopus has three hearts.)”。
通常,在一个实施例中,为了产生用于所示输入字符串(例如用于输入字符串510)的逻辑形式三成分组,该字符串首先被分析为其构成字。然后,利用预定记录(不要与由搜索引擎所采用的文档记录相混淆),在用于每个这种字的所存储词典中,通过预定的语法规则,用于这些构成字的相应记录被合并为较大的结构或进行分析,然后再次通过预定语法规则合并形成更大的结构,例如一个语法分析树。然后从该分析树建立逻辑形式组。特定规则是否可应用于成分的特定组是部分地由是否存在特定的相应分布和它们在该字记录中的数值所决定的。例如,本发明使用约具有165,000个词条的词典。该词典包括确定在输入字符串中的字所固有的语法和语义属性的各种字的类型,利如,介词、连词、动词、名词、运算符和数量词,使得可以构成一个分析树。显然,可以预先计算逻辑形式(对于这种情况,或者任何能够描述语义关系的其它表示,例如在逻辑形式中的逻辑形式三成分组或逻辑形式图),而相应文档被编索引,并存储在用于该文档的记录中,用于后续的访问和使用,而不是以后在该文档被检索时计算。使用这种预先计算和存储,如在下文中结合图10-13B具体讨论的另一个实施例中出现的,明显和有利地减少自然语言处理量,以及根据本发明处理任何检索文档所需的与其相关联的执行时间。
具体来说,在一个所示实施例中,首先利用在该词典中对于每个构成词的预定记录对一个输入字符串(例如图5A中所示的句子510)进行语形分析,以产生所谓的“字根”(或者“基本”)形式。字根形式被使用以使不同字形式(例如,动词时态和单-复数名词变化)标准化为共同的语形形式,以由分析器所使用。一旦产生字根形式,输入字符串被该分析器利用在该构成字的记录中的语法规则和分布进行语法分析,以产生其语法分析树。该树示出输入字符串的结构,具体来说是在该输入字符串中的每个字或短语(例如名词短语“章鱼”)、其相应语法功能的分类(例如用于名词短语的NP)、以及到其中每个语法相关的字或词的链接。对于所示句子510,相关的语法分析树是:
表1-对于“章鱼有三个心脏。(The octopus has three hearts.)”的语法分析树
位于树的上左角的一个开始节点确定被分析的输入字符串的类型。句子类型包括对于说明句的“DECL”(在此是该类型)、对于祈使句的“IMPR”和对于疑问句的“QUES”。垂直显示于该起始节点的右下方的是第一级分析。该分析具有一个由星号所示的头节点,一般是主动词(在此为字“有”),前修饰词(在此为名词短语“章鱼”),后面跟着一个后修饰词(名词短语“三个心脏”)。树的每个叶子包括一个词条或标点符号。在此,作为标记,“NP”表示名词短语,并且“CHAR”表示标点符号。
然后利用不同的规则组对语法分析树进行进一步的处理,以产生一个逻辑形式图,例如用于输入字符串510的图515。产生一个逻辑形式图的处理涉及从输入字符串的语法分析中提取隐含结构;逻辑形式图包括那些被确定为具有语义关系的字和该关系的功能特性。用于分类的不同语义关系的“深(deep)”格或功能角色包括:
Dsub--深主语
Dind--深直接宾语
Dobj--深宾语
Dnom--深谓语主格
Dcmp--深宾语补足语
表2
为了识别在输入字符串中的语义关系,在用于该字符串的语法分析树中的每个节点被检验。除了上述关系之外,还使用其它语义成分,例如如下:
PRED--谓语
PTCL--在两部分动词中的虚词
Ops--运算符,例如数字
Nadj--修饰名词的形容词
Dadj--谓语形容词
PROPS--作为从句的其它未指定的修饰词
MODS--不是从句的其它未指定的修饰词
表3
其它语义标签也被定义,例如:
TmeAt--时间
LocAt--地点
表4
在任何情况下,这种对输入字符串510分析的结果是逻辑形式图515。在输入字符串中表示其中的语义关系的那些字(例如,“章鱼”和“有”)表示用其中被确定为连接属性(例如,Dsub)的关系相互连接。该图,典型地由用于输入字符串510的图515所代表,获得参数的结构和用于每个输入字符串的副词。在其它情况中,逻辑形式分析把象介词和冠词这样的功能词映射到在该图中所描绘的特征或结构关系中。在一个实施例中,逻辑形式分析还解决首语重复法,即,定义例如代词和共同引用名词短语之间的正确的先行关系;以及为省略号检测和描绘适当的功能关系。其它处理可以在尝试解决模棱两可和/或其它语言特异性过程中出现。然后,相应的逻辑形式三成分组简单地按照常规方式从逻辑形式图中读出,并且作为一个组而存储。每个三成分组包含在该图中示出的由其中的语义关系所连接的图的两个节点字。为了解释输入字符串510,逻辑形式三成分组525从处理图515而得。在此,逻辑形式三成分组525包含三个独立的三成分组,其集中地转换在输入字符串510中的内在语义信息。
类似地,如图5B-5D中所示,对于输入字符串530、550和570,具体来说是示例句子“章鱼有三个心脏和两个肺。(The octopus has threehearts and two lungs.)”、“章鱼有三个心脏并且它能够游泳。(The octopushas three hearts and it can swim.)”、以及“我喜欢鲨鱼翅汤碗。(I like sharkfin soup bowls.)”,分别得出逻辑形式图535、555和575,以及逻辑形式三成分组540、560和580。
在此有三个逻辑形式结构,除了包含常规的“图路径”的常规方式之外,对其需要附加的自然源处理来正确地产生所有逻辑形式三成分组,其中逻辑形式三成分组从逻辑形式图中产生。在协调的情况下,如在示例句子中“章鱼具有三个心脏和两个肺”,即,输入字符串530,对一个字、其语义关系、以及协调成分的每个数值产生一个逻辑形式三成分组。根据一个“特定的”图路径,我们发现在图540中具有两个逻辑形式三成分组“有-Dobj-心脏”以及“有-Dobi-肺”。仅使用一个常规的图路径,我们将仅仅获得一个逻辑形式三成分组“有-Dobj-和”。类似地,在一个成分具有引用(Refs)的情况下,如在示例句子“章鱼具有三个心脏并且它能够游泳”中,即,输入字符串550,除了由常规图路径所产生的三成分组之外,我们对一个字、其语义关系、以及引用属性的每个数值产生一个逻辑形式三成分组。根据该特定的图路径,我们发现在三成分组560中除了常规的逻辑形式三成分组“游泳-Dsub-它”之外还有逻辑形式三成分组“游泳-Dsub-章鱼”。最后,在一个成分具有名词修饰词的情况中,如在示例句子“我喜欢鲨鱼翅汤碗”中,即,输入字符串570,产生其它逻辑形式三成分组来表示该名词复合词的可能内部结构。常规图路径产生逻辑形式三成分组“碗-Mods-鲨鱼”、“碗-Mods-翅”和“碗-Mods-汤”,其反映可能的内部结构[[鲨鱼][翅][汤]碗]。在该特定的图路径中,我们产生附加的逻辑形式三成分组来分别反映如下可能的内部结构[[鲨鱼翅][汤]碗]和[[鲨鱼][翅汤]碗]和[[鲨鱼[翅]汤]碗]:“翅-Mods-鲨鱼”、“汤-Mods-翅”、以及“汤-Mods-鲨鱼”。
因为该语形、语法、和逻辑形式处理的具体细节与本发明无关,我们将省略其任何进一步的具体描述。但是,为了在这一方面进一步具体描述,读者请参照共同未决的美国专利申请“用于从语法树计算语义逻辑形式的方法和系统”,在1996年6月28日申请,并分配由序列号08/674,610,以及特别是“利用文本的语义表示的信息检索”,在1997年3月7日申请,并且分配由序列号08/886,814;这两项专利都被转让给本受让人,并且包含于此以共参考。
通过该逻辑形式及其构成的概述,我们现在返回到讨论实现本发明的处理。如在图2、3和4中所示的本发明的具体实施例中所用,在检索处理600中利用的本发明的流程图集中地在图6A和6B中示出;对这些图的的正确排列在图6中示出。除了虚线框225中所示的操作之外,在这些图中所示的其它操作由计算机系统所执行,例如,客户计算机300(参见图2和3),并且该计算机系统特别是在网络浏览器420中的。为了便于理解,在如下讨论中,读者应当同时参照图2、3和6A-6B。
在进入处理600中时,执行首先进入到方框605。当执行时,该方框提示用户通过网络浏览器420输入一个纯文本(文字)查询。该查询可以按照单个问题(例如,“在巴厘岛是否有空调旅馆?(Are there any air-conditioned hotels in Bali?)”)或者单个句子(例如,“给我一些关于在7月份中于西雅图举行的所有焰火表演的联系信息。(Give me contactinformation for all fireworks held in Seattle during the month of July.)”)或者句子片断(例如,“在厄瓜多尔的服装(Clothes in Ecuador)”)的形式。一旦获得这些查询,执行通过路径607分离并进行到方框610,以及通过路径643到方框645。当执行方框645时,激活自然语言处理例程700来分析该查询并且把其局部地存储在相应的逻辑形式三成分组中。当执行方框610时,从网络浏览器420通过互联网连接把该纯文本查询发送到(如虚线615所示)远程搜索引擎,例如位于服务器220中的引擎225。在这一点上,由搜索引擎执行方框625来响应该查询检索一组文档记录。一旦形成该组时,如虚线630所示,由远程服务器把该组发送回计算机系统300,特别是发送到在其中执行的网络浏览器420。然后,执行方框635来接收该组记录,然后对每个记录:从该记录中提取URL,访问在该URL处的网址,并且从中下载包含对应于该记录的文档的相关文件。一旦所有文件被下载后,执行方框640。对于每个这种文档,该方框首先从该文档提取所有文本,包括处于与该文档相关的HTML(超文本标识语言)标识中的任何文本。然后,为了便于在一个时刻对单个句子操作的自然语言处理,通过常规的句子分段器,对于每个文档的文本被分为文本文件,其中每个句子(或问题)占用在该文件中的一个独立行。然后,对于在该文档中的每行文本,方框640重复激活自然语言处理例程700(下面结合图7具体讨论),以分析这些文档的每一个,并且构成和局部地存储用于在该文档中每行文本的相应的逻辑形式三成分组。尽管在方框645中的操作已经被讨论,它基本上与方框610、635和640的操作并行地执行,但是根据实际应用的考虑,在前一方框中的操作可以顺序地在方框610、635和640中的操作之前或之后执行。另外,如在下面结合图10-13B讨论的本发明的另一个实施例的情况中,用于每个文档的逻辑形式三成分组可以被预先计算和存储用于后续的访问,并且用于文档检索过程中,在该情况中,这些三成分组仅仅被访问而不在文档检索过程中计算。在这种情况下,该三成分组可以按照一些方式存储,作为所存储文档的属性,或者作为在用于该文档的记录中或者在包含该文档的数据集中的独立条目。
在任何情况下并且返回到图6A和6B中所示的处理600,一旦逻辑形式三成分组的组已经被构成并且为查询和在输入文档组中的每个检索文档所完全存储,则执行方框650。该方框把在查询中的每个逻辑形式三成分组与用于每个检索文档的逻辑形式三成分组相比较,以确定在该查询中的任何三成分组与在任何文档中的任何三成分组之间的匹配。匹配的一个示例形式被定义为在节点字以及这些三成分组的关系类型中的两个三成分组之间的一致匹配。特别地,对于一个示例逻辑形式三成分组的对:“字1a--关系1--字2a”和“字1b--关系1--字2b”,仅仅当节点字字1a和字1b互为相同,节点字字2a和字2b互为相同,以及关系1和关系2互为相同时,则出现匹配。除非一个三成分组的三个元素一致地匹配另一个三成分组的相应元素,否则这两个三成分组不匹配。一旦方框650完成后,执行方框655以抛弃所有不出现一个匹配的三成分组(即,没有匹配在该查询中的任何三成分组的三成分组)的所有检索文档。然后,执行方框660。通过方框660,根据每个这些文本所存在的匹配三成分组的相关类型及其权重,对所有剩余文档分配一个分值。特别地,可以在一个逻辑形式中出现的每个不同类型的关系被分配一个相应的权重,例如图8A中的表800所示。例如,如图所示,示例的关系Dobj、Dsub、Ops和Nadj可以被分别分配预定的固定数字权重100、75、10和10。该权重反映属于该关系的相对重要性,表示查询与文档之间的正确语义匹配。这些权重的实际数值通常被根据经验而确定。如下文中对于每个剩余文档结合图8B具体描述,该分值是一个预定的函数,在此示出的是其唯一匹配的三成分组(忽略所有成分的匹配三成分组)的权重的数字和。一旦该文档也被加权,则执行方框665按照分值的降序排列该文档。最后,执行方框670以按照排列次序显示该文档,一般按照表现出最高分值的小的预定文档组显示,一般为5个或10个。然后,用户例如可以通过适当地在由网络浏览器420所显示的相应按键上“敲击”鼠标而使计算机系统(客户个人计算机)300显示下一组排序文档,如此等等,直到用户已经按次序充分地检验所有排序文档,在这一点,处理600结束。
图7示出自然语言处理例程700的流程图。给定单行输入文本--它是一个查询、在文档中的一个句子、或者文本片断,该例程构成相应的逻辑形式三成分组。
特别地,在进入例程700后,首先执行方框710以处理一行输入文本,来产生一个逻辑形式图,例如图5A中所示的说明图515。该示例的处理包括语形和语法处理,以产生一个语法分析树,然后从中计算一个逻辑形式图。然后,如图7中所示,执行方框710以从该图中提取(读取)一组相应的逻辑形式三成分组。这一旦发生后,执行方框730以产生作为一个分离和区别格式文本串的每个这样的逻辑形式三成分组。最后,执行方框740以在数据集(或者数据库)中存储一系列格式化的文本串的输入文本行以及用于该行的逻辑形式三成分组的组。一旦这样的组被完整地存储,则执行从方框700退出。另外,如果代替逻辑形式三成分组,与一逻辑形式相关联的一个不同的表示(例如,逻辑形式图)要被结合本发明而使用,然后方框720和730将被容易地改变以产生作为格式化字符串的特定格式,而方框740把该代替逻辑形式三成分组的形式存储到数据集中。
为了完整地理解本发明示例性地比较和加权匹配的逻辑形式三成分组以及排序相应文档的方法,请参照图8B。该图用图形示出根据本发明的思想的逻辑形式三成分组比较、文档存储、排序和选择处理,它们在方框650、660、665和670中出现,所有都在图6A和6B中示出,用于一个示例的查询和一个示例的三个检索文档的组。假设为了说明的目的,用户把纯文本查询810提供给本发明的检索系统,该查询是“章鱼有多少个心脏?”。并且,假设响应该查询,通过搜索引擎,最后检索出三个文档820。在这些文档中,第一文档(表示为文档1)是包含朝鲜蓟菜心和章鱼的菜谱。第二文档(表示为文档2)是关于章鱼的文章。第三文档(表示为文档3)是关于鹿的文章。这三篇文档和查询被转换为其成分的逻辑形式三成分组,其处理通常由“NLP”(自然语言处理)所表示。对于该查询和文档1、文档2和文档3所得的逻辑形式三成分组被分别在方框830、840、850和860中给出。
一旦这些三成分组被如此确定后,然后如虚线845、855和865所表示,用于该查询的逻辑形式三成分组被逐一地与分别用于文档1、文档2和文档3的逻辑形式三成分组相比较,以确定是否有任何文档包含与在该查询中的任何逻辑形式三成分组相匹配的任何三成分组。那些没有包含这种匹配的三成分组的文档(如文档1的情况)被抛弃,因此不作进一步的考虑。另一方面,文档2和文档3包含匹配的三成分组。特别是,文档2包含三个这样的三成分组:“有-Dsub-章鱼”、示例性地与一个句子相关联的“有-Dsub-心脏”以及示例性地与另一个句子相关联的“有-Dsub-章鱼”(这些句子没有具体示出)。对于一个文档的分值是在该文档中所有唯一匹配的三成分组的权重的数字和。对于任何文档的所有重复匹配的三成分组被忽略。在一个三成分组中出现的关系的不同类型的相对权重的按照从最大到最小权重的降序排列的示例性排序为:首先,动词-宾语组合(Dobj);动词-主语组合(Dsub);介词和运算符(例如,Ops),以及最后的修饰词(例如,Nadj)。这种加权方案在图8A中所示的三成分组加权表800中给出。为了简化该图,表800没有包括所有在逻辑形式三成分组中出现的不同关系,但是仅仅包括那些与图8B中所示的三成分组有关的关系。通过这种尺度,在其分值有贡献的每个文档中的特定三成分组被用一个钓号(“√”)表示。当然,除了我们已经选择的尺度之外,还可以采用其它用于对文档计分的预定尺度,例如,用权重相乘取代权重相加以提供增强的文档选择性(区别性),或者按照不同的预定方式对权重求和,例如包括对相同类型的匹配倍乘和/或排除除了上述三成分组之外的其它三成分组的权重。另外,对于任何文档,也可以按照一些方式来考虑该分值:在该文档中的三成分组本身中的节点字,或者在该文档中的这些节点字的语义内容;或者作为在该文档中的一个总体的特定逻辑形式(或其释义)和/或特定逻辑形式三成分组的频率;以及该文档的长度。
因此,给定上述给出的示例性评分尺度以及在图8A中的表800内所列的权重,用于文档2的分值是175,并且是通过把用于与在该文档中第一句子相关联的开头两个三成分组的权重(即,100和75)相合并而形成的,并且在方框850中示出。在该文档中并与其第二句子相关联的,并且在该方框中列出已经匹配在该文档中存在的其它三成分组中的一个的第三个三成分组被忽略。类似地,用于文档3的分值是100,并且形成用于完全匹配如方框860中所列出的在该特定文档内的三成分组的权重,在此为100。根据该分值,文档2排在文档3的前面,并且这些文档按照该次序显示给用户。在任何两个文档具有相同的分值的这种情况下(没有在此出现),则这些文档被按照由常规的统计检索引擎所提供的相同次序排列,并且按照该次序显示给用户。
显然,在本领域内的专业人员容易理解用于实现本发明的处理的各种部分可以驻留在单个计算机或者分布在集体形成一个信息检索系统的不同计算机中。在这一点上,图9A-9C分别示出包含本发明的思想的三个信息检索系统的不同实施例。
一个这样的实施例在图9A中示出,其中所有处理都驻留在单个计算机910中,例如一个个人计算机。在这种情况下,计算机910包含一个搜索引擎,并且通过该引擎响应用户提供的纯文本查询对输入文档编索引并且搜索一个数据集(或者局部地位于象CD-ROM或者其它存储介质上,或者可访问到该计算机),以最终产生一组形成输出文档组的检索文档。该计算机还包含本发明的处理,以便于:分析该查询和每个这样的文档以产生其相应的逻辑形式三成分组的组;然后把三成分组的组相比较并且按照上述方式选择、评分和排列该文档,并且最后把该结果提供给本地用户,例如,位于此处或者可访问到此处的用户。
一个实施例在图9B中示出,其中包含图2中所示的特定内容,其中该检索系统由网络连接到一个远程服务器的客户PC所形成。在此,客户PC 920通过网络连接925连接到远程计算机(服务器)930。位于客户PC 920处的用户输入一个纯文档查询,接着该PC通过网络连接把该查询传送到远程服务器。该客户PC还分析该查询,以产生其相应的逻辑形式三成分组的组。该服务器例如包含一个常规的统计搜索引擎,并且响应该查询随后地进行统计检索,以产生一组文档记录。然后该服务器返回该组记录,并且最终按照客户的指令或者自主地根据搜索引擎的能力或相关软件,把在一个输出文档组中的每个文档返回给该客户PC。然后该客户PC分析它所接收的每个在输出文档组中的相应文档,以产生一组逻辑形式三成分组。然后客户PC通过适当地比较该组三成分组并按照上述方式选择、评分和排序该文档来完成其处理,并且最后把结果提供给本地用户。
另一个实施例在图9C中示出。尽管该实施例采用如图9B中所示的相同物理硬件和网络连接,但是客户PC 920从本地用户接收一个纯文本查询,并且通过网络连接925把该查询发送到远程计算机(服务器)930。该服务器不仅包含常规的搜索引擎,还提供了根据本发明的自然语言处理。在这种情况下,该服务器,而不是客户PC,将适当地分析该查询以产生一个相应的逻辑形式三成分组的组。该服务器在需要时还下载在一个输入文档组中的每个检索文档,以产生相应的逻辑形式三成分组的组。然后,该服务器将适当地把用于该查询和文档的三成分组相比较,并且按照上述方式选择、评分和排列该文档。一旦该排序发生后,则服务器930将按照排列次序通过网络连接925把剩余的检索文档发送到客户PC 920以用于显示。服务器按照上述方式由用户指示按组发送这些文档,或者所有都逐一地被按组选择并显示在客户PC上。
另外,远程计算机(服务器)930不必需仅仅由提供所有上述常规检索、自然语言处理和相关处理的单个计算机所实现,而且可以是如图9D中所示的一个分布处理系统,由该服务器所进行的处理被分布在其中的各个服务器中。在此,服务器930由前端处理器940所形成,其通过连接950把信息分配给系列服务器960(包括服务器1、服务器2、…、服务器n)。每个这些服务器实现本发明处理的一个特定部分。在这一点上,服务器1可以被用于把输入文档编索引为在一个大容量数据存储器上的数据集,用于后续的检索。服务器2可以实现一个搜索引擎,例如一个常规的统计引擎,其用于响应由前端处理器940传来的用户提供给查询,从该大容量数据存储器中检索一组文档记录。这些记录将从服务器2通过前端处理器940路由到服务器n用于后续处理,例如从相应的网址或数据库下载在一个输出文档组中的每个相应文档。前端处理器940还把该查询路由到服务器n。然后,服务器n将适当地分析该查询和每个文档,产生相应地逻辑形式三成分组的组,然后适当地比较三成分组的组,并且按照上述方式选择、评分和排列该文档,并且通过前端处理器940把排列的文档返回到客户PC 920,用于在其中排序显示。当然,用于本发明的处理中的各种操作可以按照任何一种和多种其它方式静态或动态地分配在服务器960中,这取决于在其中出现的运行时间和/或其它条件。另外,服务器930可以由公知的系统复用结构所实现,其中带有可由所有其中的处理所访问共享的直接访问存储设备(DASD)(或者其它类似分布的多处理环境),该处理器中例如带有用于常规搜索引擎的数据库,和用于这样一种处理的词典,它们都存储于其中。
尽管我们已经把本发明描述为响应每个检索的文档记录下载文档,然后例如通过客户PC局部地分析该文档,以产生其相应的逻辑形式三成分组,但是这些三成分组还可以在该文档被搜索引擎编索引时产生。在这一点上,当该搜索引擎定位每个用于编索引的新文档时,例如通过使用网络爬行器(web crawler)、该引擎可以为该文档下载完整的文件,然后立即或在以后经过一个批处理过程通过分析该文档并且产生其逻辑形式三成分组来预处理该文档。为了完成该预处理,然后搜索引擎将在其数据库中存储这些三成分组,作为用于该文档的索引记录部分。然后,当该文档记录被检索时,例如响应一个搜索查询,其三成分组将被作为文档记录的部分返回到客户PC,用于比较等目的。利用在搜索引擎中预处理的文档的优点,可以有利地节省在客户PC上的大量处理时间,从而增加客户的处理量。
另外,尽管我们已经在使用基于互联网的搜索引擎的特定情况中讨论本发明,但是本发明同样可应用于:(a)任何网络可访问的搜索引擎,不管它是否基于内部网,它可通过专用或非专用网络设备进行访问;(b)用其本身存储的数据集操作的局域化搜索引擎,例如基于数据检索应用程序的CD-ROM,典型的是百科全书、年历或者其它自主式独立数据集;和/或(c)它们的任何组合。本发明还可以用于任何其它适当的应用程序中。
考虑上文所述,图10A和10B集中地示出本发明的另一个实施例,其通过文档处理产生逻辑形式三成分组,使所得的三成分组、文档记录和文档本身被集中地作为自主式独立数据集存储在公用存储介质中,例如一个或多个CD-ROM获得其它移动的大容量介质(典型的是可拆卸硬盘、磁带、或者磁光存储设备或大容量磁或电存储设备),以便于发布给最终用户。这些图的正确描绘在图10中示出。通过把检索应用程序本身和要被搜索的伴随数据集集中地置于公用介质上,得到一个独立的数据检索应用程序;从而,消除了为检索文档而网络连接到远程服务器上的需要。
如图所示,该文档基本上包括三个部件:文档编索引部件10051、复制部件10052、和用户部件10053。部件10051把用于编索引的文档组中到一个数据集中,所示的数据集1030,接着形成用于自主式文档检索应用程序的文档存储库,例如百科全书、年历、专业化的图书馆(例如,决定性法律报告人)、杂志集等等。通过快速地减少与复制CD-ROM和具有大存储容量的其它形式的介质相关的成本,本发明在把大的文档组与精确检索该组的能力一同传播给广大用户团体方面的能性价格比是吸引人的。
在任何情况中,要被编索引为数据集的输入文档被从任何数目的广大来源收集,并且被逐一地提供给计算机1010。该计算机通过存储于存储器1015中的适当软件实现文档编索引引擎,其在用于每个这种文档的数据集1030中建立一个记录,并且把信息存储到用于该文档的记录中,并且还在包含该文档本身的一个副本的数据集中建立适当存储的条目。引擎1015执行三成分组产生处理1100。要在下文中结合图11具体描述的处理被分别对被编索引的每个文档执行。在本质上,该处理基本上与上述对图6A和6B中所示的方框640描述的方式相同,该处理分析在文档中的文本短语,并且通过该分析在数据集1030中构成并存储用于该文档相应逻辑形式三成分组的组。因为由图10A和10B中所示的编索引引擎1010所执行的所有用于编索引文档的包括为其产生适当记录的其它处理都与本发明无关,所以我们将不具体说明。足以说,一旦三成分组的组通过处理1100而产生,引擎1015把该组与该文档本身的一个副本和为此产生的文档记录一同存储到数据集1030中。因此,在所有编索引操作结束时,数据集1030不仅存储每个编索引文档的完整副本和为此的记录,而且存储一组用于该文档的逻辑形式三成分组。
一旦所有所需文档被适当地编索引,然后被作为“主数据集”的数据集1030本身被通过复制部件10052所复制。在部件10052中,常规的介质复制系统1040重复地在象一个或多个CD-ROM这样的公用存储介质上写入通过线路1035提供的主数据集的内容的副本,以及通过线路1043提供的用于检索软件的适当的文件副本,包括检索处理和用户安装程序,以集中地形成独立文档检索应用程序。通过系统1040,一系列介质副本1050被产生,具有独立副本10501、10502、…、1050n。所有这些副本都相同并且包含通过线路1043提供的文档检索应用文件的一个副本(如特别对副本10501示出),以及通过线路1035提供的数据集1030的一个副本。根据数据集的尺寸和组织,每个副本可以在一个或多个独立介质上扩展,例如独立的CD-ROM。然后,该副本一般通过购买许可证的方式在用户团体中发布,如虚线1055所示。
一旦用户(例如,用户j)获得一个副本,例如CD-ROMj(还被表示为CD-ROM 1060),如用户部件10053所示,用户可以通过计算机系统1070(例如,具有与图3所示的客户PC 300基本相同的结构的PC)对存储在CD-ROMj中的数据集执行包括本发明的文档检索应用程序,以从中检索所需文档。特别地,在用户获得CD-ROMj之后,用户把该CD-ROM插入到PC 1070,并且执行存储在CD-ROM上的安装程序,以产生文档检索应用程序文件的一个副本并把其安装到存储器1075中,通常是在PC的硬盘中的一个预定目录,从而在PC上建立文档检索应用程序1085。该应用程序包含搜索引擎1090和检索处理1200。一旦安装完成并且应用程序1085被激活后,用户可以通过向该应用程序提供一个适当的纯文本查询而搜索在CD-ROMj上的数据集。响应该查询,搜索引擎从数据集检索包括用于这些文档的记录和用于每个这种文档的所存储逻辑形式三成分组的文档组。该处理非常类似于在上文中结合图6A和6B讨论的检索处理600。此后,图10A和10B中所示的处理1200把用于在该组中每个检索文档的逻辑形式三成分组(特别是为此的记录)与用于查询的三成分组相比较。根据其中匹配三成分组的出现率和它们的权重,处理1200按照上述方式对出现至少一个匹配三成分组的每个文档评分,按照分值的降序对这些文档排序,最后用具有最高排行的一小组文档记录显示给用户,一般为5-20个或更少。用户在查看这些记录后可以指示文档检索应用程序检索并显示感兴趣的任何相关文档的完整副本。一旦用户已经查看用于第一组检索文档的第一组文档记录之后,接着用户可以要求具有下一个最高排行的下一组文档记录,如此等等,直到所有检索文档记录已经被如此查看。尽管应用程序1085最初响应一个查询返回排序的文档记录,但是该应用程序还可响应该查询返回文档本身的排序副本。
图11示出由图10A和10B所示的文档编索引引擎1015所执行的三成分组产生处理1100。如上文所述,处理1100通过分析在该文档中的文本短语预处理要被编索引的文档,并且通过如此在数据集1030中为该文档构成并存储相应的逻辑形式三成分组的组。特别地,在进入处理1100时,执行方框1110。该方框首先从该文档提取所有文本,包括任何位于与该文档相关的HTML标识中的文档。然后,为了促进在一个时刻对单个句子操作的自然语言处理,通过常规的句子分割器,把对于每个文档的文本被分割为一个文本文件,其中在该文件中每个句子(或问题)占用一个独立的行。然后,方框1110分别对于在该文档中的每个文本行激活自然语言处理例程1300(将在下文中结合图13A具体讨论),以分析该文档并且构成和局部地存储用于该行的逻辑形式三成分组的组,并且在数据集1030中存储该组。一般这些操作已经完成,执行退出方框1110和处理1100。
如图10A和10B中所示的本发明的具体实施例所用的本发明的检索处理1200的流程图被集中地描绘在图12A和12B中;对于这些图的正确排列在图12中示出。与检索处理600相反(在图6A和6B中示出并且在上文中具体讨论),在图12A和12B中所示的所有操作被在一个公用的计算机系统上执行,在此为PC 1070(参见图10A和10B)。为了便于理解,读者还应当在下文讨论中同时参照图10A和10B。
在进入处理1200时,执行首先进行到方框1205。当执行时,该方框提示用户输入一个纯文本查询。一旦获得该查询,执行分支并且通过路径1207进行到方框1210,以及通过路径1243进行方框1245。当执行方框1245时,激活自然语言处理例程1350,以分析该查询,并且在存储器1075中构成并局部地存储其相应的逻辑形式三成分组的组。当执行方框1210时,如虚线1215所示,把纯文本查询发送到搜索引擎1090。在这一点上,搜索引擎执行方框1220,以响应该查询检索一组文档记录和检索与每个这种记录相关联的相关逻辑形式三成分组。一旦该组和相关逻辑形式三成分组被检索后,如虚线1230所示,它们都被返回到处理1200,并且特别返回到其中的方框1240。方框1240仅仅从搜索引擎1090接收该信息并且把其存储在存储器1075中,以供以后使用。尽管在方框1245中的操作已经被作为基本上与方框1210、1090和1220中的操作并行执行而讨论,但是根据实际应用的考虑,在方框1245中的操作可以顺序在方框1210、1090和1220之前或之后执行。
一旦用于查询和用于每个检索文档记录的逻辑形式三成分组的组已经存储在存储1075中之后,执行方框1250。该方框按照上述方式把该查询中的每个逻辑形式三成分组与用于每个检索文档记录的逻辑形式三成分组相比较以定位在该查询中的任何三成分组与在任何相应文档中的任何三成分组之间的匹配。一旦方框1250完成后,执行方框1255以抛弃用于不出现匹配的三成分组(即,没有匹配在该查询中的任何三成分组的三成分组)的文档的所有检索记录。然后,执行方框1260。如上文所定义的并且根据对每个相应文档所存在匹配三成分组的相关类型和的它们的权重,通过方框1260对所有剩余文档记录分配一个分值。一旦该文档记录被如此加权后,执行方框1265以按照分值的降序排列该记录的次序。最后,执行方框1270以按照排列次序显示该记录。一般按照表现出最高分值的小预定组的文档记录显示,一般为5个或10个。然后,用户例如可以通过适当地在由计算机系统1070所显示的相应按键上“敲击”鼠标,而使该系统显示下一组排序文档记录,如此等等,直到用户已经充分地按次序查看所有排序文档记录(并且已经访问和检查其中感兴趣的任何文档),在该点处完成处理1200,然后从中退出。
图13A示出在图11中所示的三成分组产生处理1100中执行的自然语言处理例程1300的流程图。如上文所述,自然语言处理例程1300分析要编索引的一个输入文档,特别是单个文本行,并且在数据集1030中构成并局部地存储用于该文档的相应逻辑形式三成分组的组,如图10A和10B中所示,例程1300基本上按照图7中所示并且在上文中具体讨论的自然语言处理例程700相同的方式进行操作。
特别地,在进入例程1300后,首先执行方框1310,以处理一行输入文本,来产生一个逻辑形式图,例如图5A中所示的示例图515。然后,如图13A所示,执行方框1320,以从该图中提取(读取)一组相应的逻辑形式三成分组。一旦出现这种情况后,执行方框1330以产生每个这种逻辑形式三成分组,作为一个独立并区别的格式化文本串。最后,执行方框1340,以在数据集1030中存储作为一系列格式化的文本串的输入文本行和用于该行的逻辑形式三成分组的组。一旦该组被完全存储后,执行从方框1300退出。另外,如果取代逻辑形式三成分组,一个不同形式(例如,逻辑形式图或子图)被与本发明相结合使用,然后方框1320和1330将被容易地改变,以产生作为格式化字符串的特定格式,方框1340把该取代逻辑形式三成分组的形式存储到数据集中。
图13B示出在检索处理1200中执行的自然语言处理例程1350的流程图。如上文所述,在自然语言处理例程1350中,分析由用户j提供给文档检索应用程序1085(在图10A和10B中示出)的一个查询,并且在存储器1075中构成和局部地存储其相应的逻辑形式三成分组的组。在上文中结合图13A具体讨论的例程1350与例程1300之间的操作中的唯一不同在于相应三成分组所存储的位置,即,通过执行在自然语言处理例程1300中的方框1340存储在数据集1030中,以及通过执行用于自然语言处理例程1350的方框1390存储在存储器1075中。因为由例程1350的其它方框所执行的操作,特别是方框1360、1370和1380,基本上分别与在例程1300中由方框1310、1320和1330所执行的操作相同,因此我们将省略对于前者方框的任何具体描述。
为了试验性地测试如总体地结合图1在上文中描述的本发明检索处理的性能,我们使用ALTA VISTA检索引擎作为在本检索系统中的搜索引擎。这个可公开地在互联网上访问的引擎是一个表面上具有超过三千一百万编索引的网页并且被广泛使用(大约当前是每天28,000,000次的量级)的常规统计搜索引擎。我们在标准奔腾90MHz PC上实现本发明的检索处理600,该PC使用各种自然语言处理部件,包括一个包含在形成MICROSOFT OFFICE 97程序套件(“OFFICE”和“OFFICE 97”是华盛顿州雷德蒙德市的微软公司的商标)的一部分的语法检查器中的字典文件。我们使用在线流水线处理方法,即,文档被按照流水线方式在线地收集和处理,而用户等待下一个结果。通过该特定的PC,大约需要三分之一到二分之一秒来产生用于每个句子的逻辑形式三成分组。
志愿者被要求产生纯文本查询,用于提交给搜索引擎。总共121个各种各样的查询被产生,如下的查询是代表性的:“为什么凯尔特文明如此容易地被罗马人所征服?”、“为什么抗生素对感冒起作用而不对病毒起作用?”、“谁是华盛顿州的地方长官?”、“尼罗河在何处跨过赤道?”以及“何时开始对天花病进行疫苗接种?”。我们把121个查询的每一个提交给ALTA VISTA搜索引擎,并且获得响应每个查询返回的排行最高的30个文档。在那些对一些查询返回小于30个文档的情况下,我们使用所有返回的文档。对所有121个查询,我们累计获得3361个文档(即,“原始”文档)。
3361个文档和121个查询中的每一个被通过本发明的处理进行分析,以产生相应的逻辑形式三成分组的组。该组被适当地比较,产生按照上述方式被选择、评分和排序的文档。
所有3361个文档被人工地和分别地关于它们与检索该文档的相应的查询之间的相关性进行估计。为了估计相关性,我们采用不熟悉我们的具体试验的目的的评估人员,以人工和主观地对它们与其相应查询的相关性排列这3361个文档,该相关性有“最佳”、“相关”或“不相关”。最佳文档被看作为一个包含对该相应查询的明确答案的文档。相关文档是一个不包含对该查询的明确答案,但是仍然与其相关的文档。不相关文档是一个对回答该查询无用的文档,例如:一个与该查询无关的文档、用除了英语之外的其它语言所写出的文档、或者不能从由ALTA VISTA引擎所提供的相应URL(即,一个“蜘蛛网(cobweb)”链接)检索出来的文档。为了增加评估的精度,第二个评估人员检验这3361个文档的子集,特别是那些出现至少一个匹配在其相应查询中的逻辑形式三成分组的逻辑形式三成分组的文档(在3361个文档中有431个文档),并且这些文档以前被排列为相关或最佳,但是没有任何匹配的逻辑形式三成分组(3361个文档中有102个文档)。任何在这些对文档的排列中的不一致被作为“仲裁者(tie-breaker)”的第三个评估人员所检查。
作为该试验的结果,我们观察到在所有涉及的方档上,本发明的存储系统对于由ALTA VISTA搜索引擎所返回的原始文档具有改进,在总体精度上约有200%量级的提高(即,对于所有被选择的文档)从约16%的到约47%,并且对于前5位的文档中在精度上约有100%的提高,从约26%到约51%的提高。另外,使用本发明的系统使被作为最佳文档返回的第一文档的精度比原始文档增加113%,从约17%到约35%。
尽管我们已经在使用统计搜索引擎的情况下具体地描述本发明,但是本发明不受到如此限制。在这一点上,在信息检索应用程序中,本发明可以被用于处理通过基本上任何类型的搜索引擎获得的检索文档,以改进该引擎的精度。
除了使用对逻辑形式三成分组中的每个不同属性的固定权重之外,这些权重可以动态改变,实际上可以变得自适应的。为了实现这种情况,例如贝叶斯或神经网络这样的一个学习机构可以被适当地包含到本发明的处理中,以根据学习的经验把用于每个不同的逻辑形式三成分组的数字权重变为最佳数值。
尽管如上文在一个实施例中讨论的那样,尽管本发明的处理需要逻辑形式三成分组来确切地匹配,但是为了识别在三成分组中足够相似的语义内容,在匹配时,用于判断匹配的标准可以放宽到包含释义。释义可以是词汇的或结构的释义,或者可以包括产生的摘要逻辑形式,如下文所述。词汇释义的一个实例是上义词或同义词。结构释义可以用名词同位语或关系从句作为示例。例如,象“总统,比尔.克林顿(the president,Bill Clinton)”这样的名词同位词结构应当被看作为与象“比尔.克林顿,他是总统(Bill Clinton,who is president)”这样的关系从句结构相匹配。在语义水平上,可以对两个字之间的语义相似性进行精确地判断,从而认可查询“咖啡是在那里长出来的?(Where is coffee grown?)”和在文集中象“咖啡通常种植于热带山区中。(Coffee is frequently farmed in tropicalmountainous regions.)”这样的句子之间的匹配。另外,用于确定一个匹配是否存在的过程可以根据被提问的查询的类型而改变。例如,如果一个查询关于某物在何处,则该过程应当强调“位置”属性应当出现于任何与该被测试而被看作为与该查询相匹配的句子有关的三成分组中。因此,逻辑形式三成分组“匹配”一般被定义为不但包含一致的匹配,而且包含从所有这些宽松的、判断的和修改的匹配条件得出的匹配。
另外,本发明可以容易地与其它针对检索非文本信息(例如,图像、表格、视频或其它)的技术相结合,以提高总体精度。一般来说,在文档中的非文本内容通常由语言(文本)描述伴随出现的该文档中,例如图例或短评。因此,本发明的处理的使用,特别是其自然语言成分,可以被用于分析和处理通常伴随着该非文本内容的语言描述。文档可以首先使用本发明的自然语言处理技术来检索,以定位一个出现与查询语义相关的语言内容的文档组,然后对于它们的非文本内容处理该文档组,以定位具有相关文本和非文本内容的文档。另外,文档检索可以首先对非文本内容进行,以检索一个文档组;随后通过本发明的技术对于它们的语言内容处理该文档组,以定位相关文档。
图14是根据本发明一个方面的信息检索系统1480的一个简化功能图。系统1480包括检索引擎1482、搜索引擎1484和统计数据存储器1486。应当注意整个系统1480或者系统1480的一部分可以在图3所示的环境中实现。例如,检索引擎1482和搜索引擎1484可以简单地作为存储在存储器322中计算机可读指令而实现,其由CPU 321所执行,以执行所需功能。另外,检索引擎1482和搜索引擎1484可以提供在任何类型的计算机可读介质上,例如针对部分所述的那些介质。另外,检索引擎1482和搜索引擎1484可以提供在分布的处理环境中,并且在分离的处理器中执行。另外,统计数据存储器1486还可以存储在针对图3讨论的存储部件,它可以存储在对于广域网352中的存储上,或者它可以存储在可通过局域网351访问的存储器350中。在另一个实施例中,存储器1486可以位于一部分存储器322中,并且可以由计算机320中的操作系统所访问。
在任何情况下,一个文本输入(或者查询)被通过任何适当的输入机构(例如键盘340、鼠标342,等等)提供给检索引擎1482。检索引擎1482根据该查询执行多个功能。在一个优选实施例中,检索引擎1482根据该文本输入公式化一个布尔查询,并把该布尔查询提供给搜索引擎1484。
在一个实施例中,搜索引擎1484是一个由美国麻萨诸塞州(MA),梅纳德市的数字设备公司以商业名称Alta vista提供的搜索引擎。Altavista搜索引擎是一个常规的互联网搜索引擎。在这样一个实施例中,检索引擎1482被通过适当的互联网连接而连接到搜索引擎1484。当然,还可以使用其它搜索引擎。
在一个实施例中,搜索引擎1484是一个访问到统计数据存储器1486的统计搜索引擎。这样一个统计搜索引擎一般把统计处理包含到用于搜索数据存储器1486的搜索方法中。
数据存储器1486一般地可以包含由搜索引擎1484编索引的文档记录的数据集。每个这样的记录例如可以包含:一个可以由网络浏览器访问相应的文档的网址、出现在该文档中的预定内容字、该文档的可能的摘要、以及在其超文本标识语言(HTML)描述区域中提供的文档的描述。另外,统计数据存储器1486还可以包括为文档编索引而计算的逻辑形式的数据指示。在一实施例中,与一个索引条目相关连的逻辑形式对应于在该编索引文档中原始使用的语言。在另一个实施例中,并且将在下文中更加具体地描述,该逻辑形式被修改为包括释义逻辑形式,并且抑制高频率的逻辑形式。
统计搜索引擎1484一般为每个从统计数据存储器1486检索的文档记录计算数字度量。该数字度量是基于被提供给搜索引擎1484的查询的。这种数字度量例如可以包括:词条频率×文档频率的倒数(tf×idf)。
在任何情况下,搜索引擎1484向检索引擎1482返回识别的文档记录,或者按照对每个文档记录计算的统计尺度的次序排列的文档。在一个实施例中,检索引擎1482把该返回的文档或记录进行附加的自然语言处理,以细化该文档或记录的排序。然后该文档或记录被根据细化的排列作为输出文档组提供给用户。
图15是搜索引擎1484的更加具体的功能框图,其中示出统计数据存储器1486是如何根据本发明的一个实施例产生的。图15示出在任何适当的存储设备中存储的文档1588。这种存储设备可以是在分布计算环境中的计算机、由计算机320中的操作系统所访问的存储器、可通过广域网(例如,互联网)所访问的计算机、图书数据库、或者任何其它文档所存储的适当位置。文档1588一般通过在此称为网络编索引器1590网络爬行器部件(web crawler component)由搜索引擎1484所访问。文档编索引器1590访问文档1588并且按照已知的方式对它们编索引,产生与每个所访问文档相关联的记录。
搜索引擎1484还包括逻辑形式产生器1592和逻辑形式修改器1594。逻辑形式产生器1592还访问该文档,并且产生对应于每个所访问文档的逻辑形式。
逻辑形式产生器1592根据输入文本产生逻辑形式。简而言之,语义分析产生描述该文本输入的含义的逻辑形式图。该逻辑形式图包括节点和链接,其中链接被标识以表示一对节点之间的关系。逻辑形式图表示例如比语法分析树更加抽象的分析级别,因为该分析是许多语法或语形变化标准化。
逻辑形式修改器1594接收由逻辑形式产生器1592所产生的逻辑形式,并且修改该逻辑形式。修改器1594示例性地根据原始逻辑形式产生一组释义逻辑形式,并且抑制在区分各种文档中无用的预定类型的逻辑形式(例如高频率的逻辑形式)。
由文档编索引1590所产生的记录与修改的逻辑形式组一同被示例性地提供给统计数据存储器1486,它们被存储于此,以用于以后由搜索引擎1484响应通过检索引擎1482提供的查询而访问。逻辑形式修改器1594被在下文更加具体地描述。
图16是检索引擎1482的更加具体的方框图。在一个示例实施例中,检索引擎1482包括输入逻辑形式产生器1696、逻辑形式修改器1698、布尔查询产生器1600和过滤器1602。过滤器1602还包括逻辑形式比较器1604和文档排序产生器1606。
用户输入查询被提供给布尔查询产生器1600。布尔查询产生器1600按照常规信息检索系统中相同的方式,根据该用户输入查询,产生一个布尔查询。该布尔查询被提供给在统计数据存储器1486中执行该查询的搜索引擎1484。在响应时,统计数据存储器1486把文档记录(包括修改的逻辑形式组)返回到搜索引擎,然后,搜索引擎把它们提供给在检索引擎1482中的过滤器1602。
该查询还被提供给输入逻辑形式产生器1596。产生器1596根据该原始字和它们在该查询中的相互关系产生一个或更多的逻辑形式。该逻辑形式被按照对于图15中的逻辑形式产生器1592描述的相同方式产生。
该原始逻辑形式被提供给逻辑形式修改器1698,其修改该逻辑形式以示例性地包括一组释义逻辑形式,并且一组高频逻辑形式。这个修改的逻辑形式组还被提供给在过滤器1602中的逻辑形式比较器1604。
逻辑形式比较器1604把基于该查询的修改逻辑形式组与基于从数据存储器1486检索的文档的修改逻辑形式组相比较。如果基于该查询的任何修改逻辑形式组与基于该文档的修改逻辑形式组相匹配,则逻辑形式比较器1604把一个权重分配给包含该匹配的逻辑形式的特定文档。该权重是基于与每个文档相关的匹配数目和类型。如果任何文档不包含任何匹配,则该文档被抛弃并且不被提供给用户,或者与一个表示该文档不大可能与该查询相关的标识一同提供给用户。
包含匹配以及由逻辑形式比较器1604所分配的权重的文档记录被提供给文档排序产生器1606。文档排序产生器1606根据由逻辑形式比较器1604所分配的权重排序文档,并把一个排序输出提供给用户作为输出文档组。
图17是一个流程图,说明在图16中所示的相同的操作。该输入查询被首先在统计数据存储器1486中执行,并且文档记录和与这些文档记录相关的修改逻辑形式被提供给过滤器1602。这由方框1708和1710所示。然后,产生器1696根据该查询的原始内容产生逻辑形式。这由方框1712所表示。然后,基于该查询的逻辑形式被逻辑形式修改器1698所修改。这由方框1714所表示。
然后,过滤器1602响应该查询选择由搜索引擎1484所提供的第一文档记录。这由方框1716所表示。逻辑形式比较器1604确定是否有任何修改的查询逻辑形式对应于该修改的文档逻辑形式。如果没有,则该文档被分配一个零值,并且过滤器1602确定是否有任何其他文档需要被比较。这由方框1718、1720和1722所表示。
但是,如果任何一个修改的查询逻辑形式匹配任何一个修改的文档逻辑形式,则该要被分析文档被逻辑形式比较器1604分配一个权重。这由方框1724所表示。过滤器1602再次确定是否有任何其他文档需要被比较,如方框1722所示。
当没有更多文档需要被比较时,文档排序产生器1606根据由逻辑形式产生器1604所分配的权重排序该文档。然后,该排序输出被提供给用户。这由方框1726和1728所表示。
图18为示出图15中所示的逻辑形式修改器1594和图16中所示的逻辑形式修改器1698的操作的流程图。如下文中更加具体讨论的那样,将能够理解本发明考虑在查询端、或数据端、或者这两者上使用修改的逻辑形式。为了本讨论的目的,逻辑形式修改器在查询端和数据端示出。
在任何情况下,该逻辑形式修改器首先接收根据被分析的查询或文档产生的原始逻辑形式。这由方框1830所表示。然后,该逻辑形式修改器产生原始逻辑形式的释义。该释义可用按照任何数目的方式形成,其中几个方式在下文中描述。释义逻辑形式的产生由方框1832所表示。
然后,该逻辑形式修改器抑制逻辑形式的预定类型(其还可以是各种各样逻辑形式),其数目在下文中讨论。在经过抑制之后,该释义逻辑形式被提供给过滤器102,其中文档被根据在抑制后剩余的逻辑形式而过滤。这由方框1836所表示。
相关的逻辑形式的产生
图19为更好地示出释义逻辑形式的产生的流程图,以及逻辑形式的抑制。
语义或词汇的释义
原始逻辑形式由一个逻辑形式修改器所接收。然后,该逻辑形式修改器通过首先在原始逻辑形式中执行字的语义扩展形成词汇的释义逻辑形式。这由方框1938表示。然后,根据语义扩展字产生词汇释义逻辑,并且使用在原始逻辑形式中的原始结构连接。这由方框1940表示。
在一个示例实施例中,该语义扩展是通过检验在原始逻辑形式中的每个内容字而执行的,并且把该字扩展为包括同义词、上义词、下义词、或者其他具有关于该原始内容字的语义关系的其他字。例如,在一个实施例中,逻辑形式修改器94和98可以被提供对参考语料库的访问,该语料库例如词库、字典、或计算机词典,例如WordNet或MindNet词典,以便于识别同义词、上义词、下义词、或者其他字之间的语义关系,以识别查询和文档之间的可能的词汇释义关系。
因此,例如,输入查询是:
蜘蛛是如何吃掉它们的猎物的?(How do spiders eat their victims?)
根据该查询产生的该原始逻辑形式三成分组是:
吃;Dsub;蜘蛛
吃;Dobj;猎物
该字“吃”的词汇扩展或语义扩展产生“消费”。并且,“蜘蛛(spider)”的词汇扩展或语义扩展产生“蜘蛛纲节肢动物(arachnid)”和“狼蜘蛛(wolfspider)”。这些扩展反过来导致如下“吃;Dsub;蜘蛛”的附加释义逻辑形式:
消费;Dsub;蜘蛛
吃;Dsub;蜘蛛纲节肢动物
消费;Dsub;狼蜘蛛
吃;Dsub;狼蜘蛛
消费;Dsub;狼蜘蛛
类似地,“猎物(victim)”的词汇或语义扩展产生“被捕食动物(prey)”。因此,基于逻辑形式“吃;Dobj;猎物”的释义逻辑形式是:
消费;Dobj;猎物
吃;Dobj;被捕食动物
该技术倾向于保留根据该查询返回的相关文档。因此,该技术增加了在该文档组中的查全率,而不降低精度。
结构的释义
在该原始逻辑形式已经被词汇扩展之后,它们被结构扩展以获得其他的释义逻辑形式。利用在上文中包含以供参考的参考文献中所述的更加紧迫的技术,即使当在该文档在中的单个句子中出现该查询在中的内容字时,由该搜索引擎返回的相关文档也被抛弃。这种情况一般当在该查询和文档句子之间存在语法或语义释义关系时出现,但是基于该查询的逻辑形式和基于文档的逻辑形式不精确匹配。
为了正确地保留满足这些条件的文档,结构语义规则被用于该逻辑形式修改器中以根据该原始逻辑形式产生附加逻辑形式。该附加逻辑形式要被用于掌握常规的语法/语义释义关系,使由用户表达查询的方式和相关文档表达相似概念的方式标准化。为了实现该目的,逻辑形式修改器增加根据该原始逻辑形式产生的基本逻辑形式。
例如,如果一个原始查询是:
木星有多少个卫星?(How many moons dose Jupiter have?)
根据该查询的原始逻辑形式是:
有;Dsub;木星
有;Dobj;卫星
卫星:Ops;多少
其中Ops是运算符关系。
通过应用根据本发明一个方面的结构释义规则,该逻辑形式修改器产生一个附加逻辑形式:
卫星;PossBy;木星
可以看出该内容字在原始逻辑形式上是相同的,但是该结构连接是不同但相关的结构连接。这使得包含与相同逻辑形式的编索引文档相匹配。
结构释义规则的另一个实例可以更加复杂。例如,输入查询是:帮我查找关于病毒结晶化的信息(Find me information on the crystallization ofviruses.)。这产生如下计算的逻辑形式三成分组:
结晶化;的;病毒
把该查询与包含描述如何“病毒结晶化(viruses crystallize)”的句子相匹配需要几个要被考虑的信息。这种信息可以包括:
1.在Dsub/verb和特定类型的英语标准化之间存在常规的释义关系。
2.在预定的字典中识别名词“结晶化”具有动词词根“结晶”;以及
3.“病毒”在该字典中被归类为有生命的。
这些信息片一起使得为该查询假定的和为匹配产生的附加结构释义逻辑形式:
结晶;Dsub;病毒
“病毒”的动物性被用于预测该释义是否应当被表达为主语或宾语关系。在语言学上,动物比非动物更可能是动词的主语(主体)。因此,如果查询是关于“糖的结晶化(crystallization of sugar)”,则将产生附加的释义逻辑形式:
结晶化;Dobj;糖
变化的逻辑形式释义规则被应用于使多个语法释义关系标准化,包括:
1.所有结构;
2.标准化/动词宾语和主语,复合名词/动词宾语(例如,“程序计算机”)。
3.名词修饰(例如,“西班牙的国王(the King of Spain)”和“西班牙国王(Spanish King)”)。
4.相互结构(例如,“约翰吻玛丽(John kissed Mary)”和“玛丽吻约翰(Mary kissed John)”);
5.定语/谓语形容词(例如,“这妇女是高个(That woman is tall)”和“这个高妇女(That tall woman)”);以及
6.轻动词结构/动词(例如,“总统作出一个决定(The President made adecision)”和“总统决定(The President decided)”)。
附录A包括说明上述规则的典型应用的代码。在每种情况中,这些规则允许保留更多的相关文档,而仍然紧紧地限制该匹配处理。执行原始结构关系的结构扩展或结构释义由图19中的方框1942所表示。上述释义规则和其他这种规则可以通过经验获得,或者通过任何其他适当方式获得。
尽管,结构释义可以应用于信息检索系统索引端和查询端,如果应用于索引端,它可能所期望地增加索引的大小。因此,在一个说明实施例中,该结构释义仅仅应用于信息检索系统的查询端。
应当注意该结构释义可以在由方框138和140所示的语义释义之前或之后执行。另外,该结构释义可以根据在语义扩展过程中产生的附加逻辑形式执行。这由方框1944和1946表示。
元结构(Meta structure)释义
可以由逻辑形式修改器产生的附加释义逻辑形式组包括摘要逻辑形式的产生。例如,即使当要用户把自然语言查询输入到一个搜索引擎中时,许多用户仍然不能提供具有多个处于感兴趣的语法/语义关系的内容字的合式查询。相反,许多查询落到称为“关键字查询”的类别中。这种关键字查询包括真关键字查询,例如“狗”、“园艺”、“文艺复兴”、“野牛比尔”。关键字查询还可以按照原型“框架”句子中的关键字形式,这没有提供有用的语言环境,例如“告诉我关于狗的信息”、“我需要关于园艺的信息”、“你有关于恐龙的信息吗?”。由于这些查询是常见的,因此本发明包括适应这些查询的匹配技术。
首先,根据其结构该查询被识别为关键字查询,如图19中的方框所示。一个查询如果仅仅包含一个内容字(或者被作为一个复杂内容字的内容字序列,也称为多字表达)或者因为它包含一个或多个在明确识别的通常查询结构中出现的内容字,则该查询被识别为关键字查询。多字表达的一个实例是“野牛比尔”。这被作为具有内部结构的单个字。
如下规则提供一个实例,描述用于识别“谁是野牛比尔?”形式的关键字查询的结构。
如果为如下情况则把Dsub作为一个用于匹配目的的关键字:
动词是“是”
Dnom(深主格)是“谁”;或者
如果除了前置限定词或介词短语之外,Dsub没有被语法修饰。
一旦该查询已经被识别为一个关键字查询,则为匹配目的产生多个摘要逻辑形式。在上述“谁是野牛比尔?”的查询中,产生如下摘要逻辑形式。
标题或题目(heading_OR_title);Dsub;野牛比尔(Buffalo_Bill)
“是”_的_Dsub(Dsub_of_be);Dsub;野牛比尔
动词_的_Dsub(Dsub_of_verb);Dsub;野牛比尔
这些摘要逻辑形式不直接对应于任何包含在根据该查询产生的原始逻辑形式中。但是,它们潜在地与当该文档被编索引并存储在统计数据存储器1486中时产生的相应逻辑形式相匹配。例如,在处理题目为“野牛比尔”的文档中,在图15中所示的逻辑形式修改器1594产生如下摘要逻辑形式,并把其添加在统计数据存储器1596中;
标题或题目(heading_OR_title);Dsub;野牛_比尔(Buffalo_Bill)
并且,在文档编索引过程中,任何包含动词“是”和Dsub的逻辑形式产生如下特定的逻辑形式:
“是”_的_Dsub(Dsub_of_be);Dsub;字(WORD)
(例如,”_是_”的Dsub;Dsub;野牛比尔)
另外,如果该逻辑形式包含一个Dsub和处理“是”之外的一个动词,则产生如下一个附加的摘要逻辑形式:
动词_的_Dsub(Dsub_of_verb);Dsub;字(WORD)
(例如,动词_的_Dsub;Dsub;野牛_比尔)
因此,用于关键字查询的在编索引和在查询时产生的摘要逻辑形式允许该信息检索系统在数据端利用语言结构,以识别可能主要关于包含在该关键字查询中的关键字的文档(例如,在数据端上的摘要逻辑形式表示可以匹配一个关键字查询的文档的元结构)。
另外,即使如果该文档不具有包含该关键字的标题,在该文档中的句子可以被分析,以确定该文档的元结构。例如,句子的主语,特别是主动词“是”的主语,倾向于是该句子的主题或标题。即使对于关键字查询,可以通过优选地把该关键字查询与包含关于该关键字的句子相匹配而增加精确度。例如,当该查询是“野牛比尔”和第一文档包含该句子:
野牛比尔是个演员,通常在其中一个情节剧中部分地扮演其自身。
并且,第二文档包含句子:
在美国电影中一个最活跃的演员Keitel于70年代在戏剧“艾丽丝不再住在此处(Alice Doesnit Live Here Anymore)”(1974);“一个精明的西部野牛比尔和印第安人(an artful western Buffalo Bill and the Indians)”或“制服公牛的历史教训(Sitting Bulls history lesson)”(1976);和黑色喜剧“母亲、水壶和速度(Mother,Jugs,and Speed)”(1976)中表现出他的多才多艺。
在为该文档编索引时和在用于该关键字查询的查询时间中产生的摘要逻辑形式允许关键字查询与第二文档相比优选地匹配第一文档。这是因为第一文档包含作为该句子的主语的关键字查询,而第二文档不包含。
另一个摘要逻辑形式的实例是根据定义句产生的。一个定义句的实例如下:
熔岩,从火山流出的熔融岩石。
这种类型的定义句可以通过检验包括语言结构和格式化结构的线索而识别。最频繁地,这种句子分析为一个名词短语,其中包含单个名词或多字表达,跟随着一个逗号,再跟随着同位名词短语。这产生如下形式的摘要逻辑形式:
文章题目或标题;Dsub;熔岩
这表示该文档的元结构(或全部内容),并且可以用于匹配该文档的关键字查询请求。
获得表示该文档的元结构的摘要逻辑形式,以及获得用于该关键字查询的摘要逻辑形式都由图19中的方框1950和1952所表示。
抑制特定的逻辑形式
根据本发明的另一个方面,逻辑形式修改器1594和1698还抑制特定类型的逻辑形式。例如,特定逻辑形式不是相关文档的良好的鉴别器,并且产生错误的正匹配。典型地,这种逻辑形式对应于高频逻辑形式,例如“是;Locn;这”。这种类型的逻辑形式可以被认为是在布尔检索系统中找到的“停止字”的语法/语义模拟。
一些动词/虚词:来(come);Ptcl;到(to)(我得到一个决定,约翰得到停止。(I came to a decision,John came to a stop.))
高频动词:是;Dsub;约翰(约翰是疲惫的,约翰是世界上最大的大象。(John is tired,John is the largest elephant in the world))
代词:吃;Dsub;他(他在家里吃东西。)
常见的逻辑形式:告诉;Dobj;我
(告诉我关于狗的信息)
这些和其他这种逻辑形式可以经验地识别和构成,或者通过其他适当的方式鼠标识别和构成,但是对应于那些导致不正确匹配的逻辑形式。根据本发明的一个方面,这些类型的逻辑形式被在查询、或者文档记录、或者这两者中识别和抑制。这是由图19中的方框1954和1956所表示的。
另外,一些这样的逻辑形式可以仅仅在根据一个查询的逻辑形式产生过程中抑制。例如,“给;Dobj;信息”类型的逻辑形式不被在文档编索引的过程中抑制,并且可以用于匹配象“什么数据库给出关于癌症的信息?”这样的查询。在该例子中,约翰需要识别特定的数据库,并且该查询是十分特别的,另一方面,一个“给;Dobj;信息”类型的逻辑形式被在“给我关于X的信息”类型的查询的处理过程中抑制。该查询被识别为一个关键字查询,并且该识别的逻辑形式被抑制。
在所有逻辑形式和修改的逻辑形式被根据词法或语义释义、结构释义、摘要逻辑形式的产生、以及逻辑形式的抑制而获得时,修改的逻辑形式组被提供给过滤器1602,用于进一步的处理。这由图19中的方框1958所表示。过滤器1602查找基于该查询的修改的逻辑形式和基于文档的修改的逻辑形式之间的匹配,如上文所述。
结论
因此,可以看出本发明提供一种用于确定两个或更多的文本输入之间的相似性的系统。另外,本发明的一个方面是适合于通过识别在由该搜索引擎返回的文档组中更加相关的文档而比以前的技术显著增加精度。并且,本发明通过减小在过滤过程中抛弃的相关文档的数目而增加查全率。
本发明的一个方面示例性地产生和比较基于两个文本输入的逻辑形式,并且通过词义和语义地扩展原始字、结构地扩展该原始结构连接、和/或通过产生表示文本输入(例如,文档或查询,或者这两者的文本输入)的元结构的摘要逻辑形式而产生释义逻辑形式,和/或通过产生表示文本输入(例如,文档或查询,或者这两者的文本输入)的元结构的摘要逻辑形式。本发明还示例性地抑制特定的逻辑形式。当然,释义和抑制不一定对两组逻辑形式都相同,而是可以互为不同。
还应当注意,当前可以利用散列法来把包含在统计数据存储器86中的索引散列为较小的尺寸。当然,本发明同样可以用于该索引的散列表示,或者索引的完全表示。
尽管已经参照优选实施例描述了本发明,但是本领域内的专业技术可以在形式的细节上作出改变,而不脱离本发明的精神和范围。附录A
// produce variants for possessive constructions
void pardphrase_possessive(segrec seg)
(

  segrec tempseg;

  //

  // Possessive Constructions

  // PossBy/PartOf:The car’s hood/ // adds (hood;PartOf;car) to the existing triple (hood;Possby
;car)

  // PossBy/“of”:Mozart’s concerto is short // adds (concerto;of;Mozartl to the existing triple
(concerto;PossBy;Mozart)

  //“of”/PossBy:The hood of the car // adds (hood;PossBy;car),etc to the existing triple (hoo
d;of;car)

  //“with”/PossBy:The car with a hood// adds (hood;PossBy;car),etc to the existing triple (ce
r;with;hood;)

  // block from applying when Nl is agentive:“leader of men”,“singer of songs”

  // not dealing with “The book is John’s”

  if (^N_er(Head(SynNode)) & (PossBy | PrpCnjLem(first(PrpCnjs))in?set(of with) | (Pred in?set(
have own possess) & Dsub & Dobj) )) (

      if (PossBy) (

          if (Geo(SynNode(PossBy))) print_lf_tuplesl(seg,PossBy,“LocAt”);// France’s capital->(
capital;LocAt;France)

          print_lf_tuplesl(seg,PossBy,“PartOf”);// 1/98 PartOf won’t match yet,since LF never gt
nerates this relation

          print_lf_tuplesl(PossBy,seg,“with”);

          print_lf_tuplesl(seg,PossBy,“of”);

          //“John′s hat”==>“hat owned by John”
//            tempseg=segrec(%%0;);Pred(tempseg)=“own”;
//            print_lf_tuplesl(tempseg,PossBy,“Dsub”);
//            print_lf_tuplesl(tempseg,seg,“Dobj”);

          //“John’s hat”==>“hat belonging to John”

          tempseg=segrec(%%0;);Pred(tempseg)=“belong”;

          print_lf_tuplesl(seg,tempseg,“Props”);// unnecessary to insert Props?

          print_lf_tuplesl(tempseg,seg,“Dsub”);

          print_lf_tuplesl(tempseg,PossBy,“to”);

          )

      // X has Y/X Part Y:Jupiter has a moon.

      // adds (Jupiter;Part;moon,Jupiter;Part;moon) to the existing triple (have;Dsub;Jupiter,he
ve;Dobj;moon)

      // the car’s hood,The hood of the car.

      else if (Pred in?set(have own possess)) (

          if (Geo(SynNode(Dsub))) print_lf_tuplesl(seg,Dsub,“LocAt”);// Texas has a capital->(c
apital;LocAt;Texas)

          print_lf_tuplesl(Dobj,Dsub,“PartOf”);//

          print_lf_tuplesl(Dobj,Dsub,“with”);

          print_lf_tuplesl(Dobj,Dsub,“of”);)

          //
//            if (Pred ^=“own”) (
//                //“John’s hat”==>“hat owned by John”
//                tempseg=segrec(%%0;);Pred(tempseg)=“own”;
//                print_lf_tuplesl(tempseg,Dsub,“Dsub”);
//                print_lf_tuplesl(tempseg,Dobj,“Dobj”);
//                )
//            //
//            // check order in which these are being printed
//            if (Pred ^=“possess”) (
//                //“John′s hat”==>“hat possessed by John”
//                tempseg=segrec(%%0;):Pred(tempseg)=“possess”;
//                print_lf_tuplesl(tempseg,Dsub,“Dsub”);
//                print_lf_tuplesl(tempseg,Dobj,“Dobj”);
//                )
//           //“John′s hat”==>“hat belonging to John”

         tempseg=segrec(%%0;):Pred(tompseg)=“belong”;

         print_lf_tuplesl(Dobj,tempseg,“Props”);//unnecessary to insert Props?

         print_lf_tuplesl(tempseg,Dobj,“Dsub”);

         print_lf_tuplesl(tempseg,Dsub,“to”);

         )

    else if (PrpCnjLem(first(PrpCnjs))==“with”) (// I saw a car with a hood

        print_lf_tuplesl(first(PrpCnjs),seg,“Partof”);//.

        print_lf_tuplesl(first(PrpCnjs),seg,“PossBy”);

        print_lf_tupiesl(first(PrpCnjs),seg,“of”);

        )

    else (                                               // “of”I saw the hood of the car

        if (Ceo(SynNode(first(PrpCnjs)))) print_lf_tuplesl(seg,first(PrpCnjs),“LocAt”);// the c
apital of Texas->(capital;LocAt;Texas)

        print_lf_tuplesl(seg,first(PrpCnjs),“PartOf”);//.

        print_lf_tuplesl(seg,first(PrpCnjs),“PossBy”);
				
				<dp n="d51"/>
          print_lf_tuplesl(seg,first(PrpCnjs),“with”);

          )

      )

  return;

       )
void paraphrase_noun_modifier(segrec seg)
(

  segrec tempseg,base,base_rec;

  //

  //Adj N / N of Adj base:The Spanish king // adds (king;of;Spain) to the existing triple (kin
g;Nadj;Spanish)

  //The Chinese and Japanese officials were present. The Chinese and Japanese officials had brief
cases and books.

  //

  //Currently restricted to adjectives that are OnlyUpr (i.e. which appear only in upper case in
lexicon) in order to block

  //e.g.“selfish king”-->“king of self”,This restriction limits rule to nationalities (anythi
ng else?)

  //this blocks useful paraphrases like “industrial giant”/“giant of industry”,Constraint too br
oad currently.

  //It may be that NONE of the relevant Adj records (Spanish,Icelandic,etc,) currently have Bas
es,so only the second condition may fire

  if(OnlyUpr(SynNode) &amp; (seg in? Nadj(first(Parents)) (seg in?Crds(first(Nadj(first(Parents(fir
st(Parents))))))) ) (

      if(Bases(Adj(Lex(SynNode)))) (

          foreach(base;Bases(Adj(Lex(SynNode)))) (

              tempseg=segrec(%%0;);

              Pred(tempseg)=Lemma(base);

              if (Loc_sr(first(Parents))) (

                  //for modified places;Spanish city -> city LocAt Spain

                  if(Crds(first(Parents))) print_lf_tuplesl(first(Parents(first(Parents))),tempse
g,“LocAt”);

                  else print_lf_tuplesl(first(Parents),tempseg,“LocAt”);

                  )

              else (

                  base_rec=lex_get(Lemma(base),0):// lex_get the base

                  if (^Noun(base_rec)) base_rec=lex_get(loweratom(Lemma(base)),0);// if initial l
ex_get fails,try lower-casing the base

                  if (Geo(Noun(base_rec))) (// for modifying Geo PrprNs that don′t have Loc_sr: Am
erican city ->city LocAt America

                       //for modified places that don′t have Loc_sr:American city ->city LocAt A
merica

                       if (Crds(first(Parents))) print_lf_tuplesl(firss(Tarents(first(Parents))),te
mpseg,“LocAt”);

                       else print_lf_tuplesl(first(Parents),tempseg,“LocAt”);

                       )

                   )

               //also allow“of”possibility:city of Spain

               if (Crds(first(Parents))) print_lf_tuplesl(first(Parents(first(Parents))),tempseg,“o
f”);

               else print_lf_tuplesl(first(Parents),tempseg,“of”);

              )

          )

      //if the Adj doesn′t have a Bases attribute,try the corresponding Noun record:Chinese/Chi
na,French/France

      else if (Bases(Noun(Lex(SynNode)))) (

          foreach(base;Bases(Noun(Lex(SynNode)))) (

              tempseg=segrec(%%0;);

              Pred(tempseg)=Lemma(base);

              //What′s the biggest American city?->city in America

              if (Loc_sr(first(Parents))) (

                   if (Crds(first(Parents))) print_lf_tuplesl(first(Parents(first(Parents))),tempse
g,“LocAt”);

                   else print_lf_tuplesl(first(Parents),tempseg,“LocAt”);

                   )

               else (//for modifying Geo PrprNs that don′t have Loc_sr:American city->city Lo
cAt America

                   base_rec=lex_get(Lemma(base),0);// lex_get the base

                   if (^Noun(base_rec)) base_rec=lex_get(loweratom(Lemma(base)),0);// if initial l
ex_get fails,try lower-casing the base

                   if (Geo(Noun(base_rec))) (

                        if (Crds(first(Parents))) print_lf_tuplesl(first(Parents(first(Parents))),te
mpseg,“LocAt”);

                        else print_lf_tuplesl(first(Parents),tempseg,“LocAt”);

                        )

                    )
				
				<dp n="d52"/>
           // also allow “of”possibility:city of America

           if (Crds(first(Parents))) print_lf_tuplesl(first(Parents(first(Parents))),tempseg,“o
f”);

           else print_lf_tuplesl(first(Parents),tempseg,“of”);

           )

        )

     )

     // default case for Nadj-->Dadj (opposite direction is in paraphrase_dadj):the tall king --
> the king is tall (king;Dadj;tall)

     else if (seg in?.Nadj(first(Parents))) print_lf_tuplesl(first(Parents),seg,“Dadj”);

     //

     // N1 + (for N2) --> (N2;Mods;N1);“recipe for pizza”->“pizza recipe”,“box for toys”--
>“toy box”

     // if N2 is PrprN (maybe (+Humn)????) don’t rewrite (assumed to be benefactive,though posse
ssion might be acceptable rewrite)

     // “recipe for John”-> “John′s recipe”

     if (PrpCnjLem(first(PrpCnjs)) ==“for”&amp; Nodetype(Head(SynNode))==“NOUN”&amp; Nodetype (Head(SynNo
de(first(PrpCnjs))))==“NOUN”&amp;

          ^PrprN(first(PrpCnjs)) &amp;“Prmods(Head(SynNode(first(PrpCnjs))))) &amp; ^Psmods(Head(SynNode(f
irst(PrpCnjs)))) ) (

              print_lf_tuplesl (seg,first(PrpCnjs),“Mods”);

          )

      // Mod/Dobj:space exploration/explore space,oil production/produce oil;“farm mechanization i
s inevitable”->(mechanize;Dobj;farm)

      // Need to deal with multiple modifiers,like“oil producing courtry”

      if (Mods &amp; Bases(SynNode)) (// redundant constraint:Nodetype(Head(SynNode))==“NOUN”

          foreach(base;Bases(SynNode)) (

              tempseg=segrec(%%0;);

              Pred(tempseg)=Lemma(base);

              print_lf_tuplesl(tempseg,first(Mods),“Dodj”);

              )

          )

      return;

   )
// Crystalization of viruses,The encroachment of civilization,The action of the committee,
// Animacy/Instr check constrains what can be paraphrased as a Dsub vs,Dobj;
//                      (crystalize;Dsub;virus) but (announce;Dobj;results)
// This isn’t adequate,Since lots of other things can act as agents (drugs,civilization,etc.)
void paraphrase_nominalization(segrec seg)
(
   segret tempseg,base;
   //
   if ((Dobj | PrpCnjLem(first(PrpCnjs))==“of”) &amp; Nodetype(Head(SynNode))==“NOUN”) (

     // adds (crystallization;Mods;virus),(announcement;Mods;results)

     if (Dobj) print_lf_tuplesl(seg,Dobj,“Mods”);

     else print_lf_tuplesl(seg,first(PrpCnjs),“Mods”);

     // adds (crystalize;Dobj;virus)

     if (Bases(SynNode)) (

         foreach(base;sublist(Bases(SynNode),(Cat==“Verb”))) (

             if (Lemma(base)==Pred) continue; // the programming of computers is fun;Pred is al
ready “program”

             tempseg=segrec(%%0;);

             Pred(tempseg)=Lemma(base);

             if (Dobj) (

                 if (Anim(Dobj) | Instr(Dobj)) print_lf_tuplesl(tempseg,Dobj,“Dsub”);//people,m
achines,animals;(act;Dsub;committee)

                  else  print_lf_tuplesl(tempseg,Dobj,“Dobj”);        //

                  )

               else  (

                   if (Anim(first(PrpCnjs)) | Instr(first(PrpCnjs)))print_lf_tuplesl(tempseg,first
(PrpCnjs),“Dsub”); // people,machines,animals

                     else print_lf_tuplesl(tempseg,first(PrpCnjs).“Dobj”);//“civilization”not marke
d “Anim”,so ends up a Dobj

                    )

                )

            )

        return;

        )
// are these mutually extlusive,or should all be allowed to fire?
void paraphrase_noun_compound(segrec seg)
(

  // Noun compound expanded as verb-object.

  // Tighter constraints may be necessary to block e.g,grocery store --> store Dobj grocery but n
ot e.g,weapons store/store weapon

  // computer program --> program computer
				
				<dp n="d53"/>
     if (Mods &amp; Nodetype(Head(SynNodel)==“NOUN”&amp; Verb(Lex(SynNode))) (

         print_lf_tuplesl(seg,first(Mods),“Dobj”);

         )

     //

     // Noun compound expanded as possessive N1 1+Geo,+PrprN) N2 -> N2 LocAt N1

     // Texas capital --> program computer

     if (Mods &amp; Geo(Head(SynNode(first(Mods)))) &amp; PrprN(Head(SynNode(first(Mods))))) (

         print_lf_tuplesl(seg, first(Mods),“LocAt”);

         )

     // Noun compound N1 Mods N2 as “N2 of N1” slang dictionary --> dictionary of slang

     if (Mods &amp; Nodetype(Head(SynNode))==“NOUN”) (

         print_lf_tuplesl(seg. first(Mods),“of”);

         )

     return;

     )
void paraphrase_verb_object(segrec seg)
(

     segrec lex_record;

     // Dobj/Mod:program computer vs,computer program

     // N/V Prob constraint blocks paraphrases like:“I eat food”adds”*“food;Mods;eat”

     // To do right,need derivation links,so that e.g.“explore cave”-->“exploration;Mods;cave”,no
t current “explore;Mods;cave”

     // 1/98

     // also need to produce derived nominalizations of verb/object pairs:produce oil --> oil produc
tion,Can′t do that currently

     // because the,gxc doesn′t contain this info. Josephp will produce a special-purpose,gxc conta
ining these links

     if (Dobj) (

         // if Probs for both N and V are available for comparison:I program computers,I code progr
ams. I

         if (Prob(Verb(Lex(SynNode))) >0 &amp; Prob(Noun(Lex(SynNode)))>(Prob(Verb(Lex(SynNode)))))
 print_lf_tuplesl(Dobj,seg,“Mods”);

         // if verbal morphology has ruled out other POS interps,need to go back and lex_get to see
relative Probs of uninflected form

         // I milked the cow. I snared an animal. I loaded the truck.

         else(

             lex_record=lex_get(Pred,0);

             //disp_rec(Noun(lex_record),1,0);disp_newlines(1);

             //disp_rec(Verb(lex_record),1,0);disp_newlines(1):

             if (Prob(Verb(lex_record))>0 &amp; Prob(Noun(lex_record))>(Prob(Verb(lex_record)))) (

                 //display(“Noun Prob greater than Verb for;”);disp_atom(Pred):disp_newlines(1);

                 print_lf_tuplesl(seg,Dobj,“Mods”);

                 )

              )

          )

      //

      // Locative Ptcl+Dobj --> Locn relation between verb and Dobj

      // Who walked on the moon (walk;Dobj;moon) --> (walk;Locn:moon)

      // floated on the river (float;on;river) --> (float:Locn:river)

      if ((Dobj &amp; (Pred(Ptcl) in?set(in on into))) (PrpCn)Lem(first(PrpCnjs)) in?set(in on along be
side near) ) (

           if (Dobj) print_lf_tuplesl(seg,Dobj,“Locn”);

           else print_lf_tuplesl(seg,first(PrpCnjs),“Locn”);

           )

           //

           return;

       )
void paraphrase_reciprocal(segrec seg)
(

       //

       // John kissed Mary / Mary kissed John

       if (Marry &amp; Dsub &amp; Dobj) (

               print_lf_tuplesl(seg,Dobj. “Dsub”);

               print_lf_tuplesl(seg,Dsub. “Dobj”);

           )

       //
//           // X compared to Y/Y compared to X:the sun compared to the moon:X contrasted with Y/Y c
ontrasted with X;
//           // adds (Jupiter:Part;moon,Jupiter:Part;moon) to the existing triple (have;Dsub;Jupiter,
have;Dobj;moon)
//           if (Recip &amp; (Dsub &amp; Lemma(Dsub) ^=“x” (Dobj &amp; Lemma(Dsub)==“x”) &amp; PrpCnjs) (_
//                   if (Dsub &amp; Lemma(Dsub) ^=“x”) print_lf_tuplesl(Dsub,Dobj,“compared_to”);
//                   else print_lf_tuplesl(Dsub,Dobj,“compared_to”);
//                  )

  return:

  )

Claims (44)

1.一种确定第一和第二文本输入之间的相似性的方法,该方法包括:
根据第一文本输入获得第一组逻辑形式;
根据第二文本输入获得第二组逻辑形式;
比较第一和第二组逻辑形式;
根据比较步骤确定第一和第二文本输入之间的相似性。
2.根据权利要求1所述的方法,其特征在于,比较包括:
确定在第一组中的任何逻辑形式是否匹配在第二组中的任何逻辑形式。
3.根据权利要求2所述的方法,其特征在于,确定相似性包括:
根据第一和第二组逻辑形式之间的匹配,分配一个分值以反映第一和第二文本输入之间的相似性。
4.根据权利要求1所述的方法,其特征在于还包括:
根据第一组逻辑形式获得第一组释义逻辑形式。
5.根据权利要求4所述的方法,其特征在于,该比较步骤包括:
把第一组释义逻辑形式与第二组逻辑形式相比较;以及
确定在第一组释义逻辑形式中的任何释义逻辑形式是否匹配在第二组逻辑形式中的任何逻辑形式。
6.根据权利要求5所述的方法,其特征在于包括:
根据第二组逻辑形式获得第二组释义逻辑形式。
7.根据权利要求6所述的方法,其特征在于,比较步骤还包括:
把第一组释义逻辑形式与第二组释义逻辑形式相比较;以及
确定在第一组释义逻辑形式中的任何释义逻辑形式是否匹配在第二组释义逻辑形式中的任何释义逻辑形式。
8.根据权利要求1所述的方法,其特征在于,第一文本输入包括一个信息检索查询,并且第二文本输入包括至少一个根据该查询检索的文档。
9.根据权利要求1所述的方法,其特征在于,第二文本输入包括一个信息检索查询,并且第一文本输入包括至少一个根据该查询检索的文档。
10.根据权利要求5所述的方法,其特征在于,获得第一组逻辑形式包括:
根据该第一文本输入获得原始字和该原始字之间的原始结构。
11.根据权利要求10所述的方法,其特征在于,原始结构关系包括该原始字之间的原始结构关系,并且获得第一组释义逻辑形式包括:
获得包括扩展字的、与该原始字语义相关的、和由原始结构关系所连接的的附加逻辑形式。
12.根据权利要求11所述的方法,其特征在于,原始字包括由原始结构关系所连接的第一原始字和第二原始字,并且获得附加逻辑形式至少包括如下中的一个:
把第一原始字词汇扩展到包括与第一原始字语义相关的第一相关字;
把第二原始字词汇扩展到包括与第二原始字语义相关的第二相关字;
由该原始结构关系把不同的第一和第二相关字相连接,以获得附加逻辑形式。
13.根据权利要求12所述的方法,其特征在于,词汇扩展该第一原始字或词汇扩展该第二原始字包括:
获得第一和第二原始字的同义词。
14.根据权利要求12所述的方法,其特征在于,词汇扩展该第一原始字或词汇扩展该第二原始字包括:
获得第一和第二原始字的上义词。
15.根据权利要求12所述的方法,其特征在于,词汇扩展该第一原始字或词汇扩展该第二原始字包括:
获得第一和第二原始字的下义词。
16.根据权利要求10所述的方法,其特征在于,获得第一组释义逻辑形式包括:
获得与该原始结构关系相关的扩展结构关系;以及
把该原始字与扩展结构关系相连接,以获得释义逻辑形式。
17.根据权利要求16所述的方法,其特征在于,获得第一组逻辑形式还包括:
获得与该原始字语义相关的扩展字;以及
把该扩展字与原始结构关系相连接。
18.根据权利要求17所述的方法,其特征在于,获得第一组释义逻辑形式还包括:
把该扩展字与扩展结构关系相连接。
19.根据权利要求10所述的方法,其特征在于,第一组逻辑形式包括至少一个内容字,并且获得第一组释义逻辑形式包括:
根据该内容字获得第一组摘要逻辑形式。
20.根据权利要求19所述的方法,其特征在于,第一文本输入包括一个文档检索查询,并且获得第一组摘要逻辑形式包括:
在产生第一组摘要逻辑形式之前,根据该查询的结构把该查询识别为一个关键字查询,其中该内容字不被其他内容字所改变。
21.根据权利要求10所述的方法,其特征在于,第二文本输入包括一个文档,并且还包括:
根据第二组逻辑形式获得第二组释义逻辑形式。
22.根据权利要求21所述的方法,其特征在于,获得第二逻辑形式包括:
获得表示该文档的元结构的一组摘要逻辑形式。
23.根据权利要求22所述的方法,其特征在于,该文档的元结构表示该文档的一般主题。
24.根据权利要求23所述的方法,其特征在于,获得表示该文档的元结构包括:
根据对应于该文档的格式信息获得摘要逻辑形式的组。
25.根据权利要求23所述的方法,其特征在于,获得表示该文档的元结构的摘要逻辑形式的组包括:
根据该文档上的句子题目获得摘要逻辑形式的组。
26.根据权利要求23所述的方法,其特征在于,获得表示该文档的元结构的摘要逻辑形式的组包括:
根据该文档上的句子主题获得摘要逻辑形式的组。
27.根据权利要求21所述的方法,其特征在于还包括:
根据该内容字抑制除了第一和第二释义逻辑形式之外的其他逻辑形式。
28.一种响应查询在从文档存储器中检索的文档组中过滤文档的方法,该方法包括:
根据所选的一个查询和在文档组中的文档获得第一组逻辑形式;
根据所选的另一个查询和在文档组中的文档获得第二组逻辑形式;
获得表示至少第一组逻辑形式的释义的第一组释义逻辑形式;以及
根据第一组释义逻辑形式和第二组逻辑形式之间的预定关系过滤文档组中的文档。
29.根据权利要求28所述的方法,其特征在于,该过滤包括:
根据预定关系提供表示文档排列次序的输出。
30.一种响应查询从文档存储器中检索的文档组中过滤文档的方法,该方法包括:
根据选择的一个查询和文档组获得第一组逻辑形式;
根据选择的另一个查询和文档组获得第二组逻辑形式;
抑制在至少第一组逻辑形式中的第一预定类别的逻辑形式,以获得第一抑制的逻辑形式组;以及
根据第一抑制的逻辑形式组和第二组逻辑形式之间的预定关系过滤在文档组中的文档。
31.根据权利要求30所述的方法,其特征在于,该抑制包括:
抑制具有预定结构的逻辑形式。
32.根据权利要求30所述的方法,其特征在于,该抑制包括:
抑制以超过阈值频率级的频率出现的逻辑形式。
33.根据权利要求30所述的方法,其特征在于还包括:
抑制在第二组逻辑形式中的第二预定类别的逻辑形式,该第二预定类别不同于第一预定类别。
34.根据权利要求30所述的方法,其特征在于,该抑制是在获得第一组逻辑形式之前执行的。
35.根据权利要求30所述的方法,其特征在于,该抑制基本上与获得第一组逻辑形式同时执行。
36.根据权利要求30所述的方法,其特征在于,该抑制是在获得第一组逻辑形式之后执行的。
37.一种包括存储于其中的计算机可读数据的计算机可读介质,该计算机可读数据包括:
表示在一个文档组中的文档内容的索引数据;以及
表示在该文档组中每个文档的元结构的一组摘要逻辑形式。
38.根据权利要求37所述的计算机可读介质,其特征在于,每个文档的元结构表示该文档的一般主题。
39.根据权利要求38所述的计算机可读介质,其特征在于,该摘要逻辑形式组是基于对应于每个文档的格式信息的。
40.根据权利要求38所述的计算机可读介质,其特征在于,该摘要逻辑形式基于每个文档中的句子的题目。
41.根据权利要求38所述的计算机可读介质,其特征在于,该组摘要逻辑形式基于每个文档中的句子的主题。
42.一种包括存储于其中的计算机可读指令的计算机可读介质,该指令在由计算机执行时,通过执行如下步骤使得计算机在响应查询从文档存储器中检索的文档组中过滤文档:
根据选择的一个查询和在该文档组中的文档获得第一组逻辑形式;
根据另一个查询和在该文档组中的文档获得第二组逻辑形式;
使用自然语言处理来至少修改第一组逻辑形式以获得第一修改的逻辑形式组;以及
根据第一修改的逻辑形式组与第二组逻辑形式之间的预定关系过滤在文档组中的文档。
43.一种确定在第一和第二文本输入之间的相似性的方法,该方法包括:
根据第一文本输入获得第一组逻辑形式;
根据第二文本输入获得第二组逻辑形式;
抑制在至少第一组逻辑形式中的第一预定类别的逻辑形式,以获得第一抑制的逻辑形式组;以及
通过比较第一抑制的逻辑形式组与第二组逻辑形式,确定第一和第二文本输入之间的相似性。
44.根据权利要求6所述的方法,其特征在于,使用第一释义技术进行获得第一组释义逻辑形式,并且使用不同于第一释义技术的第二释义技术进行获得第二组释义逻辑形式。
CNB988075040A 1997-07-22 1998-07-17 使用自然语言处理技术用于处理文本输入的系统 Expired - Lifetime CN100524294C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/898,652 1997-07-22
US08/898,652 US5933822A (en) 1997-07-22 1997-07-22 Apparatus and methods for an information retrieval system that employs natural language processing of search results to improve overall precision
US09/097,979 US6901399B1 (en) 1997-07-22 1998-06-16 System for processing textual inputs using natural language processing techniques
US09/097,979 1998-06-16

Publications (2)

Publication Number Publication Date
CN1265209A true CN1265209A (zh) 2000-08-30
CN100524294C CN100524294C (zh) 2009-08-05

Family

ID=26793837

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB988075040A Expired - Lifetime CN100524294C (zh) 1997-07-22 1998-07-17 使用自然语言处理技术用于处理文本输入的系统

Country Status (3)

Country Link
EP (1) EP0998714A1 (zh)
CN (1) CN100524294C (zh)
WO (1) WO1999005621A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294764A (zh) * 2012-02-29 2013-09-11 国际商业机器公司 用于从电子文档提取信息的方法和系统
CN105900081A (zh) * 2013-02-19 2016-08-24 谷歌公司 基于自然语言处理的搜索
CN107506047A (zh) * 2010-09-29 2017-12-22 触摸式有限公司 用于向电子设备输入文本的文本预测引擎、系统及方法
CN108829666A (zh) * 2018-05-24 2018-11-16 中山大学 一种基于语义解析和smt求解的阅读理解题求解方法
CN110032726A (zh) * 2018-01-09 2019-07-19 尤菊芳 用于改进句子图表构造和分析的系统和方法
CN111124422A (zh) * 2019-12-25 2020-05-08 成都互诚在线科技有限公司 一种基于抽象语法树的eos智能合约语言转换方法
CN111386686A (zh) * 2017-11-09 2020-07-07 微软技术许可有限责任公司 用于回答与文档相关的查询的机器阅读理解系统
CN116663534A (zh) * 2023-08-02 2023-08-29 中国标准化研究院 一种基于自然语言处理的文本数据统计分析系统及方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE517496C2 (sv) 2000-06-22 2002-06-11 Hapax Information Systems Ab Metod och system för informationsextrahering
JP2004110161A (ja) 2002-09-13 2004-04-08 Fuji Xerox Co Ltd テキスト文比較装置
DE102007056140A1 (de) 2007-11-19 2009-05-20 Deutsche Telekom Ag Verfahren und System zur Informationssuche
RU2722587C9 (ru) * 2019-09-06 2020-09-14 Акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Способ формирования и расформирования текста сообщения в информационных бинарных пакетах прикладного уровня

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8900587A (nl) * 1989-03-10 1990-10-01 Bso Buro Voor Systeemontwikkel Werkwijze voor het bepalen van de semantische verwantheid van lexicale componenten in een tekst.
US5321833A (en) * 1990-08-29 1994-06-14 Gte Laboratories Incorporated Adaptive ranking system for information retrieval
US5724567A (en) * 1994-04-25 1998-03-03 Apple Computer, Inc. System for directing relevance-ranked data objects to computer users
CN1169195A (zh) * 1995-01-23 1997-12-31 英国电讯有限公司 存取信息的方法和/或系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107506047A (zh) * 2010-09-29 2017-12-22 触摸式有限公司 用于向电子设备输入文本的文本预测引擎、系统及方法
CN107506047B (zh) * 2010-09-29 2021-03-26 微软技术许可有限责任公司 用于向电子设备输入文本的文本预测引擎、系统及方法
US9734297B2 (en) 2012-02-29 2017-08-15 International Business Machines Corporation Extraction of information from clinical reports
CN103294764A (zh) * 2012-02-29 2013-09-11 国际商业机器公司 用于从电子文档提取信息的方法和系统
CN103294764B (zh) * 2012-02-29 2016-11-16 国际商业机器公司 用于从电子文档提取信息的方法和系统
CN105900081A (zh) * 2013-02-19 2016-08-24 谷歌公司 基于自然语言处理的搜索
CN111386686A (zh) * 2017-11-09 2020-07-07 微软技术许可有限责任公司 用于回答与文档相关的查询的机器阅读理解系统
US11409749B2 (en) 2017-11-09 2022-08-09 Microsoft Technology Licensing, Llc Machine reading comprehension system for answering queries related to a document
CN111386686B (zh) * 2017-11-09 2022-10-18 微软技术许可有限责任公司 用于回答与文档相关的查询的机器阅读理解系统
CN110032726A (zh) * 2018-01-09 2019-07-19 尤菊芳 用于改进句子图表构造和分析的系统和方法
CN110032726B (zh) * 2018-01-09 2023-11-03 尤菊芳 用于改进句子图表构造和分析的系统和方法
CN108829666A (zh) * 2018-05-24 2018-11-16 中山大学 一种基于语义解析和smt求解的阅读理解题求解方法
CN111124422A (zh) * 2019-12-25 2020-05-08 成都互诚在线科技有限公司 一种基于抽象语法树的eos智能合约语言转换方法
CN111124422B (zh) * 2019-12-25 2023-03-10 成都互诚在线科技有限公司 一种基于抽象语法树的eos智能合约语言转换方法
CN116663534A (zh) * 2023-08-02 2023-08-29 中国标准化研究院 一种基于自然语言处理的文本数据统计分析系统及方法

Also Published As

Publication number Publication date
EP0998714A1 (en) 2000-05-10
WO1999005621A1 (en) 1999-02-04
CN100524294C (zh) 2009-08-05

Similar Documents

Publication Publication Date Title
Medelyan Human-competitive automatic topic indexing
US8131540B2 (en) Method and system for extending keyword searching to syntactically and semantically annotated data
JP4173774B2 (ja) 重み付き編集距離に基づく例文の自動検索用システムおよび方法
US7668887B2 (en) Method, system and software product for locating documents of interest
CN1535433A (zh) 基于分类的可扩展交互式文档检索系统
CN1871597A (zh) 利用一套消歧技术处理文本的系统和方法
CN1625739A (zh) 内容转换方法和装置
CN1669029A (zh) 自文件集合中自动搜寻概念层次结构的方法及系统
CN1942877A (zh) 信息提取系统
CN101044481A (zh) 用于搜索、导航和排名个人网中的文档的方法、系统和计算机程序产品
CN101051311A (zh) 从应用于中心词提取系统的词条中提取中心词的方法
CN1265209A (zh) 使用自然语言处理技术用于处理文本输入的系统
JPH1145267A (ja) 文書検索装置およびその装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
Sobh et al. An optimized dual classification system for Arabic extractive generic text summarization
JP3612769B2 (ja) 情報検索装置および情報検索方法
JP4621680B2 (ja) 定義付けシステムおよび方法
JP5269399B2 (ja) 構造化文書検索装置、方法およびプログラム
JP4212347B2 (ja) 文書検索装置、プログラムおよび記録媒体
WO2019222787A1 (en) A computer implemented method and a computer system for determining a set of citations related to an electronic document edited by a user on a computing device
JP3682915B2 (ja) 自然文マッチング装置、自然文マッチング方法、及び自然文マッチングプログラム
JP2005031950A (ja) 情報検索装置、情報検索方法およびプログラム
Milić-Frayling Text processing and information retrieval
JP7428035B2 (ja) データ検索装置、データ検索方法およびプログラム
JP4368550B2 (ja) 文書検索装置、文書検索方法およびその方法をコンピュータに実行させるプログラム
JP2009059290A (ja) 外国語文書作成支援装置、外国語文書作成支援方法および外国語文書作成支援プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington, USA

Patentee before: Microsoft Corp.

CX01 Expiry of patent term

Granted publication date: 20090805

CX01 Expiry of patent term