CN116420142A - 用于在语义地图的生成中重用数据项指纹的方法和系统 - Google Patents

用于在语义地图的生成中重用数据项指纹的方法和系统 Download PDF

Info

Publication number
CN116420142A
CN116420142A CN202180076564.1A CN202180076564A CN116420142A CN 116420142 A CN116420142 A CN 116420142A CN 202180076564 A CN202180076564 A CN 202180076564A CN 116420142 A CN116420142 A CN 116420142A
Authority
CN
China
Prior art keywords
data
sdr
documents
document
module
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.)
Pending
Application number
CN202180076564.1A
Other languages
English (en)
Inventor
弗朗西斯科·德·苏萨·韦伯
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.)
CEPT SYSTEMS GmbH
Original Assignee
CEPT SYSTEMS GmbH
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
Application filed by CEPT SYSTEMS GmbH filed Critical CEPT SYSTEMS GmbH
Publication of CN116420142A publication Critical patent/CN116420142A/zh
Pending 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/36Creation of semantic tools, e.g. ontology or thesauri
    • 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/35Clustering; Classification
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Collating Specific Patterns (AREA)

Abstract

一种用于使用聚类在第一二维度量空间中的第一数据文档集合内的数据项的分布式表示来生成第二二维度量空间中的分布式表示的聚类的方法,包括:通过参考地图生成器在第一二维度量空间中聚类数据文档集合,生成语义地图。解析器生成在所述数据文档集合中出现的数据项的列举。表示生成器使用关于每个数据项的出现信息生成分布式表示。稀疏化模块接收最大稀疏度水平的识别,并减少分布式表示内的设置二进位的总数。参考地图生成器在第二二维度量空间中聚类从SDR数据库中检索并根据第二至少一个标准选择的SDR集合,生成第二语义地图。

Description

用于在语义地图的生成中重用数据项指纹的方法和系统
背景技术
在传统系统中,自组织地图的使用通常限于按类型聚类数据文档,以及限于预测未见的数据文档将被聚类到何处,或者分析所使用的数据文档收集的聚类结构。这种传统系统通常不提供用于使用所得到的“聚类地图”作为用于数据文档的构成数据项的明确语义定义的“分布式语义投影地图”的功能。此外,传统系统通常使用传统的基于处理器的计算来执行用于使用自组织地图的方法。另外,传统系统不提供用于重用先前生成的数据表示的功能;例如,系统通常选择在生成语义地图时使用数百万数据文档的哪个子集,这迫使在粒度和生成用于数百万数据文档上的数据项的数据表示的实际能力之间做出决定。因此,需要一种在生成后续语义地图时能够生成和重用生成的数据表示的系统。
发明内容
在一个方面,一种用于使用聚类在第一二维度量空间中的第一数据文档集合内的数据项的分布式表示来生成第二二维度量空间中的分布式表示的聚类的方法包括:通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图。所述方法包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联。所述方法包括通过在计算设备上执行的解析器生成在数据文档集合中出现的数据项的列举。所述方法包括通过在计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对。所述方法包括通过表示生成器使用出现信息生成每个数据项的分布式表示。所述方法包括通过在计算设备上执行的稀疏化模块接收最大稀疏度水平的识别。所述方法包括通过稀疏化模块基于最大稀疏度水平来减少每个分布式表示内的设置二进位的总数以生成具有规范填充等级的稀疏分布式表示(SDR)。所述方法包括将各个SDR的每个存储在SDR数据库中。所述方法包括通过在计算设备上执行的参考地图生成器在第二二维度量空间中聚类从SDR数据库检索并根据第二至少一个标准选择的SDR集合,生成第二语义地图。
附图说明
通过参考结合附图进行的以下描述,本公开的前述和其它目的、方面、特征和优点将变得更加明显和更好理解,其中:
图1A是描述用于将数据项映射到稀疏分布式表示的系统的实施例的框图;
图1B是描述用于生成在将数据项映射到稀疏分布式表示中使用的语义地图的系统的一个实施例的框图;
图1C是描述用于为数据文档集合中的数据项生成稀疏分布式表示的系统的一个实施例的框图;
图2是描述用于将数据项映射到稀疏分布式表示的方法的实施例的流程图;
图3是描述用于对使用聚类在语义地图上的数据文档生成的数据项的稀疏分布式表示执行算术运算的系统的一个实施例的框图;
图4是描述用于识别数据项之间的语义相似性的水平的方法的一个实施例的流程图;
图5是描述用于识别用户提供的数据项与数据文档集合内的数据项之间的语义相似性的水平的方法的一个实施例的流程图;
图6A是描述用于扩展被提供用于与全文本搜索系统一起使用的查询的系统的一个实施例的框图;
图6B是描述了用于扩展被提供用于与全文本搜索系统一起使用的查询的方法的一个实施例的流程图;
图6C是描述了用于扩展被提供用于与全文本搜索系统一起使用的查询的方法的一个实施例的流程图;
图7A是描述用于向全文本搜索系统提供基于主题的文档的系统的一个实施例的框图;
图7B是描述用于向全文本搜索系统提供基于主题的文档的方法的一个实施例的流程图;
图8A是描述用于向全文本搜索系统提供与文档相关联的关键词以获得改进的索引的系统的一个实施例的框图;
图8B是描述用于向全文本搜索系统提供与文档相关联的关键词以获得改进的索引的方法的一个实施例的流程图;
图9A是描述用于提供文本文档的搜索功能的系统的一个实施例的框图;
图9B是描述用于提供文本文档的搜索功能的方法的一个实施例的流程图;
图10A是描述在全文本搜索系统内提供用户专业匹配的系统的一个实施例的框图;
图10B是描述在全文本搜索系统内提供用户专业匹配的系统的一个实施例的框图;
图10C是描述用于将用户专业与对用户专业的请求相匹配的方法的一个实施例的流程图;
图10D是描述用于对从全文本搜索系统接收的查询结果进行基于用户简档的语义排序的方法的一个实施例的流程图;
图11A是描述用于提供医疗诊断支持的系统的一个实施例的框图;
图11B是描述用于提供医疗诊断支持的方法的一个实施例的流程图;
图12A-12C是描述结合本文描述的方法和系统有用的计算机的实施例的框图;
图12D是描述在其中多个网络提供数据托管和递送服务的系统的一个实施例的框图;
图13是描述用于生成跨语言稀疏分布式表示的系统的一个实施例的框图;
图14A是描述用于确定跨语言稀疏分布式表示之间的相似性的方法的实施例的流程图;
图14B是描述用于确定跨语言稀疏分布式表示之间的相似性的方法的实施例的流程图;
图15是描述用于识别过滤标准和流式文档集合内的数据项之间的相似性的水平的系统的实施例的框图;
图16是描述用于识别过滤标准和流式文档集合内的数据项之间的相似性的水平的系统的实施例的框图;
图17A是描述用于识别多个二进制向量之间的相似性的水平的系统的实施例的框图;
图17B是描述用于识别多个二进制向量之间的相似性的水平的方法的实施例的流程图;
图18A是描述用于识别多个数据表示之间的相似性的水平的系统的实施例的框图;
图18B是描述用于识别多个数据表示之间的相似性的水平的方法的实施例的流程图;
图19是描述用于在识别多个数据表示之间的相似性的水平中使用的复合数据表示的后期稀疏化的方法的实施例的流程图;以及
图20是描述用于数据项的分形指纹识别的方法的实施例的流程图。
具体实施方式
在一些实施例中,本文描述的方法和系统提供用于识别多个数据表示之间的相似性的水平的功能。在这些实施例的一个中,识别基于多个稀疏分布式表示(SDR)之间的确定距离或任何其它类型的长二进制向量。
现在参考图1A,框图描述了用于将数据项映射到稀疏分布式表示的系统的一个实施例。简要概括来说,系统100包括引擎101、机器102a、数据文档集合104、参考地图生成器106、语义地图108、解析器和预处理模块110、数据项的列举112、表示生成器114、稀疏化模块116、一个或多个稀疏分布式表示(SDR)118、稀疏分布式表示(SDR)数据库120、以及全文本搜索系统122。在一些实施例中,引擎101是指结合图1A-1C和2描述的所有组件和功能。
现在参考图1A,更详细地,系统包括数据文档集合104。在一个实施例中,数据文档集合104中的文档包括文本数据。在另一个实施例中,数据文档集合104中的文档包括物理系统的变量值。在又一实施例中,数据文档集合104中的文档包括患者的医疗记录。在另一个实施例中,数据文档集合104中的文档包括基于化学的信息(例如,DNA序列、蛋白质序列和化学式)。在又一个实施例中,数据文档集合104中的每个文档包括乐谱。数据文档104内的数据项可以是词、数值、医学分析、医学测量和音符。数据项可以是任何类型的字符串(例如,包括一个或多个数字的字符串)。第一数据文档集合104中的数据项可以是与第二数据文档集合104中的数据项不同的语言。在一些实施例中,数据文档集合104包括历史日志数据。如本文所使用的“文档”可以指多个数据项的收集,该多个数据项的每个对应于源自同一系统的系统变量。在一些实施例中,同时对这种文档中的系统变量进行采样。
如上所述,本文中“数据项”的使用包括作为字符串数据的词、作为数值数据的标量值、作为数值数据或类数据的医疗诊断和分析、音符和所有来自相同“系统”的任何类型的变量。“系统”可以是诸如河流、技术设备之类的任何自然的或人工的物理系统,或诸如活细胞或人类生物体之类的生物实体。系统也可以是诸如语言或网络服务器日志数据的“概念系统”。语言可以是诸如英语或汉语的自然语言,或者诸如JAVA或C++程序代码之类的人工语言。如上所述,“数据文档”的使用包括“数据项”的集合。这些数据项可以由底层“系统”的语义相互依赖。如果所有数据项值在同一时刻被采样,则这个分组可以是基于时间的组;例如,来自汽车引擎的测量数据项可以每秒被采样,并被分组到单个数据文档中。这个分组也可以沿着以“系统”本身为特征的逻辑结构来完成,例如在自然语言中,词数据项可以被分组为句子,而在音乐中,对应于音符的数据项可以通过小节来分组。基于这些数据文档,文档向量可以通过上述方法(或根据本领域普通技术人员所理解的其他方法)来生成,以便生成“系统”的语义地图,如将在下面更详细地描述的。使用这个“系统”,可以生成多个语义地图数据项SDR,如将在下面更详细地描述的。下面描述的所有方法和系统可以应用于所有类型的数据项SDR。
在一个实施例中,用户根据至少一个标准选择数据文档集合104。例如,用户可以基于数据文档是否与特定主题相关来选择数据文档以包括在数据文档集合104中。作为另一个示例,数据文档集合104表示在其中将使用系统100的语义全域。在一个实施例中,用户是系统100的人类用户。在另一个实施例中,机器100执行用于选择数据文档集合104中的数据文档的功能。
系统100包括参考地图生成器106。在一个实施例中,参考地图生成器106是自组织地图。在另一个实施例中,参考地图生成器106是生成地形地图。在又一实施例中,参考地图生成器106是弹性地图。在另一个实施例中,参考地图生成器106是神经气体类型地图。在又一个实施例中,参考地图生成器106是任何类型的竞争的、基于学习的、无监督的、降维的、机器学习的方法。在另一个实施例中,参考地图生成器106是可以接收数据文档集合104并且生成二维度量空间的任何计算方法,在所述二维度量空间上是表示来自数据文档集合104的文档的聚类点。在又一个实施例中,参考地图生成器106是访问数据文档集合104以生成二维度量空间的任何计算机程序,在所述二维度量空间上,每个聚类点代表来自数据文档集合104的数据文档。尽管在此通常被描述为填充二维度量空间,但是在一些实施例中,参考地图生成器106填充n维度量空间。在一些实施例中,参考地图生成器106以软件实现。在其他实施例中,参考地图生成器106以硬件实现。
二维度量空间可以被称为语义地图108。语义地图108可以是具有相关联的距离测量的任何向量空间。
在一个实施例中,解析器和预处理模块110生成数据项的列举112。在另一个实施例中,解析器和预处理模块110形成表示生成器114的一部分。在一些实施例中,解析器和预处理模块110至少部分地被实现为软件程序。在其他实施例中,解析器和预处理模块110至少部分地被实现为硬件模块。在其他实施例中,解析器和预处理模块110在机器102上执行。在一些实施例中,解析器和预处理模块110可以专用于一种类型的数据。在其它实施例中,可以为一种类型的数据提供多个解析器和预处理模块110。
在一个实施例中,表示生成器114生成数据项的分布式表示。在一些实施例中,表示生成器114至少部分地被实现为软件程序。在其他实施例中,表示生成器114至少部分地被实现为硬件模块。在其他实施例中,表示生成器114在机器102上执行。
在一个实施例中,稀疏化模块116生成数据项的稀疏分布式表示(SDR)。如本领域普通技术人员将理解的,SDR可以是大数值(二进制)向量。例如,SDR可具有几千个元素。在一些实施例中,通过稀疏化模块116生成的SDR中的每个元素具有特定语义含义。在这些实施例的一个中,通过关联的距离度量来测量,具有相似语义含义的向量元素比语义上不相似的向量元素彼此更接近。
在一个实施例中,表示生成器114提供稀疏化模块116的功能。在另一实施例中,表示生成器114与单独的稀疏化模块116通信。在一些实施例中,稀疏化模块116至少部分地被实现为软件程序。在其他实施例中,稀疏化模块116至少部分地被实现为硬件模块。在其他实施例中,稀疏化模块116在机器102上执行。
在一个实施例中,稀疏分布式表示(SDR)数据库120存储通过表示生成器114生成的稀疏分布式表示118。在另一个实施例中,稀疏分布式表示数据库120存储多个SDR和SDR所表示的数据项。在又一实施例中,SDR数据库120存储与多个SDR相关联的元数据。在另一实施例中,SDR数据库120包括用于识别SDR 118的索引。在又一实施例中,SDR数据库120具有用于识别语义上接近特定SDR 118的数据项的索引。在一个实施例中,作为示例而非限制,SDR数据库120可以存储以下各项中的任何一个或多个:数据项的参考编号、数据项本身、数据项在数据文档集合104中的数据项频率的识别、数据项的简化版本、数据项的SDR118的压缩二进制表示、数据项的一个或若干标签、数据项是否识别位置(例如,“维也纳”)的指示以及数据项是否识别人(例如,“爱因斯坦”)的指示。在另一个实施例中,稀疏分布式表示数据库120可以是任何类型或形式的数据库。
SDR数据库120的示例包括但不限于结构化存储(例如NoSQL类型数据库和BigTable数据库)、由Forest Hill的Apache软件基金会发行的HBase数据库、由纽约的10Gen公司发行的MD,MongoDB数据库、由Apache软件基金会发行的Cassandra数据库以及基于文档的数据库。在其它实施例中,SDR数据库120是兼容ODBC的数据库。例如,SDR数据库120可以作为由位于美国加利福尼亚州雷德伍德的Oracle公司制造的ORACLE数据库来提供。在其它实施例中,SDR数据库120可以是由华盛顿州雷德蒙德的微软公司制造的微软ACCESS数据库或微软SQL服务器数据库。在其它实施例中,SDR数据库120可以是基于开放源数据库的定制设计的数据库,诸如由Oracle公司发行的MYSQL系列的自由可用数据库产品。
现在参考图2,流程图描述了用于将数据项映射到稀疏分布式表示的方法200的一个实施例。简要概括来说,方法200包括通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(202)。方法200包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(204)。方法200包括通过在计算设备上执行的解析器生成在数据文档集合中出现的数据项的列举(206)。方法200包括通过在计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量、(ii)所述数据项在每个数据文档中出现的数量、以及(iii)与所述数据项出现在其中的每个数据文档相关联的所述坐标对(208)。方法200包括通过表示生成器使用出现信息生成分布式表示(210)。方法200包括通过在计算设备上执行的稀疏化模块接收最大稀疏度水平的识别(212)。方法200包括通过稀疏化模块基于最大稀疏度水平来减少分布式表示内的设置二进位的总数以生成具有规范填充等级的稀疏分布式表示(214)。
现在更详细地参照图2,并且结合图1A-1B,方法200包括通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(202)。在一个实施例中,所述至少一个标准指示数据文档集合104中的数据项出现阈值次数。在另一个实施例中,所述至少一个标准指示数据文档集合104中的每个数据文档应当包括关于其所源自的系统的状态的描述性信息。在数据文档的情况下,所述至少一个标准指示每个数据文档应当表达概念性主题(例如,百科全书描述)。在另一个实施例中,所述至少一个标准指示数据文档集合104的特征列表应当均匀地填充期望的信息空间。在另一个实施例中,所述至少一个标准指示数据文档集合104源自相同的系统。在数据文档的情况下,所述至少一个标准指示数据文档全部使用相同的语言。在又一实施例中,所述至少一个标准指示数据文档集合104是自然(例如,人类)语言。在又一个实施例中,所述至少一个标准指示数据文档集合104是计算机语言(例如,任何类型的计算机代码)。在另一个实施例中,所述至少一个标准指示数据文档集合104可以包括任何类型或形式的行话或其他惯用修辞(例如,医学、法律、科学、汽车、军事等)。在另一个实施例中,所述至少一个标准指示数据文档集合104在所述集合中应当具有阈值数量的文档。在一些实施例中,人类用户选择数据文档集合104,并且机器102从人类用户(例如,经由到储存库、目录、文档数据库或存储一个或多个数据文档的其他数据结构的用户接口,未示出)接收所选择的数据文档集合104。
在一个实施例中,机器102预处理数据文档集合104。在一些实施例中,解析器和预处理模块110为机器102提供预处理功能。在另一个实施例中,机器102将数据文档集合104中的每个分割成术语和句子,标准化标点符号,并删除或转换不想要的字符。在又一个实施例中,机器102执行标记模块(未示出)以将一个或多个元信息标签关联到数据文档集合104中的任何数据项或数据项的部分。在另一实施例中,机器102规范化基本概念单元的文本大小,将数据文档集合104中的每个分成大小相等的文本片段。在这个实施例中,当将数据文档集合104分割成片段时,机器102可以应用一个或多个约束。例如,但不限于,约束可以指示数据文档集合104中的文档应当仅包含完整的句子、应当包含固定数量的句子、应当具有有限的数据项计数、应当具有每个文档最小数量的不同名词、以及分割过程应当遵守源自文档作者的自然段落。在一个实施例中,约束的应用是可选的。
在一些实施例中,为了创建更有用的文档向量,系统100提供用于从语义角度识别数据文档集合104中的每个文档的最相关数据项的功能。在这些实施例的一个中,解析器和预处理模块110提供这种功能。在另一实施例中,参考地图生成器106接收一个或多个文档向量,并使用所接收的一个或多个文档向量来生成语义地图108。例如,系统100可以被配置为识别和选择名词(例如,基于在预处理期间分配给文档中的每个数据项的词性标签来识别)。作为另一个示例,可以词干化所选择的名词以聚集在一个主数据项实例之后的所有形态学变型(例如复数和大小写变型)。作为进一步的示例,为所选择的名词计算词频逆文档频率(“tf-idf索引”)统计量,反映给定特定数据文档集104的情况下数据项对于数据文档有多重要;可以基于文档中的数据项计数和数据文档集合104中的数据项计数来计算系数。在一些实施例中,系统100识别每个文档的预定数量的最高tf-idf索引和词干化名词,生成所选名词的聚集完整列表以定义在训练语义地图106中使用的文档向量(例如,并且如本领域普通技术人员所理解的,指示特定数据项是否出现在文档中的向量)。在其他实施例中,用于预处理和向量化数据文档集合104的功能为数据文档集合104中的每个文档生成向量。在这些实施例的一个中,所选名词列表上的每个数据项的识别符和整数表示每个文档。
在一个实施例中,机器102将经预处理的文档提供给全文本搜索系统122。例如,解析器和预处理模块110可以提供这种功能。在另一个实施例中,使用全文本搜索系统122使得能够交互地选择文档。例如,全文本搜索系统122可以提供允许使用例如文字精确匹配来检索包含特定数据项的所有文档或原始文档的片段的功能。在又一实施例中,每个预处理文档(或预处理文档的片段)与以下中的至少一个相关联:文档识别符、片段识别符、文档标题、文档的文本、文档中的数据项的计数、文档的字节长度以及分类识别符。在另一实施例中,并且如将在下面进一步详细讨论的,语义地图坐标对被分配给文档;这样的坐标对可以与全文本搜索系统122中的预处理文档相关联。在这样的实施例中,全文本搜索系统122可以提供用于接收单个或复合数据项以及用于返回包含所接收的数据项的所有匹配文档的坐标对的功能。全文本搜索系统122包括但不限于基于Lucene的系统(例如,由马里兰州森林山Apache软件公司发行的Apache SOLR,以及由荷兰阿姆斯丹Global BV搜索引擎解决方案发行的ELASTICSEARCH),开源系统(由加利福尼亚州圣弗朗西斯科纽约Slashdot MediaDice Holdings公司拥有和运营的狐猴计划通过SourceForge狐猴计划发行的Indri;由Lavtech Com公司发行的MNOGOSEARCH;由Sphinx技术公司发行的Sphinx;由XaPian计划发行的Xapian;由Swish-e非盈利组织发行的Swish-e;由德国康斯坦茨BaseX股份有限公司发行的BaseX;由www.dataparksearch.org发行的Datapark搜索引擎;由Slashdot媒体拥有和运营的SourceForge发行的ApexKB;由挪威奥斯陆Searchdaimon AS发行的Searchdaimon;以及由澳大利亚墨尔本RMIT大学发行的Zettair)以及商业化系统(由加利福尼亚州森尼维耳市惠普(Hewlett-Packard)制造的Autonomy IDOL;由意大利的摩德纳的专家系统S.p.A制造的COGITO产品线;由华盛顿雷德蒙德的微软公司制造的快速搜索&转移(Fast Search&Transfer);由马萨诸塞州牛顿市的Attivio公司制造的ATTIVIO;由加拿大安大略省滑铁卢OpenText公司制造的BRS/搜索;由来自堪萨斯州肖尼美国利盟公司(Lexmark)的感知软件制造的(由Brainware驱动的)感知智能捕获;由维吉尼亚州麦克莱恩市的概念搜索公司(Concept Searching,Inc)制造的任何产品;由加利福尼亚州圣马特奥市的Coveo解决方案公司(Coveo Solutions,Inc)制造的COVEO;由伊利诺伊州芝加哥的Dieselpoint公司制造的Dieselpoint搜索;由马里兰州贝塞斯达dtSearch公司制造的DTSEARCH;由加利福尼亚州雷德伍德滨的甲骨文公司制造的Oracle Endeca信息发现(Oracle Endeca InformationDiscovery);由法国巴黎的达索系统公司(Dassault Systemes)的子公司Exalead制造的产品;由雅虎(Yahoo!)提供的Inktomi搜索引擎;由来自堪萨斯州肖尼的美国利盟公司的感知软件制造的ISYS搜索现在是感知企业搜索(Perceptive Enterprise Search);由英国伦敦的ATTRAQT有限责任公司制造的Locayta现在是ATTRAQT FREESTYLE MERCHANDISING;由加利福尼亚州雷德伍德市的LucidWorks制造的Lucid Imagination现在是LUCIDWORKS;由加利福尼亚州圣卡洛斯MarkLogic公司制造的MARKLOGIC;由奥地利林茨市的Mindbreeze股份有限公司制造的Mindbreeze产品线;由加利福尼亚州圣何塞的奥多比系统(AdobeSystems)公司制造的Omniture现在是Adobe SiteCatalyst;由加拿大安大略省滑铁卢的OpenText公司制造的OpenText产品线;由法国巴黎的Polyspot S.A.制造的Polyspot产品线;由俄亥俄州克利夫兰的Thunderstone软件有限责任公司(Thunderstone SoftwareLLC)制造的Thunderstone产品线以及由纽约州阿蒙克的IBM公司制造的Vivisimo现在是IBM Watson Explorer)。全文本搜索系统在本文中也可以称为企业搜索系统。
在一个实施例中,参考地图生成器106访问数据文档集合104的文档向量,以在二维度量空间上分布每个文档。在另一个实施例中,参考地图生成器106访问预处理后的数据文档集合104,以在二维度量空间上分布表示每个文档的点。在又一个实施例中,所分布的点被聚类。例如,参考地图生成器106可以基于文档的语义内容来计算表示文档的点的位置。所得到的分布代表特定数据文档集合104的语义全域。
在一个实施例中,使用预处理后的数据文档集合104的文档向量来训练参考地图生成器106。在另一个实施例中,(例如,在没有预处理的情况下)使用数据文档集合104的文档向量来训练参考地图生成器106。系统100的用户可以使用相关领域的技术人员所熟知的训练过程来用数据文档集合104训练参考地图生成器106。
在一个实施例中,训练过程产生两个结果。首先,对于数据文档集合104中的每个文档,识别将所述文档定位在语义地图108上的一对坐标;坐标可以存储在全文本搜索系统122内的相应文档条目中。其次,生成权重地图,其允许参考地图生成器106在语义地图108上定位任何新的(未见的)文档向量;在训练参考地图生成器106之后,文档分布可以保持静态。然而,如果初始训练集合足够大和描述性足够,则添加新的训练文档能够扩展词汇。为了避免语义地图的耗时的重新计算,可以通过利用所训练的权重变换新文档的文档向量来将新文档定位在地图上。可以通过分析表示文档的点在语义地图108上的分布来细化和改进预期的语义地图108。如果存在表示不足或过度的主题,则可以相应地修改数据文档集合104,然后可以重新计算语义地图108。
因此,方法200包括通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图。如上所述并且如本领域普通技术人员将理解的,可以应用各种技术来聚类数据文档;例如,但不限于,实现可以利用生成地形地图、生长自组织地图、弹性地图、神经气体、随机映射、潜在语义索引、主分量分析或任何其他基于降维的映射方法。
现在参考图1B,框图描述了用于生成在将数据项映射到稀疏分布式表示中使用的语义地图108的系统的一个实施例。如图1B所示,通过机器102接收的数据文档集合104可以被称为语言定义语料库。在预处理数据文档集合时,文档可以被称为参考地图生成器训练语料库。文档还可以被称为神经网络训练语料库。参考地图生成器106访问参考地图生成器训练语料库以生成数据文档集合所位于的语义地图108作为输出。语义地图108可以提取每个文档的坐标。语义地图108可以向全文本搜索系统122提供坐标。作为非限制性示例,语料库可以包括基于允许其内容和结构的协作修改、扩展或删除的应用(例如,用于内容创建和管理的web应用)的语料库;这种应用可以被称为“Wiki”,并且由加利福尼亚州旧金山的维基媒体基金会(Wikipedia基金会)支持和托管的“维基百科”百科全书项目是这种应用的一个示例。语料库还可以包括任何种类或类型的知识库。
如本领域普通技术人员将理解的,可以使用任何类型或形式的算法,通过例如对输入向量进行聚类以使得相似向量在低维空间上彼此靠近,从而产生拓扑上聚类的低维地图,来将高维向量映射到低维空间(例如,语义地图108)中。在一些实施例中,二次语义地图的大小定义了“语义分辨率”,将利用“语义分辨率”来计算数据项的稀疏分布式表示(SDR)的模式,如将在下面进一步详细讨论的。例如,128的边长对应于每个数据项SDR有16K个特征的描述性。原则上,考虑到存在计算限制,因为较大的参考地图生成器尺寸花费较长的时间来训练,而较大的SDR花费较长的时间来通过任何方式进行比较或处理,所以地图的尺寸可以自由地选择。作为另一个示例,当应用于“通用英语语言”数据文档集合104时,128×128的数据项SDR大小已被证明是有用的。
再次参考图2,方法200包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(204)。如上所述,在填充语义地图108时,参考地图生成器106计算语义地图108上的点的位置,所述点表示数据文档集合104中的文档。语义地图108然后可以提取点的坐标。在一些实施例中,语义地图108将提取的坐标传输到全文本搜索系统122。
现在参考图1C,框图描述了用于为数据文档集合104中的多个数据项中的每个生成稀疏分布式表示的系统的一个实施例。如图1C所示,表示生成器114可以将查询传送到全文本搜索系统122并接收匹配所述查询的一个或多个数据项。表示生成器114可以生成从全文本搜索系统122检索的数据项的稀疏分布式表示。在一些实施例中,使用来自语义地图108的数据来生成多个SDR可以被认为涉及将语义信息“折叠”到所生成的稀疏分布式表示(例如,稀疏填充的向量)中。
返回参考图2,方法200包括通过在计算设备上执行的解析器生成在数据文档的集合中出现的数据项的列举(206)。在一个实施例中,解析器和预处理模块110生成数据项的列举112。在另一个实施例中,解析器和预处理模块110直接访问数据文档集合104以生成数据项的列举112。在又一个实施例中,解析器和预处理模块110访问存储(如上所述)数据文档集合104的预处理版本的全文本搜索系统122。在另一个实施例中,解析器和预处理模块110扩展数据项的列举112,以不仅包括明确包括在数据文档集合104中的数据项,而且包括常见的有用数据项组合;例如,解析器和预处理模块110可以访问从公开可用收集中检索的(诸如“坏天气”或“电子商务”)数据项的频繁组合。
在一个实施例中,解析器和预处理模块110使用例如空格或标点符号来对列举112中的数据项进行定界。在另一实施例中,在列举112中多次出现在不同词性标签下的数据项被视为不同的(例如,如果数据项“fish”用作名词,则它将具有与如果它用作动词不同的SDR,并因此包括两个条目)。在另一实施例中,解析器和预处理模块110向SDR数据库120提供数据项的列举112。在又一实施例中,表示生成器114将访问所存储的数据项的列举112以生成列举112中的每个数据项的SDR。
方法200包括通过在计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对(208)。在一个实施例中,表示生成器114访问全文本搜索系统122以通过语义地图108和解析器与预处理模块110检索存储在全文本搜索系统122中的数据,并使用来自语义地图108的数据生成解析器与预处理模块110所列举的数据项的稀疏分布表示。
在一个实施例中,表示生成器114访问全文本搜索系统122以检索包含特定字符串(例如,词或数字或词和数字的组合)的每个文档的坐标对。表示生成器114可以对所检索的坐标对的数量进行计数,以确定数据项出现在其中的文档的数量。在另一个实施例中,表示生成器114从全文本搜索系统122检索表示包含所述字符串的每个文档的向量。在这样的实施例中,表示生成器114确定向量内的设置二进位的数量(例如,向量内被设置为1的二进位的数量),其指示数据项在特定文档中出现了多少次。表示生成器114可以添加设置二进位的数量以确定出现值。
方法200包括通过表示生成器使用出现信息生成分布式表示(210)。表示生成器114可以使用公知的过程来生成分布式表示。在一些实施例中,分布式表示可以用于确定表示数据文档集合104中的数据项出现在其中的语义上下文的模式;模式中坐标对的空间分布反映了数据项在其上下文中出现的语义区域。表示生成器114可以生成数据项及其分布式表示之间的双向映射。SDR数据库120可以被称为模式词典,系统100可以用所述模式词典基于分布式表示来识别数据项,反之亦然。本领域普通技术人员将理解,通过使用不同的数据文档集合104(例如,基于变化的约束条件,以不同的语言选择不同类型主题的文档),或者源自变化的物理系统、不同的医学分析方法或不同的音乐风格,系统100将生成不同的模式词典。
方法200包括通过在计算设备上执行的稀疏化模块接收最大稀疏度水平的识别(212)。在一个实施例中,人类用户提供最大稀疏度水平的识别。在另一实施例中,将最大稀疏度水平设置为预定义阈值。在一些实施例中,最大稀疏度水平取决于语义地图108的分辨率。在其他实施例中,最大稀疏度水平取决于参考地图生成器106的类型。
方法200包括通过稀疏化模块基于最大稀疏度水平来减少分布式表示内的设置二进位的总数以生成具有规范填充等级的稀疏分布式表示(214)。在一个实施例中,稀疏化模块116通过设置导致最终SDR 118的特定填充等级的计数阈值(例如,使用接收到的最大稀疏度水平的识别)来稀疏化分布式表示。稀疏化模块116因此生成SDR 118,其可以被认为提供数据文档集合104中的数据项的语义含义或语义值的二进制指纹;SDR 118也可以被称为语义指纹。稀疏化模块116将SDR 118存储在SDR数据库120中。
在生成SDR时,系统100用1和0填充向量,例如,如果数据文档使用数据项,则用1填充向量,如果它不使用,则用0填充向量。尽管用户可以接收在地图上示出反映数据项的语义含义的点的SDR的图形表示(所述图形表示被称为SDR、语义指纹或图案),并且尽管此处的描述也可以指点和图案,但是本领域的普通技术人员将理解,参考“点”或“图案”也指SDR向量内的被设置为任何这样的图形表示下的数据结构的设置二进位,这是可任选的。
在一些实施例中,表示生成器114和稀疏化模块116可以将多个数据项组合到单个SDR中。例如,如果短语、句子、段落或数据项的其它组合需要被转换成反映各个SDR的“联合属性”的单个SDR,则系统100可以将每个单独的数据项(通过动态地生成或通过检索先前生成的SDR)转换成其SDR并使用二进制OR运算来从各个SDR形成单个复合SDR。继续这个示例,为复合SDR内的每个位置添加设置二进位的数量。在一个实施例中,稀疏化模块116可以使用阈值按比例地减少设置二进位的总数,从而产生规范的填充等级。在另一实施例中,稀疏化模块116可以应用加权方案来减少设置二进位的总数,这可以包括评估特定设置二进位周围的二进位的数量而不是简单地对SDR中的每个位置的设置二进位的数量进行计数。这种局部性加权方案可能偏爱作为SDR内的聚类的一部分的二进位,因此在语义上比单个孤立二进位(例如,没有设置二进位围绕它们)更重要。
在一些实施例中,本文描述的方法和系统的实现提供了一种系统,所述系统不是简单地生成按照上下文来聚类数据文档集合的地图,而是继续分析地图上表示聚类的数据文档的位置,基于分析来确定哪些数据文档包括特定数据项,并且使用分析来提供针对每个数据文档中的每个数据项的规范。基于从语义地图108检索的数据生成数据项的稀疏分布式表示。数据项的稀疏分布式表示不需要限于在训练其他机器学习方法中使用,而是可以用于确定数据项之间的关系(诸如,例如,确定数据项之间的相似性、对数据项排序、或识别用户先前不知道是相似的数据项以供在各种环境中的搜索和分析中使用)。在一些实施例中,通过使用如本文所述的方法和系统来变换SDR中的任何信息的片段,任何数据项变得(例如,在其语义领域内)“语义上共性的”,并且因此即使不使用任何机器学习、神经网络或皮层算法,也是明确地可比较的和可计算的。
在一些实施例中,所生成的多个SDR可以用于生成附加语义地图。例如,在其中在具有宽范围的数据文档的第一语料库上训练初始语义地图的实施例中,所述多个SDR可以用于避免必须在包含也出现在第一语料库中的数据项的数据文档的第二、更专业的语料库中生成新的文档向量(并稀疏化它们)。例如,但不限于,在数据文档的第一语料库是词典、百科全书、维基百科或其他一般知识文档语料库的情况下,以及在第二语料库包含更专业的文档集合(诸如但不限于,医学、法律、科学或其他专业的文档集合)的情况下,第二语料库中的数据项的至少一个子集可能出现在第一语料库中。使用第一语料库和第二语料库两者所共有的数据项的先前生成的多个SDR可以提高系统的速度和效率,因为先前生成的多个SDR能够在第二语料库的上下文中被重用。通过从第二语料库提取摘录、识别那些摘录中的已经与SDR数据库中的SDR相关联、并依赖于与第二语料库相关的那些SDR,系统可以提供增强的功能。例如,如果第二语料库包含数百万个数据文档,则对先前生成的任何多个SDR的重用将减少重新生成这些SDR的需要,并提高系统处理数百万个数据文档的剩余部分的速度。在系统不得不选择在生成语义地图中使用数百万数据文档的哪个子集的情况下-强制在粒度和在数百万数据文档上生成数据项的多个SDR的实际能力之间的决定-可以重用单独生成的多个SDR的系统-将其在第二语料库中的多个新SDR的生成集中于较不常出现的数据项(例如,集中于生成更多技术术语“弓形体病”而不是“猫”)并提供改进的粒度和效率。因此,如图20所示,在一些实施例中,本文所述的方法和系统可以用于基于先前生成的多个SDR的使用来生成第二语义地图。在一些实施例中,第一水平语义空间可以用于生成第二水平语义空间,并且系统可以提供对第二级语义空间的访问而不提供对第一级语义空间的访问,从而提供从初始语料库生成多个后续语义地图的能力,同时维持隐私和/或限制跨语义地图对初始语料库的访问。
在一些实施例中,至少部分地基于先前生成的多个SDR的使用来生成第二语义地图可以允许仅基于比否则所需的参考收集更小的参考收集来生成语义地图;作为示例,系统可以仅需要生成第二语义地图另外所需的数据的10%。此外,系统可以提供用于识别随后生成的语义地图之间的关联的功能。作为示例,如果第一语义地图是从通用数据项的语料库中生成的,并且第二语义地图是为包括较不常出现的数据项(例如,“弓形体病”)的第二语料库中生成的,并且第三语义地图是为第三语料库(包括具有诸如例如且仅出于说明目的术语“肝炎”的数据项)中生成的,则系统可以识别第二和第三语义地图之间的共性,并且继续以上示例,识别数据项“肝炎”和“弓形虫病”之间的相关性。作为另一示例,在第一语料库是大型搜索收集的情况下,可以在收集内识别新主题,而不丢失第二语义地图的解析或第一语义地图的上下文。
先参考图20,流程图描述了方法的一个实施例,所述方法用于使用聚类在第一二维度量空间中的第一数据文档集合内的数据项的分布式表示来生成在第二二维度量空间中的分布式表示的聚类。方法2000包括通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(2002)。在一个实施例中,如上文结合图2所述发生聚类(202)。方法2000包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(2004)。在一个实施例中,如上文结合图2所述发生关联(204)。方法2000包括通过在计算设备上执行的解析器生成在数据文档集合中出现的数据项的列举(2006)。在一个实施例中,如上文结合图2所述发生生成(206)。方法2000包括通过在计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对(2008)。在一个实施例中,如上文结合图2所述发生确定(208)。方法2000包括通过表示生成器使用出现信息来生成每个数据项的分布式表示(2010)。在一个实施例中,如上文结合图2所述发生生成(210)。方法2000包括通过在计算设备上执行的稀疏化模块接收最大稀疏度水平的识别(2012)。在一个实施例中,如上文结合图2所述发生接收(212)。方法2000包括通过稀疏化模块基于最大稀疏度水平来减少每个分布式表示内的设置二进位的总数以生成具有规范填充等级的稀疏分布式表示(SDR)(2014)。在一个实施例中,如上文结合图2所述发生减少(214)。方法2000包括将每个SDR存储在SDR数据库中(2016)。
方法2000包括通过在计算设备上执行的参考地图生成器在第二二维度量空间中对从SDR数据库中检索并根据第二至少一个标准选择的SDR集合进行聚类,生成第二语义地图(2018)。在一个实施例中,基于从全文本搜索系统接收到多个SDR与第二数据文档集合相关联的指示来选择SDR集合。在另一实施例中,所述方法可以包括向全文本搜索系统提供第二数据文档集合中的至少一个数据文档的至少一个片段;从全文本搜索系统接收包含所提供的片段的数据文档集合中的匹配数据文档的坐标对的列举;以及从SDR数据库中检索与坐标对的列举中的坐标对中的每个相关联的至少一个SDR。在生成了最初由检索到的多个SDR填充的第二语义地图之后,系统可以生成附加项的多个附加SDR并将它们添加到第二语义地图。
现在参考图3,框图描述了用于使用来自语义地图上聚类的数据文档的数据项的稀疏分布式表示来执行操作的系统的一个实施例。在一个实施例中,系统300包括用于确定稀疏分布式表示之间的语义相似性的功能。在另一实施例中,系统300包括用于通过与被转换成SDR的参考数据项进行匹配来确定被转换成多个SDR的数据项的相关性排序的功能。在又一实施例中,系统300包括用于通过与被转换成SDR的参考文本元素进行匹配来确定被转换成多个SDR的数据项的分类的功能。在另一实施例中,系统300包括用于通过与被转换成SDR的参考数据项进行匹配来执行被转换成多个SDR的数据项的主题过滤的功能。在又一实施例中,系统300包括用于从被转换成多个SDR的数据项中执行关键词提取的功能。
简要概括来收,系统300包括多个元件并提供以上结合图1A-1C(在图3中示为引擎101和SDR数据库120)描述的功能。系统300还包括机器102a、机器102b、指纹识别模块302、相似性引擎304、消歧模块306、数据项模块308和表达式引擎310。在一个实施例中,引擎101在机器102a上执行。在另一实施例中,指纹识别模块302、相似性引擎304、消歧模块306、数据项模块308和表达式引擎310在机器102b上执行。
现在参考图3,结合图1A-1C和2,系统300包括指纹识别模块302。在一个实施例中,指纹识别模块302包括以上结合图1A-1C和2描述的表示生成器114和稀疏化模块116。在另一实施例中,指纹识别模块302形成引擎101的一部分。在其他实施例中,指纹识别模块302至少部分地被实现为硬件模块。在其它实施例中,指纹识别模块302至少部分地被实现为软件程序。在其他实施例中,指纹识别模块302在机器102上执行。在一些实施例中,指纹识别模块302执行后制作过程以将数据项SDR实时地(例如,经由本文描述的稀疏化过程)转换成语义指纹,其中SDR不是SDR数据库120的一部分,而是动态地生成的(例如,以从词语义指纹创建文档语义指纹);然而,这样的后制作处理是可选的。在其他实施例中,表示生成器114可以被直接访问以便为在SDR数据库120中还没有SDR的数据项生成稀疏化的SDR;在这样的实施例中,表示生成器114可以自动地调用稀疏化模块116并且自动地生成稀疏化的SDR。术语“SDR”和“指纹”和“语义指纹”在本文中可以互换使用,并且可以用于指由指纹识别模块302生成的SDR和由调用的表示生成器114直接生成的SDR。
系统300包括相似性引擎304。相似性引擎304可以提供用于计算各个SDR之间的距离并确定相似性水平的功能。在其他实施例中,相似性引擎304至少部分地被实现为硬件模块。在其他实施例中,相似性引擎304至少部分地被实现为软件程序。在其他实施例中,相似性引擎304在机器102b上执行。
系统300包括消歧模块306。在一个实施例中,消歧模块306识别在数据项的单个SDR内体现的上下文子空间。因此,消歧模块306可以允许用户更好地理解单个数据项的不同语义上下文。在一些实施例中,消歧模块306至少部分地被实现为硬件模块。在一些实施例中,消歧模块306至少部分地被实现为软件程序。在其他实施例中,消歧模块306在机器102b上执行。
系统300包括数据项模块308。在一个实施例中,数据项模块308提供用于从接收到的数据项集合中识别最具特征的数据项的功能,即,其SDR与所接收的数据项集合的SDR的距离小于阈值距离的数据项,如下面将更详细地讨论的。数据项模块308可以结合或代替以下结合图8A讨论的关键词提取模块802来使用。在一些实施例中,数据项模块308至少部分地被实现为硬件模块。在一些实施例中,数据项模块308至少部分地被实现为软件程序。在其他实施例中,数据项模块308在机器102b上执行。
系统300包括表达式引擎310。在一个实施例中,如将在下面更详细地讨论的,表达式引擎310提供用于评估与来自用户的一个或多个数据项一起接收的布尔运算符的功能。评估布尔运算符为用户提供了请求分析一个或多个数据项或数据项组合的灵活性。在一些实施例中,表达式引擎310至少部分地实现为硬件模块。在一些实施例中,表达式引擎310至少部分地实现为软件程序。在其他实施例中,表达式引擎310在机器102b上执行。
现在参考图4,流程图描述了用于识别数据项之间的相似性水平的方法的一个实施例。简要概括来说,方法400包括通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(402)。方法400包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(404)。方法400包括通过在计算设备上执行的解析器生成在数据文档集合中出现的数据项的列举(406)。方法400包括通过在计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对(408)。方法400包括通过表示生成器使用出现信息生成分布式表示(410)。方法400包括通过在计算设备上执行的稀疏化模块接收最大稀疏度水平的识别(412)。方法400包括通过稀疏化模块基于最大稀疏度水平来减少分布式表示内的设置二进位的总数以生成具有规范填充等级的稀疏分布式表示(SDR)(414)。方法400包括通过在计算设备上执行的相似性引擎确定第一数据项的第一SDR与第二数据项的第二SDR之间的距离(416)。方法400包括通过相似性引擎基于所确定的距离提供第一数据项和第二数据项之间的语义相似性水平的识别(418)。
更详细地参考图4,并结合图1A-1C和2-3,方法400包括通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(402)。在一个实施例中,如上文结合图2所述发生聚类(202)。
方法400包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(404)。在一个实施例中,如上文结合图2所述发生关联(204)。
方法400包括通过在计算设备上执行的解析器生成在数据文档集合中出现的数据项的列举(406)。在一个实施例中,如上文结合图2所述发生生成(206)。
方法400包括通过在计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对(408)。在一个实施例中,如上文结合图2所述发生确定(208)。
方法400包括通过表示生成器使用出现信息生成分布式表示(410)。在一个实施例中,如上文结合图2所述发生生成(210)。
方法400包括通过在计算设备上执行的稀疏化模块接收最大稀疏度水平的识别(412)。在一个实施例中,如上文结合图2所述发生接收(212)。
方法400包括通过稀疏化模块基于最大稀疏度水平来减少分布式表示内的设置二进位的总数以生成具有规范填充等级的稀疏分布式表示(SDR)(414)。在一个实施例中,如上文结合图2所述发生减少(214)。
方法400包括通过在计算设备上执行的相似性引擎确定第一数据项的第一SDR与第二数据项的第二SDR之间的距离(416)。在一个实施例中,相似性引擎304计算至少两个SDR之间的距离。距离测量可以包括但不限于直接重叠、欧几里得距离(例如,以与人类使用尺子测量的类似方式确定SDR中的两点之间的普通距离)、杰卡德距离(Jaccard)距离和余弦相似性。两个SDR之间的距离越小,相似性越大,并且(对于语义折叠的SDR)越高的相似性指示SDR表示的数据元素的越高语义相关性。在一个实施例中,相似性引擎304对在第一SDR和第二SDR两者上被设置的二进位的数量(例如,在其处两个SDR都被设置为1的点)进行计数。在另一实施例中,相似性引擎304识别第一SDR中的第一点(例如,设置为1的任意选择的第一二进位),在第二SDR内找到相同的点,并确定第二SDR中的最接近的设置二进位。通过对于第一SDR中的每个设置二进位确定第二SDR中的最接近的设置二进位是第一SDR中的哪个设置二进位,相似性引擎304能够计算每个点处的距离之和并除以点数来确定总距离。本领域的普通技术人员将理解,可以使用其它机制来确定各个SDR之间的距离。在一些实施例中,相似性不是绝对测量,而是可以根据数据项可能具有的不同上下文而变化。因此,在这些实施例的一个中,相似性引擎304还分析两个SDR之间的重叠的拓扑。例如,重叠的拓扑可以用于将加权函数添加到相似性计算。作为另一个示例,可以使用相似性测量。
方法400包括通过相似性引擎基于所确定的距离提供第一数据项和第二数据项之间的语义相似性水平的识别(418)。相似性引擎304可以确定两个SDR之间的距离超过相似性的最大阈值,因此所表示的数据项不相似。或者,相似性引擎304可以确定两个SDR之间的距离不超过最大阈值,因此所表示的数据项是相似的。相似性引擎304可以基于范围、阈值或其他计算来识别相似性水平。在一个实施例中,因为SDR实际上表示数据项的语义含义(由大量语义特征表示),所以确定两个数据项之间的语义接近度是可能的。
在一些实施例中,系统100提供用户界面(未示出),用户可以利用用户界面输入数据项并接收相似性水平的识别。用户界面可以将这个功能提供给直接访问机器100的用户。或者,用户界面可以向通过计算机网络访问机器100的用户提供这个功能。作为示例而非限制,用户可以将诸如“音乐”和“苹果”的一对数据项输入到用户界面中;相似性引擎304接收数据项,并如上结合图1A-1C和2所描述那样为数据项生成SDR。继续这个示例,相似性引擎304然后可以如上所述比较两个SDR。尽管不是必需的,但相似性引擎304可以经由用户界面向用户提供各个SDR中的每个的图形表示,从而允许用户可视地审阅每个数据项被语义地映射的方式(例如,查看被聚类在语义地图中的点,所述点表示用于训练参考地图生成器106的参考收集中的数据项的使用)。
尽管如上所述,本文描述的方法和系统的一些实施例在使用相关联的出现信息生成数据项的列举中的数据项的分布式表示时应用用于稀疏化的过程,但是在其他实施例中,优选地通过稀疏化模块延迟稀疏化步骤的应用。例如,在某些情形中,诸如当在搜索过程中为更高的准确度水平进行优化时,为一个或多个数据项(例如,特定文档内的数据项)创建复合SDR然后在稍后稀疏化可能是有益的。稀疏化通常涉及移除粒度以有利于能够存储和使用多个较小的SDR(例如,当进行优化以便在不增加等待时间的情况下更快地增长收集时,与语料库大小无关)。然而,当稀疏化时,可能存在数据项的语义含义的各种意义的粒度损失。例如,如果特定语料中的术语“器官”与乐器的关联比与动物的身体的关联更频繁,则一旦(所述语料中)较少使用的语义含义被消除,(再次,在所述语料中,并且对于所述SDR)SDR将仅能够将器官称为乐器;如果消除了数据项的不太常出现的200个语义含义,则在稀疏化之后这些语义含义不可用。因此,在其中搜索的准确度在大小或速度上被优化的实施例中,延迟稀疏化直到稍后的时间点(例如,至少直到针对每个数据项的多个SDR的生成之后),系统可以显著地提高分辨率。这不需要更多的努力,但是需要不同的目标来优化系统。因此,如结合图19所述,在这里描述的方法和系统的一些实现中,系统确定应用后期稀疏化处理。
先参照图19,流程图描述了用于对多个数据项的复合分布式表示进行后期稀疏化的方法的一个实施例,用于识别数据项之间的相似性水平。简要概括来说,方法1900包括通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合聚类,生成语义地图(1902)。方法1900包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1904)。方法1900包括通过在计算设备上执行的解析器生成在数据文档集合中出现的数据项的列举(1906)。方法1900包括通过在计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对(1908)。方法1900包括通过表示生成器使用出现信息为列举中的每个数据项生成分布式表示(1910)。方法1900包括通过表示生成器组合第一数据项的第一分布式表示和第二数据项的第二分布式表示以形成复合分布式表示(1912)。方法1900包括通过表示生成器在复合分布式表示内的每个位置处添加若干设置二进位(1904)。方法1900包括通过在计算设备上执行的稀疏化模块接收最大稀疏度水平的识别(1916)。方法1900包括通过稀疏化模块基于最大稀疏度水平按比例地减少分布式表示内的设置二进位的总数以生成具有规范填充等级的复合稀疏分布式表示(SDR)(1918)。方法1900包括将复合SDR存储在SDR的数据库中(1920)。
更详细地参照图19,并且结合图1A-1C和2-4,方法1900包括通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(1902)。在一个实施例中,如上文结合图2(202)所描述那样发生聚类。
方法1900包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1904)。在一个实施例中,如上文结合图2(204)所描述那样发生关联。
方法1900包括通过在计算设备上执行的解析器生成在数据文档集合中出现的数据项的列举(1906)。在一个实施例中,如上文结合图2(206)所描述那样发生生成。
方法1900包括通过在计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对(1908)。在一个实施例中,如上文结合图2(208)所描述那样发生确定。
方法1900包括通过表示生成器使用出现信息为列举中的每个数据项生成分布式表示(1910)。在一个实施例中,如上文结合图2(210)所描述那样发生生成。
方法1900包括通过表示生成器组合第一数据项的第一分布式表示和第二数据项的第二分布式表示以形成复合分布式表示(1912)。方法1900包括通过表示生成器在复合分布式表示内的每个位置处添加若干设置二进位(1904)。表示生成器可以如上结合图2所述形成复合分布式表示;然而,代替在每个单独的稀疏化的分布式表示的稀疏化之后形成复合分布式表示,组合的分布式表示尚未被稀疏化,从而防止了底层向量中的粒度的损失。作为示例而非限制,系统可以在接收到对相似性水平的识别的请求之后稀疏化复合分布式表示。此时,可以在不损失粒度的情况下进行稀疏化。
方法1900包括通过在计算设备上执行的稀疏化模块接收最大稀疏度水平的识别(1916)。在一个实施例中,如上文结合图2(212)所描述那样发生接收。
方法1900包括通过稀疏化模块基于最大稀疏度水平按比例地减少分布式表示内的设置二进位的总数以生成具有规范填充等级的复合稀疏分布式表示(SDR)(1918)。在一个实施例中,如上文结合图2(214)所描述那样发生减少。方法1900包括将复合SDR存储在SDR的数据库中(1920)。
在一些实施例中,相似性引擎304仅从用户接收一个数据项。现在参考图5,流程图描述了这种方法的一个实施例。简要概括来说,方法500包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(502)。方法500包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(504)。方法500包括通过在第一计算设备上执行的解析器生成在数据文档的集合中出现的数据项的列举(506)。方法500包括通过在第一计算设备上执行的表示生成器为列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对(508)。方法500包括通过表示生成器使用出现信息为列举中的每个数据项生成分布式表示(510)。方法500包括通过在第一计算设备上执行的稀疏化模块接收最大稀疏度水平的识别(512)。方法500包括通过稀疏化模块基于最大稀疏度水平针对每个分布式表示减少分布式表示内的设置二进位的总数以生成具有规范填充等级的稀疏分布式表示(SDR)(514)。方法500包括在SDR数据库中存储所生成的各个SDR中的每个SDR(516)。方法500包括通过在第二计算设备上执行的相似性引擎从第三计算设备接收第一数据项(518)。方法500包括通过相似性引擎确定第一数据项的第一SDR和从SDR数据库中检索的第二数据项的第二SDR之间的距离(520)。方法500包括通过相似性引擎基于所确定的距离向第三计算设备提供第二数据项的识别以及第一数据项与第二数据项之间的语义相似性水平的识别(522)。
在一些实施例中,如上文结合图2(202-214)所描述那样执行(502)-(516)。
方法500包括通过在第二计算设备上执行的相似性引擎从第三计算设备接收第一数据项(518)。在一个实施例中,系统300包括用户界面(未示出),用户可以利用用户界面输入第一数据项。在另一实施例中,指纹识别模块302生成第一数据项的SDR。在又一实施例中,表示生成器114生成SDR。
方法500包括通过相似性引擎确定第一数据项的第一SDR和从SDR数据库中检索的第二数据项的第二SDR之间的距离(520)。在一个实施例中,方法500包括如上结合图4所述确定第一数据项的第一SDR和第二数据项的第二SDR之间的距离(416)。在一些实施例中,相似性引擎304从SDR数据库120中检索第二数据项。在这些实施例的一个中,相似性引擎304检查SDR数据库120中的每个条目,以确定所检索的项与所接收的第一数据项之间是否存在相似性水平。在这些实施例的另一个中,系统300实现当前文本索引技术和文本搜索库,以执行语义指纹(即,SDR)收集的有效索引,并允许相似性引擎304比诸如迭代通过数据库120中的每一项等“蛮力”过程更有效地识别第二数据项的第二SDR。
方法500包括通过相似性引擎基于所确定的距离向第三计算设备提供第二数据项的识别以及第一数据项与第二数据项之间的语义相似性水平的识别(522)。在一个实施例中,相似性引擎304经由用户界面提供识别。在另一实施例中,相似性引擎304基于所确定的距离提供第一数据项和第二数据项之间的语义相似性水平的识别,如上文结合图4所述(418)。在一些实施例中,可以理解,相似性引擎304从SDR数据库中检索第三数据项的第三SDR,并重复确定第一数据项的第一SDR与第三数据项的第三SDR之间的距离和基于所确定的距离来提供第一和第三数据项之间的语义相似性水平的识别的过程。
在这些实施例的一个中,相似性引擎304可以返回与所接收的数据项最相似的其它数据项的列举。作为示例,相似性引擎304可以为所接收的数据项生成SDR 118,然后在SDR数据库120中搜索与SDR 118相似的其它SDR。在其它实施例中,数据项模块308提供这个功能。作为示例而非限制,相似性引擎304(或数据项模块308)可以如上所述将所接收的数据项的SDR 118与SDR数据库120中的多个SDR中的每个SDR进行比较,并返回满足相似性要求(例如,数据项之间的距离落在预定阈值以下)的数据项的列举。在一些实施例中,(与返回数据项本身相反)相似性引擎304返回与特定SDR最相似的SDR。
在一些实施例中,用于接收数据项(其可以被称为关键词)并识别相似数据项的方法如以上结合图2(202-214)所描述那样执行。在一些实施例中,数据项模块308提供这个功能。在这些实施例的一个中,方法包括接收数据项。方法可以包括接收对与所接收的数据项不相同的最相似的数据项的请求。在这些实施例的另一个中,方法包括为所接收的数据项生成第一SDR。在这些实施例的又一个中,方法包括确定第一SDR和SDR数据库120中的每个SDR之间的距离。在这些实施例的又一个中,方法包括提供所列举的数据项的SDR和第一SDR之间的距离降至阈值以下的数据项的列举。或者,方法包括提供每个数据项与所接收的数据项之间的相似性水平高于阈值的数据项的列举。在一些实施例中,用于识别相似数据项的方法提供了用于接收数据项或数据项的SDR并生成按递增距离(例如,欧几里得距离)排序的各个SDR的列举的功能。在这些实施例的一个中,系统100提供用于返回所有上下文数据项,即,所提交的数据项出现在其中的概念空间内的数据项的功能。
数据项模块308可以将相似数据项返回给提供所接收的数据项的用户或者返回给另一模块或引擎(例如,消歧模块306)。
在一些实施例中,系统可以生成相似数据项的列举,并且将列举传输到用于执行查询的系统,所述系统可以是系统300内的系统或第三方搜索系统。例如,用户可以将数据项输入到用于执行查询的用户界面(例如,搜索引擎)中,并且用户界面可以将数据项转发到查询模块601;查询模块601可以自动调用系统的组件(例如,相似性引擎304)来生成相似数据项的列举,并且将数据项提供给用户界面以便作为除了用户的原始查询之外的查询来执行,从而提高用户的搜索结果的全面性。作为另一示例,并且如将结合图6A-6C进一步详细讨论的,系统可生成相似数据项的列举,将数据项直接提供给第三方搜索系统,并且经由用户界面将扩展搜索的结果返回给用户。第三方搜索系统(其在本文中也可被称为企业搜索系统)可以是任何类型或形式;如上文结合全文本搜索系统122所述,各种各样的此类系统是可用的,且可以使用本文所述的方法和系统来增强此类系统。
现在参考图6A,框图描述了用于扩展全文本搜索系统的查询的系统300的一个实施例。简要概括来说,系统300包括多个元件并提供以上结合图1A-1C和图3描述的功能。系统300包括执行查询模块601的机器102d。查询模块601执行查询扩展模块603、排序模块605和查询输入处理模块607。
在一个实施例中,查询模块601接收查询术语,指示所接收的术语的SDR的生成,并指示类似查询术语的识别。在另一个实施例中,查询模块601与通过第三方提供的企业搜索系统通信。例如,查询模块601可以包括一个或多个接口(例如,应用编程接口),利用所述接口与企业搜索系统通信。在一些实施例中,查询模块601至少部分地被实现为软件程序。在其他实施例中,查询模块601至少部分地被实现为硬件模块。在其他实施例中,查询模块601在机器102d上执行。
在一个实施例中,查询输入处理模块607从客户端102c的用户接收查询术语。在另一实施例中,查询输入处理模块607识别查询术语的类型(例如,单个词、词组、句子、段落、文档、SDR或在识别类似术语时要使用的其他表达式)。在一些实施例中,查询输入处理模块607至少部分地被实现为软件程序。在其他实施例中,查询输入处理模块607至少部分地被实现为硬件模块。在其他实施例中,查询输入处理模块607在机器102d上执行。在进一步的实施例中,查询模块601与查询输入处理模块607通信或提供其功能。
在一个实施例中,查询扩展模块603从客户端102c的用户接收查询术语。在另一个实施例中,查询扩展模块603从查询输入处理模块607接收查询术语。在又一实施例中,查询扩展模块603指示用于查询术语的SDR的生成。在另一个实施例中,查询扩展模块603通过相似性引擎304(基于各个SDR之间的距离)指示与查询术语相似的一个或多个术语的识别。在一些实施例中,查询扩展模块603至少部分地被实现为软件程序。在其他实施例中,查询扩展模块603至少部分地被实现为硬件模块。在其他实施例中,查询扩展模块603在机器102d上执行。在进一步的实施例中,查询模块601与查询扩展模块603通信或提供其功能。
现在参考图6B,流程图描述了用于扩展全文本搜索系统的查询的方法600的一个实施例。简要概括来说,方法600包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(602)。方法600包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(604)。方法600包括通过在第一计算设备上执行的解析器生成在数据文档集合中出现的术语的列举(606)。方法600包括通过在第一计算设备上执行的表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(608)。方法600包括通过表示生成器使用每个术语的出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(610)。方法600包括在SDR数据库中存储所生成的各个SDR中的每个SDR(612)。方法600包括通过在第二计算设备上执行的查询扩展模块从第三计算设备接收第一术语(614)。方法600包括通过在第四计算设备上执行的相似性引擎确定第一术语的第一SDR和从SDR数据库中检索的第二术语的第二SDR之间的语义相似性水平(616)。方法600包括通过查询扩展模块使用第一术语和第二术语向全文本搜索系统传输查询,查询用于包含与第一术语和第二术语中的至少一个相似的至少一个术语的文档集合中的每个文档的识别(618)。方法600包括通过查询扩展模块向第三计算设备传输文档集合中的每个文档的识别(620)。
在一些实施例中,如上文结合图2所述(202-214)执行(602)-(612)。
方法600包括通过在第二计算设备上执行的查询扩展模块从第三计算设备接收第一术语(614)。在一个实施例中,查询扩展模块603接收第一数据项,如上文结合图5所述(518)。在另一实施例中,查询输入处理模块607接收第一术语。在又一个实施例中,查询输入处理模块607将第一术语与生成SDR的请求一起传输给指纹识别模块302。在又一实施例中,查询输入处理模块607将第一术语传输到引擎101,以通过表示生成器114生成SDR。
方法600包括通过在第四计算设备上执行的相似性引擎确定第一术语的第一SDR和从SDR数据库中检索的第二术语的第二SDR之间的语义相似性水平(616)。在一个实施例中,相似性引擎304如上文结合图5所述确定语义相似性的水平(520)。
方法600包括通过查询扩展模块使用第一术语和第二术语向全文本搜索系统传输查询,所述查询针对包含与第一术语和第二术语中的至少一个相似的至少一个术语的文档集合中的每个文档的识别(618)。在一些实施例中,相似性引擎304向查询模块601提供第二术语。可以理解,相似性引擎可以提供与第一术语具有超过相似性阈值的相似性水平的多个术语。在其他实施例中,查询模块601可以包括一个或多个应用编程接口,利用所述一个或多个应用编程接口将包括一个或多个搜索术语的查询传输到第三方企业搜索系统。
方法600包括通过查询扩展模块向第三计算设备传输文档集合中的每个传输文档的识别(620)。
现在参考图6C,流程图描述了用于扩展全文本搜索系统的查询的方法650的一个实施例。简要概括来说,方法650包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(652)。方法650包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(654)。方法600包括通过在第一计算设备上执行的解析器生成在数据文档的集合中出现的术语的列举(656)。方法650包括通过在第一计算设备上执行的表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(658)。方法650包括通过表示生成器使用每个术语的出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(660)。方法650包括在SDR数据库中存储所生成的各个SDR中的每个SDR(662)。方法650包括通过在第二计算设备上执行的查询扩展模块从第三计算设备接收第一术语(664)。方法650包括通过在第四计算设备上执行的相似性引擎确定第一术语的第一SDR和从SDR数据库检索的第二术语的第二SDR之间的语义相似性水平(666)。方法650包括通过查询扩展模块向第三计算设备传输第二术语(668)。
在一个实施例中,如上文结合(602-616)所述来执行(652)-(666)。然而,代替直接向企业搜索系统提供通过相似性引擎识别的一个或多个术语,方法650包括通过查询扩展模块向第三计算设备传输第二术语(668)。在这样的方法中,第三计算设备的用户具有在查询被发送到企业搜索系统之前审阅或修改第二术语的能力。在一些实施例中,用户想要对查询的附加控制。在其他实施例中,用户更喜欢自己执行查询。在进一步的实施例中,用户想要在传输查询之前能够修改通过系统识别的术语。在其他实施例中,向用户提供所识别的术语允许系统请求来自用户的关于所识别的术语的反馈。在这些实施例的一个中,例如,用户可以在识别第二术语时对相似性引擎的准确性进行评级。在这些实施例的另一个中,作为示例,用户提供第二术语是用户对其具有兴趣的水平的术语的类型的指示(例如,第二术语是用户当前正在研究或开发专业领域的类型)。
在一些实施例中,用于评估至少一个布尔表达式的方法包括通过表达式引擎310接收至少一个数据项和至少一个布尔运算符。所述方法包括执行以上结合图2描述的功能(202-214)。在一个实施例中,表达式引擎310接收用户使用布尔运算符和括号组合的多个数据项。例如,用户可以提交诸如“jaguar SUB porsche”的短语,并且表达式引擎310将评估所述短语并生成表达式的SDR的修改版本。因此,在另一个实施例中,表达式引擎310为所接收的短语中的第一数据项生成第一SDR 118。在又一实施例中,表达式引擎310识别所接收短语内的布尔运算符(例如,通过确定三数据项短语中的第二数据项是布尔运算符,或者通过将所接收短语中的每个数据项与布尔运算符的列举进行比较以确定数据项是否是布尔运算符)。表达式引擎310评估所识别的布尔运算符以确定如何修改第一数据项。例如,表达式评估器310可以确定接收到的短语中包含布尔运算符“SUB”;表达式引擎310然后可以确定为布尔运算符之后的数据项生成第二SDR(例如,在上述示例短语中的porsche),并通过从第一SDR移除出现在第二SDR中的点来生成第三SDR。第三SDR将是第一数据项的SDR,不包括第二数据项的SDR。类似地,如果表达式引擎310确定布尔运算符是“AND”,则表达式引擎310将通过仅使用第一和第二SDR的公共点来生成第三SDR。因此,表达式引擎310接受使用布尔运算符和括号组合的数据项、复合数据项和SDR,并返回反映公式化表达式的布尔结果的SDR。所得到的经修改的SDR可以被返回给用户或被提供给系统200内的其他引擎(例如,相似性引擎304)。如本领域普通技术人员将理解的,布尔运算符包括但不限于AND、OR、XOR、NOT和SUB。
在一些实施例中,用于识别数据项的多个子上下文的方法包含通过消歧模块306接收数据项。所述方法包括执行以上结合图2描述的功能(202-214)。在一个实施例中,所述方法包括为所接收的数据项生成第一SDR。在另一实施例中,所述方法包括生成具有与第一SDR相似的SDR的数据项的列举;例如,所述方法可以包括向相似性引擎提供第一SDR并请求如上所述的相似SDR的列举。在又一实施例中,所述方法包括分析所列举的SDR中与第一SDR相似但不相等的一个,并从第一SDR中移除也出现在所列举的SDR中的点(例如,设置二进位)(例如,经由二进制减法),以生成经修改的SDR。在另一实施例中,所述方法包括重复移除出现在第一SDR和相似(但不相同)SDR两者中的点的过程,直到所述方法从第一SDR移除了出现在所列举的相似SDR的每个中的所有点。作为示例,在接收到对与数据项“苹果”类似的数据项的请求时,系统可以返回诸如“macintosh”和“iPhone”、“operating system”之类的数据项;如果用户提供表达“apple SUB Macintosh”并从剩余点请求类似的数据项,则系统可返回诸如“fruit”、“plum”、“orange”、“banana”等数据项。继续所述示例,如果用户然后提供表达式“apple SUB Macintosh SUB fruit”并且重复对相似数据项的请求,则系统可以返回诸如“records”、“beatles”和“pop music”的数据项。在一些实施例中,所述方法包括从第一SDR中的最大簇而不是从整个SDR中减去类似SDR的点,从而提供更优化的解决方案。
在一些实施例中,如上所述,数据项可以指除了词之外的项。作为示例,系统300(例如,相似性引擎304)可以生成数字的SDR,将所述SDR与从其它数字生成的参考SDR进行比较,并向用户提供相似数据项的列举。例如,但不限于,系统300(例如,相似性引擎304)可以生成数据项“100.1”的SDR,并确定所述SDR具有与和被诊断为感染触发发热的患者相关联的数据项的SDR相似的模式(例如,在医生或健康护理实体实现本文描述的方法和系统的实施例中,数据项是基于患者的身体特征(诸如体温或任何其他特征)生成的,系统可以存储数据项(100.1)的SDR和数据项的识别之间的关联,作为发热患者的参考数据项)。确定数据项具有相似模式提供了用于识别动态生成的SDR和参考SDR之间的共性的功能,从而使得用户能够更好地理解特定数据项的导入。因此,在一些实施例中,参考SDR与合格的诊断相关联,使得将新患者的SDR概况与诊断模式进行匹配,并从中推导出新患者的可能诊断的嵌合是可能的。在这些实施例的一个中,通过聚集所述潜在诊断的收集,用户可以“看到”点(例如,数据项的语义特征)在哪里重叠和/或匹配。在这样的实施例中,与新患者的SDR模式最相似的诊断是预测的诊断。
作为另一示例,而非限制,数据文档集合104可以包括通过飞机传感器生成的捕获的航班数据的日志(例如,与关于航班的百科全书条目相对);所捕获的数据的日志可以包括字母数字数据项或者可以主要是数字的。在这样的示例中,系统100可以提供用于生成变量(例如,与任何类型的飞行数据相关联的变量)的SDR并将所生成的SDR与参考SDR(例如,用作已知具有特定特性的参考项的数据项的SDR,所述特定特性诸如关于生成数据项的飞行的事实,例如,飞行具有特定的海拔高度水平或诸如过高或过低的海拔高度的特性)进行比较的功能。作为另一示例,系统100可以生成用于“500(度)”的第一SDR并确定所述第一SDR类似于用于“28,000(英尺)”的第二SDR。系统100然后可以确定所述第二SDR是用于指示航班的特性(例如,太高、太低、太快等)的数据项的参考SDR,并由此向以数据项“500”开头的用户提供对所述数据项的导入的理解。
在一些实施例中,提供了一种用于将文档划分成多个部分(在此也称为切片)同时遵守所提交的文本的主题结构的方法。在一个实施例中,数据项模块308接收要被分成主题切片的文档。在另一实施例中,数据项模块308识别文档中具有与第二位置不同的语义指纹的位置,并将文档分成两个切片,一个切片包含第一位置,一个切片包含第二位置。所述方法包括执行以上结合图2描述的功能(202-214)。在一个实施例中,所述方法包括为文档中的每个句子(例如,由句点定界的字符串)生成SDR 118。在另一实施例中,所述方法包括将第一句子的第一SDR 118a与第二句子的第二SDR 118b进行比较。例如,所述方法可以包括将两个SDR发送到相似性引擎304以进行比较。在又一实施例中,所述方法包括当两个SDR之间的距离超过预定阈值时,在第一句子之后将分隔符插入到文档中。在另一实施例中,所述方法包括当两个SDR之间的距离不超过预定阈值时确定不将分隔符插入文档中。在又一实施例中,所述方法包括重复所述第二句子与后续句子之间的比较。在另一个实施例中,所述方法包括在文档中迭代,重复句子之间的比较,直到到达文档的结尾。在又一实施例中,所述方法包括使用插入的分隔符来生成文档的切片(例如,通过第一插入的分隔符向上返回文档的段作为第一切片)。在一些实施例中,具有多个较小切片优于文档,但(例如,通过长度或字计数)任意划分文档可能效率低下或不如基于主题的划分有用。在这些实施例的一个中,通过比较句子的复合SDR,系统300可确定文档的主题在哪里改变,从而创建逻辑分割点。在这些实施例的另一个中,系统300可以提供除了常规索引之外的语义指纹索引。主题切片的进一步示例将在下面结合图7A-7B讨论。
现在参考图7A,并结合图7B,框图描述了用于向全文本搜索系统提供基于主题的文档的系统700的一个实施例。简要概括来说,系统700包括多个元件并提供以上结合图1A-1C和图3描述的功能。系统700还包括主题切片模块702。在一个实施例中,主题切片模块702接收文档,指示所接收文档的SDR的生成,以及指示子文档的生成,在子文档中具有小于相似性阈值水平的句子被置于不同的文档或其他数据结构中。在另一实施例中,主题切片模块702与通过第三方提供的企业搜索系统通信。在一些实施例中,主题切片模块702至少部分地被实现为软件程序。在其他实施例中,主题切片模块702至少部分地被实现为硬件模块。在其他实施例中,主题切片模块702在机器102b上执行。
仍然参考图7A-B,流程图描述了用于向全文本搜索系统提供基于主题的文档的方法750的一个实施例。方法750包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(752)。方法750包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(754)。方法750包括通过在第一计算设备上执行的解析器生成在数据文档集合中出现的术语的列举(756)。方法750包括通过在第一计算设备上执行的表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(758)。方法750包括通过表示生成器使用出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(760)。方法750包括在SDR数据库中存储所生成的各个SDR中的每个SDR(762)。方法750包括通过在第二计算设备上执行的主题切片模块从与企业搜索系统相关联的第三计算设备接收第二文档集合(764)。方法750包括通过表示生成器为第二文档集合中的每个文档集合的每个句子生成复合SDR(766)。方法750包括通过在第二计算设备上执行的相似性引擎确定第一句子的第一复合SDR与第二句子的第二复合SDR之间的距离(768)。方法750包括通过主题切片模块基于所确定的距离来生成包括第一句子的第二文档和包括第二句子的第三文档(770)。方法750包括通过主题切片模块向第三计算设备传输第二文档和第三文档(772)。
在一个实施例中,如上文结合图2(202)-(214)所描述那样执行(752)-(762)。
方法750包括通过在第二计算设备上执行的主题切片模块从与企业搜索系统相关联的第三计算设备接收第二文档集合(764)。在一个实施例中,主题切片模块702接收第二文档集合用于处理以创建第二文档集合的版本,所述版本被优化用于由企业搜索系统进行索引,所述企业搜索系统可以是常规搜索系统。在另一实施例中,主题切片模块702接收第二文档集合用于处理以创建第二文档集合的版本,所述版本被优化用于由系统700提供的搜索系统进行索引,如将在下面结合图9A-9B更详细地描述的。在一些实施例中,所接收的第二文档集合包括一个或多个XML文档。例如,第三计算设备可能已经将一个或多个企业文档转换成XML文档以用于改进的索引。
方法750包括通过表示生成器为第二文档集合的每个文档集合中的每个句子生成复合SDR(766)。如以上结合图2所讨论的,如果短语、句子、段落或数据项的其它组合需要被转换成反映各个SDR的“并集属性”的单个SDR(例如,句子中的每个词的各个SDR的组合),则系统100可以(通过动态地生成或通过检索先前生成的SDR)将每个单独数据项转换成其SDR并使用二进制OR运算来从各个SDR形成单个复合SDR;结果可以通过稀疏化模块116稀疏化。
方法750包括通过在第二计算设备上执行的相似性引擎确定第一句子的第一复合SDR与第二句子的第二复合SDR之间的距离(768)。在一个实施例中,相似性引擎如上文结合图4所述确定距离(416)。
方法750包括通过主题切片模块基于所确定的距离来生成包括第一句子的第二文档和包括第二句子的第三文档(770)。主题切片模块可以确定通过相似性引擎确定的距离超过相似性的阈值,并且第二句子因此涉及与第一句子不同的主题,并且因此应当进入不同的文档(或其他数据结构)。在其它实施例中,(如上文结合图4所描述)相似性引擎基于所确定的距离向主题切片模块702提供第一句子与第二句子之间的相似性水平的识别,且主题切片模块702确定相似性水平不满足相似性阈值水平且确定将第二句子放入不同于第一句子的文档中。相反,在其他实施例中,主题切片模块702判定所确定的距离(和/或相似性水平)满足相似性阈值,并且第一句子和第二句子在主题上相似并且应当一起留在单个文档中。
在又一实施例中,所述方法包括重复所述第二句子与后续句子之间的比较。在另一个实施例中,所述方法包括在文档中迭代,重复句子之间的比较,直到到达文档的结尾。
方法750包括通过主题切片模块向第三计算设备传输第二文档和第三文档(772)。
现在参考图8B,并结合图8A,流程图描述了用于从文本文档中提取关键词的方法850的一个实施例。方法850包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(852)。方法850包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(854)。方法850包括通过在第一计算设备上执行的解析器生成在所述数据文档集合中出现的术语的列举(856)。方法850包括通过在第一计算设备上执行的表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(858)。方法850包括通过表示生成器使用出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(860)。方法850包括在SDR数据库中存储所生成的各个SDR中的每个SDR(862)。方法850包括通过在第二计算设备上执行的关键词提取模块从与全文本搜索系统相关联的第三计算设备接收来自第二文档集合的文档(864)。方法850包括通过表示生成器为所接收的文档中的每个术语生成至少一个SDR(866)。方法850包括通过表示生成器基于所生成的至少一个SDR来生成所接收的文档的复合SDR(868)。方法850包括通过关键词提取模块选择多个术语SDR,当这些术语被复合时,创建与所述文档的复合SDR具有语义相似性水平的复合SDR(870)。方法850包括通过关键词提取模块修改所接收的文档的关键词字段以包括所述多个术语(872)。方法850包含通过关键词提取模块将所修改的文档传输到第三计算设备(874)。
在一个实施例中,如上文结合图2(202)-(214)所描述那样执行(852)-(862)。
在一个实施例中,系统800包括多个元件并提供以上结合图1A-1C和图3描述的功能。系统800还包括关键词提取模块802。在一个实施例中,关键词提取模块802接收文档,指示所接收文档的SDR的生成,识别所接收文档的关键词,并修改所接收文档以包括所识别的关键词。在另一个实施例中,关键词提取模块802与通过第三方提供的企业搜索系统通信。在一些实施例中,关键词提取模块802至少部分地被实现为软件程序。在其他实施例中,关键词提取模块802至少部分地被实现为硬件模块。在其他实施例中,关键词提取模块802在机器102b上执行。
方法850包括通过在第二计算设备上执行的关键词提取模块从与全文本搜索系统相关联的第三计算设备接收来自第二文档集合的文档(864)。在一个实施例中,关键词提取模块802结合主题切片模块702如图7所述接收文档(764)。
方法850包括通过表示生成器为所接收的文档中的每个项生成至少一个SDR(866)。在一个实施例中,关键词提取模块802将接收的文档中的每个术语发送到表示生成器114以生成至少一个SDR。在另一实施例中,关键词提取模块802将接收到的文档中的每个术语发送到指纹识别模块302以生成至少一个SDR。
在一些实施例中,关键词提取模块802将文档与用于为文档中的每个句子生成复合SDR的请求一起传输到指纹识别模块302。在其它实施例中,关键词提取模块802将文档与用于为文档中的每个句子生成复合SDR的请求一起发送到表示生成器114。
方法850包括通过表示生成器基于所生成的至少一个SDR生成所接收的文档的复合SDR(868)。在一个实施例中,关键词提取模块802请求从表示生成器114生成复合SDR。在另一实施例中,关键词提取模块802请求从指纹识别模块302生成复合SDR。
方法850包括通过关键词提取模块选择多个术语SDR,当这些术语被复合时,创建与所述文档的复合SDR具有语义相似性水平的复合SDR(870)。在一个实施例中,关键词提取模块802指示相似性引擎304将所述文档的复合SDR与多个术语的SDR(“术语SDR”)进行比较,并生成所述多个术语与所述文档本身之间的相似性水平的识别。在一些实施例中,关键词提取模块802通过使相似性引擎304迭代术语SDR的组合,生成与文档的复合SDR的比较,并返回文档与每个术语的组合之间的语义相似性水平的列举,来识别满足阈值的多个术语。在这些实施例的另一个中,关键词提取模块302识别多个术语,所述多个术语与文档具有满足阈值的语义相似性水平并且还包含最少可能数量的术语。
方法850包括通过关键词提取模块修改所接收的文档的关键词字段以包括多个术语(872)。如上所述,所接收的文档可以是结构化文档,诸如XML文档,并且可以具有关键词提取模块802可以在其中插入多个术语的段。
方法850包括通过关键词提取模块将所修改的文档传输到第三计算设备(874)。
如上所述,企业搜索系统可以包括传统搜索系统的实现,包括结合上述全文本搜索系统122描述的那些(例如,基于Lucene的系统、诸如Xapian的开源系统、诸如自治IDOL或COGITO的商业系统、以及上面详细列出的其他系统)。术语“企业搜索系统”和“全文本搜索系统”在本文中可以互换使用。图6-8中描述的方法和系统描述了对这种企业系统的增强;即,通过实现这里描述的方法和系统,使这样的企业系统可用的实体可以增强可用的功能性,通过添加关键词、扩展用户的查询项并自动将它们提供给现有系统等,使索引更有效。然而,使得搜索系统对其用户可用的实体可能希望通过完全替换系统或寻求在第一实例中实现改进的搜索系统来进一步增强其现有系统的某些方面。因此,在一些实施例中,提供了一种改进的搜索系统。
现在参考图9A,框图描述了用于实现全文本搜索系统902的系统900的一个实施例。在一个实施例中,系统900包括以上结合图1A-1C、3、6A、7A和8A描述的功能。搜索系统902包括查询模块601,其可以如上结合图6A-6B所描述那样被提供。搜索系统902包括文档指纹索引920;文档指纹索引920可以是SDR数据库120的版本。文档指纹索引920还可以包括元数据(例如,标签)。搜索系统902可以包括文档相似性引擎304b;例如,文档相似性引擎304b可以是相似性引擎304的副本,其随着时间被改进以与搜索系统902一起工作。搜索系统902包括索引器910,其可以作为硬件模块或软件模块来提供。
现在参考图9B,并结合图9A,方法950包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(952)。方法950包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(954)。方法950包括通过在第一计算设备上执行的解析器生成在数据文档集合中出现的术语的列举(956)。方法950包括通过在第一计算设备上执行的表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中出现的数量,以及(iii)与所述术语出现的每个数据文档相关联的坐标对(958)。方法950包括通过表示生成器使用出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(960)。方法950包括在SDR数据库中存储所生成的各个SDR中的每个SDR(962)。方法950包括通过在第二计算设备上执行的全文本搜索系统接收第二文档集合(964)。方法950包括通过表示生成器为第二文档集合中的每个文档生成至少一个SDR(966)。方法950包括通过全文本搜索系统中的索引器将每个生成的SDR存储在文档指纹索引中(968)。方法950包括通过搜索系统中的查询模块从第三计算设备接收至少一个搜索术语(970)。方法950包括通过查询模块查询文档指纹索引,以查询文档指纹索引中具有与所接收的至少一个搜索术语的SDR相似的SDR的至少一个术语(972)。方法950包括通过查询模块向第三计算设备提供查询的结果(974)。
方法950包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(952)。在一些实施例中,选择数据文档集合,并且如上结合图2所描述那样进行聚类(202)。如上文结合图1-2所述,在初始化用于本文所述的方法和系统的系统时,发生训练过程。如上所述,使用至少一个数据文档集合(更具体地,使用所述数据文档集合中的每个数据文档的文档向量)来训练参考地图生成器106。如上所述,文档集合的语义分辨率指的是基于训练数据有多少位置是可用的,这在一些方面反映了训练数据的性质(通俗地说,这可以被称为在地图上有多少“不动产”是可用的)。为了增加语义分辨率,可以使用不同的或附加的训练文档。因此,存在几种不同的方法来训练参考地图生成器106。在一个实施例中,当为每个接收到的术语(例如,企业文档内的术语)生成SDR时,可以使用通用训练语料库;这种方法的一个优点是,语料库可能已经被选择为满足一个或多个训练标准,但是缺点是语料库可能具有或不具有足够的词语来支持专门的企业语料库(例如,包括在专业或实践中具有特定含义的多个术语的高技术语料库)。因此,在另一实施例中,企业文档集合可以用作训练语料库;这种方法的一个优点是用于训练的文档将包括企业内通用的任何高度技术或其它专业术语,但是缺点是企业文档可能不满足培训标准(例如,可能没有足够的文档,它们可能长度或多样性不足等)。在又一实施例中,为了训练的目的,将通用训练语料库和企业语料库进行组合。在又一实施例中,识别并处理特殊的技术文档集合以用作训练语料库;例如,这些文档可以包括关键医疗合同、工程规范或与将被使用的企业文档相关的专业中的其他关键参考材料。作为示例,参考语料库可被处理并用于训练,然后结果引擎101可使用训练的数据库,单独地许可给寻求实现本文描述的方法和系统的企业。这些实施例同样适用于结合图6-8讨论的实施例以及结合图9A-B讨论的实施例。
继续图9B,在一些实施例中,如上文结合图1-2所描述那样执行(954)-(962)。
方法950包括通过在第二计算设备上执行的全文本搜索系统接收第二文档集合(964)。在一个实施例中,第二文档集合包括企业文档(例如,通过寻求实现全文本搜索系统902的企业生成、维护、访问或以其他方式与其相关联的文档)。在另一个实施例中,搜索系统902使得一个或多个企业文档可搜索。为了这样做,搜索系统902索引一个或多个企业文档。在一个实施例中,搜索系统902指示企业文档的预处理(例如,通过使主题切片模块702和/或关键词提取模块802如上结合图7B和8B所述处理文档)。在另一实施例中,搜索系统902基于训练语料库(如以上结合图1-2所描述的)来指示每个文档的SDR的生成。在又一实施例中,在为每个文档生成了SDR之后,搜索系统902启用了搜索过程,其中(例如,通过查询输入处理模块607)接收查询术语,为所述查询术语生成SDR,并将所述查询SDR与索引的多个SDR进行比较。
方法950包括通过表示生成器为第二文档集合中的每个文档生成至少一个SDR(966)。在一个实施例中,搜索系统902包括用于将文档传输到指纹识别模块302以生成至少一个SDR的功能。在另一实施例中,搜索系统902包括用于将文档传输到表示生成器114以生成至少一个SDR的功能。作为示例而非限制,至少一个SDR可以包括文档中的每个术语的SDR、文档的子段(例如,句子或段落)的复合SDR、以及文档本身的复合SDR。
方法950包括通过全文本搜索系统中的索引器将每个生成的SDR存储在文档指纹索引中(968)。在一个实施例中,所生成的SDR被以与如上所述的将SDR存储在SDR数据库120中的方式基本上类似的方式存储在文档指纹索引920中。
方法950包括通过搜索系统中的查询模块从第三计算设备接收至少一个搜索术语(970)。在一个实施例中,如上文结合图6A-6B所描述那样查询模块接收搜索术语。
方法950包括通过查询模块查询文档指纹索引,以查询文档指纹索引中具有与所接收的至少一个搜索术语的SDR相似的SDR的至少一个术语(972)。在一个实施例中,查询模块601查询文档指纹索引920。在系统900包括文档相似性引擎304b的另一实施例中,查询模块601指示文档相似性引擎304b识别文档指纹索引920中的至少一个术语的SDR。在又一实施例中,查询模块601指示在机器102b上执行的相似性引擎304识别术语。在其他实施例中,查询模块601执行如上结合图6A-6B所述的搜索,尽管不是将查询发送到外部企业搜索系统,而是查询模块601将查询发送到系统900内的组件。
方法950包括通过查询模块向第三计算设备提供查询的结果(974)。在存在多于一个结果(例如,多于一个相似术语)的一些实施例中,查询模块601首先对结果进行排序或指示另一模块对结果进行排序。排序可以实现传统的排序技术。或者,排序可包括执行以下结合图11A-B描述的方法。
在一些实施例中,全文本搜索系统902提供用户界面(未示出),用户可以利用所述用户界面提供对查询结果的反馈。在这些实施例的一个中,用户界面包括用户界面元件,用户可以利用所述用户界面元件指定结果是否是有用的。在这些实施例的另一个中,用户界面包括用户界面元件,用户可以利用所述用户界面元件向查询模块601提供指令以使用查询结果中的一个来执行新搜索。在这些实施例的又一个中,用户界面包括用户界面元件,用户可以利用所述用户界面元件指定他们对与多个查询结果中的一个相关的主题感兴趣,并且希望存储查询结果和/或相关主题的识别符以供用户或系统900将来参考。
在一个实施例中,系统可以提供用于监视用户执行的搜索类型并基于对用户提供的搜索术语的多个SDR的分析来开发用户的简档的功能。在这样的实施例中,简档可以识别用户的专业水平并且可以被提供给其他用户。
现在参考图10A和10B,框图描述了用于基于先前的搜索结果将用户专业与对用户专业的请求相匹配的系统的实施例。图10A描述了一个实施例,其中结合传统的全文本搜索系统提供用于开发用户专业简档的功能(例如,用户专业简档模块1010)。图10B描述了其中结合全文本搜索系统902提供用于开发用户专业简档的功能(例如,用户专业简档模块1010)的实施例。图10A-B中描述的每个模块可以作为硬件模块或软件模块提供。
现在参考图10C,流程图描述了基于先前的搜索结果,将用户专业与对用户专业的请求相匹配的方法1050的实施例。方法1050包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(1052)。方法1050包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1054)。方法1050包括通过在第一计算设备上执行的解析器生成在数据文档集合中出现的术语的列举(1056)。方法1050包括通过在第一计算设备上执行的表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(1058)。方法1050包括通过表示生成器使用出现信息生成列举中的每个术语的稀疏分布式表示(SDR)(1060)。方法1050包括将生成的各个SDR的每个SDR存储在SDR数据库中(1062)。方法1050包括通过在第二计算设备上执行的查询模块从第三计算设备接收至少一个术语(1064)。方法1050包括通过在第二计算设备上执行的用户专业简档模块存储第三计算设备的用户的识别符和所述至少一个术语(1066)。方法1050包括通过表示生成器生成所述至少一个术语的SDR(1068)。方法1050包括通过用户专业简档模块从第四计算设备接收第二术语和对与相似术语相关联的用户的识别的请求(1070)。方法1050包括通过相似性引擎识别所述至少一个术语的SDR与第二术语的SDR之间的语义相似性水平(1072)。方法1050包括通过用户专业简档模块向第四计算设备提供第三计算设备的用户的识别符(1074)。
在一个实施例中,如上文结合图2(202)-(214)所描述那样执行(1052)-(1062)。
方法1050包括通过在第二计算设备上执行的查询模块从第三计算设备接收至少一个术语(1064)。在一个实施例中,查询模块601接收所述至少一个术语,并执行如上结合图6A-C和9A-B所述的查询。
方法1050包括通过在第二计算设备上执行的用户专业简档模块存储第三计算设备的用户的识别符和所述至少一个术语(1066)。在一个实施例中,用户简档模块1002从查询输入处理模块607接收用户的识别符和所述至少一个术语。在另一实施例中,用户专业简档模块1010从查询输入处理模块607接收用户的识别符和所述至少一个术语。在又一实施例中,用户专业简档模块1010将用户的识别符和所述至少一个术语存储在数据库中。例如,用户专业简档模块1010将用户的识别符和所述至少一个术语存储在用户专业SDR数据库1012中(例如,利用所述至少一个术语的SDR)。在一些实施例中,所述方法包括记录从用户接收的查询,所述查询具有用于每个查询术语的用户识别符和SDR。在一些实施例中,用户简档模块1002还包括用于接收查询用户指示的搜索结果的识别与查询用户相关或以其他方式与查询用户感兴趣的搜索结果的识别的功能。
方法1050包括通过表示生成器生成所述至少一个术语的SDR(1068)。在一个实施例中,用户专业简档模块1010将所述至少一个数据项传输到指纹识别模块302以生成SDR。在另一实施例中,用户专业简档模块1010将所述至少一个术语发送到表示生成器114以生成SDR。
在一些实施例中,当用户随时间继续进行查询时,用户专业简档模块1010接收多个数据项。在这些实施例的一个中,用户专业简档模块1010指示将第一查询术语的SDR与第二查询术语的SDR组合的复合SDR的生成;所得到的复合SDR更准确地反映了用户所作的查询的类型,以及能够随时间添加到复合SDR的术语SDR越多,复合SDR将更准确地反映用户的专业领域。
方法1050包括通过用户专业简档模块从第四计算设备接收第二术语和对与相似术语相关联的用户的识别的请求(1070)。在一些实施例中,对与相似数据项相关联的用户的识别的请求是显式的。在其他实施例中,用户专业简档模块1010自动地向第四计算设备的用户提供作为服务的识别。作为示例,执行对与用户正在创作的白纸中的查询术语相似的文档的搜索的第四计算设备的用户可以请求(或被提供接收的选项)对已经在与所选择的查询术语相似的主题方面开发了专业的其他用户的识别。作为示例,这个功能允许用户识别已经在特定主题中发展了专业的那些人,而不管所述专业是否是他们的官方标题、工作描述或角色的一部分,使得先前仅基于官方数据或口语或某种类型的人联系难以辨别的信息容易地可用。由于多个专业领域(例如,基于一个或多个查询术语的多个SDR)可以与单个用户相关联,因此关于主要以及次要专业领域的信息是可用的;例如,尽管某种类型的人可能正式地集中于第一研究领域,但是当他们将他们的工作的潜在扩展研究到第二研究领域时,某种类型的人可能在一周的时间内执行一系列查询,并且即使在有限的时间段内获得的专业可能对另一用户有用。作为另一示例,试图基于实际的兴趣领域来构建团队或结构(或重构)组织的某种类型的人可利用用户专业简档模块1010的功能来识别具有与所述某种类型的人的需求相关的专业的用户。
方法1050包括通过相似性引擎识别所述至少一个术语的SDR与第二术语的SDR之间的语义相似性水平(1072)。在一个实施例中,相似性引擎304在第二机器102b上执行。在另一个实施例中,相似性引擎304通过搜索系统902提供并在其中执行。在从用户接收到试图识别具有专业领域的某种类型的人的查询术语之后,用户专业简档模块1010可以指示相似性引擎304从用户专业SDR数据库1012中识别满足所述请求的其他用户。
方法1050包括通过用户专业简档模块向第四计算设备提供第三计算设备的用户的识别符(1074)。
在一些实施例中,本文描述的方法和系统的用户可以提供关于查询术语的偏好的识别。作为示例,寻求对查询术语进行搜索的第一用户可能对与查询术语的法律方面相关的文档感兴趣-例如,在法庭案件、专利申请、出版的许可证或其他法律文档中使用查询术语或类似的术语-而寻求对相同查询术语进行搜索的第二用户可能对与查询术语的科学方面相关的文档感兴趣-例如,在白皮书、研究出版物、授权申请或其他科学文档中使用查询术语或类似的术语。在一些实施例中,这里描述的系统提供了用于识别这样的偏好并根据哪些结果最接近(基于SDR分析)搜索者所偏好的文档类型来对搜索结果进行排序的功能。
返回参考图10A和10B,框图描述了用于基于用户偏好对从企业搜索系统接收的查询结果进行语义排序的系统的实施例。图10A描述了在其中结合来自传统企业搜索系统的结果提供语义排序的功能的实施例。图10B描述了结合来自搜索系统902的结果提供用于语义排序的功能的实施例。
现在参考图10D,流程图描述了用于对从全文本搜索系统接收的查询结果进行基于用户简档的语义排序的方法1080的一个实施例。方法1080包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(1081)。方法1080包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1082)。方法1080包括通过在第一计算设备上执行的解析器生成在数据文档的集合中出现的术语的列举(1083)。方法1080包括通过在第一计算设备上执行的表示生成器针对列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(1084)。方法1080包括通过表示生成器使用出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(1085)。方法1080包括将生成的各个SDR中的每个SDR存储在SDR数据库中(1086)。方法1080包括通过在第二计算设备上执行的查询模块从第三计算设备接收第一术语和多个偏好文档(1087)。方法1080包括通过表示生成器使用所述多个偏好文档生成复合SDR(1088)。方法1080包括通过查询模块向全文本搜索系统传输针对与第一术语相似的结果文档集合中的每个结果文档的识别的查询(1089)。方法1080包括通过表示生成器为结果文档集合中识别的各个文档中的每个生成SDR(1090)。方法1080包括通过相似性引擎确定为结果文档集合中的每个文档生成的每个SDR与复合SDR之间的语义相似性水平(1091)。方法1080包括通过在第二计算设备上执行的排序模块基于所确定的语义相似性水平来修改结果文档集合中的至少一个文档的顺序(1092)。方法1080包括通过查询模块向第三计算设备提供修改后的顺序的结果文档集合中的每个的识别(1093)。
在一个实施例中,如上文结合图2(202)-(214)所描述那样执行(1081)-(1086)。
方法1080包括通过在第二计算设备上执行的查询模块从第三计算设备接收第一术语和多个偏好文档(1087)。在一个实施例中,如上结合图6A-B和9A-B所述查询输入处理模块607接收第一术语。在另一个实施例中,查询输入处理模块607提供用户界面元件(未示出),所述用户界面元件允许第三计算设备的用户提供(例如,上传)一个或多个偏好文档。偏好文档可以是任何类型或形式的数据结构,包括表示搜索用户感兴趣的文档类型的一个或多个数据项。作为示例,科学研究者可以提供反映科学研究者在给定其搜索目标的情况下将考虑相关或优选的文档类型的风格和/或内容的多个研究文档。作为另一个示例,律师可以提供多个法律文档,其反映了律师在给定她的搜索目标的情况下将考虑相关的或优选的文档类型的风格和/或内容。此外,所述系统可以提供允许用户提供具有不同搜索的不同偏好文档集合的功能,允许用户创建用于在不同时间与不同搜索一起使用的不同偏好简档,例如,与将与针对关注于第二、不同主题的科学搜索相关的偏好简档相比,不同的偏好简档可以与针对关注于第一研究主题的科学搜索相关。
方法1080包括通过表示生成器使用所述多个偏好文档生成复合SDR(1088)。在一个实施例中,用户偏好模块1004指示复合SDR的生成。例如,用户偏好模块1004可以将偏好文档发送到指纹识别模块302以生成复合SDR。作为另一示例,用户偏好模块1004可以将偏好文档传输到表示生成器114以生成复合SDR。组合各个偏好文档的SDR的复合SDR可以用与从术语SDR生成各个文档的复合SDR相同的方式来生成。用户偏好模块1004可将所生成的复合SDR存储在用户偏好SDR数据库1006中。
方法1080包括通过查询模块向全文本搜索系统传输针对与第一术语相似的结果文档集合中的每个结果文档的识别的查询(1089)。查询模块601可以将查询传输到外部企业搜索系统,如结合图6A-B所描述的那样。可替换地,查询模块601可以将查询传输到搜索系统902,如上文结合图9A-B所描述的那样。
方法1080包括通过表示生成器为结果文档集合中识别的各个文档中的每个生成SDR(1090)。在一个实施例中,用户偏好模块1004从搜索系统(搜索系统902或第三方企业搜索系统)接收结果文档集合。在另一个实施例中,用户偏好模块1004指示相似性引擎304为各个接收的结果文档中的每个生成SDR。
方法1080包括通过相似性引擎确定为结果文档集合中的每个文档生成的每个SDR与复合SDR之间的语义相似性水平(1091)。在一个实施例中,相似性引擎304在第二机器102b上执行。在另一个实施例中,相似性引擎304通过搜索系统902提供并在其中执行。在一个实施例中,用户偏好模块1004指示相似性引擎304识别相似性水平。在另一实施例中,用户偏好模块1004从相似性引擎304接收相似性水平。
方法1080包括通过在第二计算设备上执行的排序模块基于所确定的语义相似性水平来修改结果文档集合中的至少一个文档的顺序(1092)。在一个实施例中,作为示例而非限制,相似性引擎304可以指示作为第五文档包括在结果文档集合中的结果与前四个文档相比具有与所述多个偏好文档的复合SDR更高的相似性水平。用户偏好模块1004然后可以将第五文档(或第五文档的识别)移动到第一位置。
方法1080包括通过查询模块向第三计算设备提供修改后的顺序的结果文档集合中的每个文档的识别(1093)。在一个实施例中,通过执行与偏好文档相比的搜索结果的分析,系统可以考虑搜索的上下文来个性化搜索结果,以便选择可能对搜索者最重要的搜索结果。作为另一示例,代替返回任意数量的常规排序的结果(例如,前十个或第一页或其他任意数量的结果),系统可以分析数千个文档并且仅提供语义上与搜索者相关的那些文档。
在一些实施例中,疾病的症状可以在非常早的阶段发生在患者中,并且医学专业人员可以识别清楚的医学诊断。然而,在其它实施例中,患者可能仅呈现症状的子集,并且医学诊断还不能清楚地识别;例如,患者可以提供血液样本,从所述血液样本确定十种不同类型的测量的值,并且测量类型中的仅一种具有病理值,而其他九种可能接近阈值水平但是保持在正常值的范围内。在这种情况下,识别清晰的医学诊断可能是具有挑战性的,并且患者可能要经受进一步的测试、额外的监测和延迟的诊断,同时医学专业人员等待查看是否发展了剩余的症状。在这样的示例中,不能做出早期诊断可能导致较慢的治疗和对患者的健康结果的潜在负面影响。本文描述的方法和系统的一些实施例解决了这样的实施例,并且提供了用于支持医疗诊断的功能。
如上所述,本文所描述的系统可以生成并存储数值数据项以及基于文本的项的SDR,并识别为后续接收到的文档生成的SDR与所存储的各个SDR中的一个之间的相似性水平。在一些实施例中,如果接收到的文档与诸如医疗诊断的其他数据或元数据相关联,则系统可以提供数据或元数据的识别(例如,识别与包含数值数据项的文档相关联的医疗诊断)作为识别相似性水平的结果。
现在结合图11A参考图11B,流程图描述了用于提供医疗诊断支持的方法1150的一个实施例。方法1150包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的并且与医学诊断相关联的数据文档集合进行聚类,生成语义地图(1152)。方法1150包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1154)。方法1150包括通过在第一计算设备上执行的解析器生成在数据文档集合中发生的测量的列举(1156)。方法1150包括通过在第一计算设备上执行的表示生成器针对列举中的每个测量确定出现信息,所述出现信息包括:(i)所述测量出现在其中的数据文档的数量,(ii)所述测量在每个数据文档中出现的数量,以及(iii)与所述测量出现在其中的每个数据文档相关联的坐标对(1158)。方法1150包括通过表示生成器使用出现信息为列举中的每个测量生成稀疏分布式表示(SDR)(1160)。方法1150包括在SDR数据库中存储所生成的各个SDR的每个SDR(1162)。方法1150包括通过在第二计算设备上执行的诊断支持模块从第三计算设备接收包括多个测量的文档,所述文档与医学患者相关联(1164)。方法1150包括通过表示生成器为所述多个测量生成至少一个SDR(1166)。方法1150包括通过表示生成器基于为所述多个测量生成的至少一个SDR生成文档的复合SDR(1168)。方法1150包括通过在第二计算设备上执行的相似性引擎确定为文档生成的复合SDR和从SDR数据库中检索的SDR之间的语义相似性水平(1170)。方法1150包括基于所确定的语义相似性水平,通过诊断支持模块向第三计算设备提供与从SDR数据库中检索的SDR相关联的医学诊断的识别(1172)。
方法1150包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的并且与医学诊断相关联的数据文档集合进行聚类,生成语义地图(1152)。在一个实施例中,如上结合图2所描述那样发生聚类。在一些实施例中,文档集合中的每个文档包括多个数据项,如上所述。然而,在这些实施例的一个中,所述多个数据项是在一个时间点从一个样本(例如,来自医疗患者的血液样本)取得的实验室值集合;作为示例,文档中的所述多个数据项可以被提供为逗号分隔的值的列表。作为一个示例,系统可以接收500个文档,每个文档用于500个患者中的每个,并且每个文档可以包含5个测量(例如,从每个患者提供的单个血液样本导出的测量类型的5个值)并且与医疗诊断相关联。系统可以使用测量结果作为数据项来生成如上结合图2所述的文档向量。在一个实施例中,图11A中的系统包括结合图1A-C和图3描述的功能。然而,图11A中的系统可以具有不同的解析器110(被示为实验室文档解析器和预处理模块110b),其被优化用于解析包含实验室值的文档,并且所述系统可以包括分箱模块150,用于优化在数据文档集合中发生的测量的列举的生成,如将在下面更详细地讨论的。
方法1150包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1154)。在一个实施例中,语义地图108的生成和文档向量到语义地图108上的分布以及坐标对的关联如上结合图2所描述那样发生。作为示例而非限制,语义地图108中的每个点可以表示包含一种类型的测量的实验室值的一个或多个文档,所述一种类型的测量诸如但不限于从代谢小组(例如,每升钙)识别的任何类型的测量。尽管本文包括的某些示例涉及从血液测试导出的实验室值,但是本领域普通技术人员将理解,与医学诊断相关联的任何类型的医学数据可以与本文描述的方法和系统一起使用。
方法1150包括通过在第一计算设备上执行的解析器生成在数据文档集合中发生的测量的列举(1156)。在一个实施例中,如上结合图2所描述那样列举测量。然而,在一些实施例中,系统包括分箱模块150,其提供生成列举的优化过程。每个接收到的文档可以包含多个值,每个值识别一种类型的测量的值。例如,文档可以包含血液中钙水平的值—所述值是文档中的数字,而“钙”是测量的类型。然而,每种类型的值可以从一个文档到另一个文档而变化。例如,但不限于,在500篇文档的集合中,“钙”类型测量值的范围可为0.0至5.2mg/升。在处理基于文本的文档时,如果多个文档各自包含一个词,则所述词在每个文档中是相同的—例如,如果两个文档包含词“quick”,则形成所述词“quick”的文本在每个文档中是相同的。相反,当处理实验室值时,两个文档可以各自包含相同类型的测量(例如,“钙”类型测量或“葡萄糖”类型测量)的值,但是具有非常不同的值(例如,0.1和5.2),其中的每个是测量类型的有效值。因此,为了优化系统,系统可以识别包括在文档集合中的每种类型的测量的值的范围,并且向用户提供用于将范围基本上均匀地分布到子组中的功能;这种过程可以被称为分箱。执行分箱确保了箱中的测量之间的显著量的重叠。作为示例,系统可以指示在文档集合中存在5000个“钙”类型测量的值,指示值的范围是从0.01-5.2,并且向用户提供指定如何分配值的选项。例如,用户可以指定从0.01-0.3的值应该被分组到第一子分割(在此也称为“箱”),从0.3-3.1的值应被分组到第二子分割,并且从3.1-5.2的值应被分组到第三子分割。然后,系统可以列举5000个值中的多少值落入三个箱的每个中,并且所述出现信息可以用于生成每个值的SDR。分箱模块150可以提供这种功能。
方法1150包括通过在第一计算设备上执行的表示生成器针对列举中的每个测量确定出现信息,所述出现信息包括:(i)所述测量出现在其中的数据文档的数量,(ii)所述测量出现在每个数据文档中的数量,以及(iii)与所述测量出现在其中的每个数据文档相关联的坐标对(1158)。在一个实施例中,出现信息是如上结合图2所述的信息。
方法1150包括通过表示生成器使用出现信息为列举中的每个测量生成稀疏分布式表示(SDR)(1160)。在一个实施例中,如上结合图2所描述那样生成SDR。
方法1150包括在SDR数据库中存储所生成的各个SDR的每个SDR(1162)。在一个实施例中,如上结合图2所描述那样,将所生成的各个SDR存储在SDR数据库120中。
方法1150包括通过在第二计算设备上执行的诊断支持模块从第三计算设备接收包括多个测量的文档,所述文档与医学患者相关联(1164)。在一个实施例中,诊断支持模块1100从客户端102c接收文档。
方法1150包括通过表示生成器为所述多个测量生成至少一个SDR(1166)。在一个实施例中,如上结合图1-3所描述那样,诊断支持模块1100指示指纹识别模块302生成SDR。在一个实施例中,如上结合图1-3所描述那样,诊断支持模块1100指示表示生成器114生成SDR。
方法1150包括通过表示生成器基于为所述多个测量生成的所述至少一个SDR生成文档的复合SDR(1168)。在一个实施例中,如上结合图1-3所描述那样,诊断支持模块1100指示指纹识别模块302生成复合SDR。在一个实施例中,如上结合图1-3所描述那样,诊断支持模块1100指示表示生成器114生成复合SDR。
方法1150包括通过在第二计算设备上执行的相似性引擎确定为文档生成的复合SDR和从SDR数据库中检索到的SDR之间的语义相似性水平(1170)。在一个实施例中,如上文结合图3-5所描述那样,诊断支持模块1100指示相似性引擎304确定语义相似性的水平。
方法1150包括基于所确定的语义相似性水平,通过诊断支持模块向第三计算设备提供与从SDR数据库中检索的SDR相关联的医学诊断的识别(1172)。这种系统即使在个体测量还没有达到病理水平时也能够检测接近的医学诊断。通过馈送多个SDR并分析它们之间的模式,系统能够识别患者模式的改变,从而甚至捕捉动态过程。例如,癌症前检测系统将识别某些值的小变化,但是通过具有将所述模式与其他患者的SDR进行比较的能力,并且分析基于时间的序列,能够识别医疗诊断。
在一个实施例中,诊断支持模块1100可以指示甚至是不完整参数向量的SDR的生成-例如在诊断支持模块1100接收文档中的多个测量但所述多个测量缺少与诊断相关的类型的测量的情形中-而不使结果降级。例如,如上所述,可以进行两个SDR之间的比较,并且识别相似性水平,即使SDR不相同,所述相似性水平也可以满足相似性阈值级别;因此,即使为具有不完整的测量集合的文档生成的SDR缺失一点或两点(例如,语义地图108上的更完整的文档将在其处具有测量的值的地方),仍能够与所存储的SDR进行比较。在这样的实施例中,诊断支持模块1100能够识别与医疗诊断相关但未接收到值的至少一个参数,并且推荐提供所述值(例如,推荐针对缺失参数的后续过程或分析)。
在一些实施例中,除了医疗诊断之外,所接收的文档可以包括与元数据的关联。例如,文档还可以与患者性别的识别相关联。这种元数据可用于提供两个SDR和所识别的医疗诊断之间的相似性水平的确认。作为示例,诊断支持模块1100可以确定两个SDR是相似的,并识别与从中生成各个SDR中的一个的文档相关联的医疗诊断;诊断支持模块1100然后可以应用基于元数据的规则以确认医学诊断的识别的准确性。作为示例而非限制,规则可以指定如果元数据指示患者是男性并且所识别的医学诊断指示存在卵巢癌的危险,则诊断支持模块1100应当改为报告错误(因为男性没有卵巢并且不能患卵巢癌),而不是向客户端102c的用户提供所识别的医学诊断。
向前参考图13、14A和14B,图描述了用于生成和使用跨语言稀疏分布式表示的方法和系统的各种实施例。在一些实施例中,系统1300可以接收文档集合中的一些或全部从第一语言到第二语言的翻译,并且翻译可以用于识别从翻译文档的语料库生成的第二SDR数据库中的对应SDR。简要概括来说,系统1300包括引擎101,其包括第二表示生成器114b、第二解析器和预处理模块110c、翻译的数据文档集合104b、第二全文本搜索系统122b、第二数据项的列举112b、以及第二SDR数据库120b。引擎101可以是如上结合图1A所述的引擎101。
在图14A的简要概括中,方法1400包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对第一语言的数据文档集合进行聚类,生成语义地图,所述数据文档集合是根据至少一个标准选择的(1402)。方法1400包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1404)。方法1400包括通过在第一计算设备上执行的第一解析器生成在数据文档的集合中出现的术语的列举(1406)。方法1400包括通过在第一计算设备上执行的第一表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(1408)。方法1400包括通过第一表示生成器使用出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(1410)。方法1400包括通过第一表示生成器将所生成的多个SDR中的每个SDR存储在第一SDR数据库中(1412)。方法1400包括通过参考地图生成器接收数据文档集合中的每个数据文档到第二语言的翻译(1414)。方法1400包括通过语义地图将来自数据文档集合中的每个数据文档的坐标对与经翻译的数据文档集合中的每个数据文档对应文档相关联(1416)。方法1400包括通过第二解析器生成在翻译的数据文档集合中出现的术语的第二列举(1418)。方法1400包括通过第二表示生成器基于经翻译的数据文档集合为第二列举中的每个术语确定所述出现信息,所述出现信息包括:(i)所述术语出现在其中的经翻译的数据文档的数量,(ii)所述术语在每个经翻译的数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个经翻译的数据文档相关联的坐标对(1420)。方法1400包括通过第二表示生成器基于经翻译的数据文档集合为第二列举中的每个术语生成SDR(1422)。方法1400包括通过第二表示生成器将为第二列举中的每个术语生成的多个SDR中的每个SDR存储在第二SDR数据库中。方法1400包括通过第一表示生成器生成第一语言的第一文档的第一SDR(1426)。方法1400包括通过第二表示生成器生成第二语言的第二文档的第二SDR(1428)。方法1400包括确定第一SDR和第二SDR之间的距离(1430)。方法1400包括提供第一文档和第二文档之间的相似性水平的识别(1432)。
在一个实施例中,如上文结合图2(202-214)所描述那样来执行(1402)-(1412)。
方法1400包括通过参考地图生成器接收数据文档集合中的每个数据文档到第二语言的翻译(1414)。在一个实施例中,通过机器102a执行的翻译过程将翻译提供给参考地图生成器106。在另一实施例中,人类翻译者将翻译提供给引擎101。在又一个实施例中,机器翻译过程向引擎101提供翻译;机器翻译过程可以由第三方提供,并且可以直接或通过网络向引擎101提供翻译。在又一实施例中,系统1300的用户将翻译上传到机器102a。
方法1400包括通过语义地图将来自数据文档集合中的每个数据文档的坐标对与经翻译的数据文档集合中的每个对应文档相关联(1416)。在一个实施例中,语义地图108执行关联。在另一个实施例中,如上文结合图2(204)所描述那样执行关联。
方法1400包括通过第二解析器生成在经翻译的数据文档集合中出现的术语的第二列举(1418)。在一个实施例中,如上文结合图2(206)所描述那样执行生成。在另一个实施例中,第二解析器配置成(例如,包括配置文档)优化第二解析器110c,以便解析第二语言的文档。
方法1400包括通过第二表示生成器基于翻译的数据文档集合为第二列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的经翻译的数据文档的数量,(ii)所述术语在每个经翻译的数据文档中出现的数量,以及(iii)与所述术语出现在其中的每个经翻译的数据文档相关联的坐标对(1420)。在一个实施例中,如上文结合图2(208)所描述那样执行出现信息的确定。
方法1400包括通过第二表示生成器基于经翻译的数据文档集合为第二列举中的每个术语生成SDR(1422)。在一个实施例中,如上文结合图2(210-214)所描述那样执行术语SDR的生成。
方法1400包括通过第二表示生成器将为第二列举中的每个术语生成的多个SDR中的每个SDR存储在第二SDR数据库中(1424)。在一个实施例中,如上结合图1A所描述那样,执行在第二数据库中对SDR的存储。
方法1400包括通过第一表示生成器生成第一语言的第一文档的第一SDR(1426)。在一个实施例中,如上结合图2所描述那样执行第一SDR的生成。
方法1400包括由第二表示生成器生成第二语言的第二文档的第二SDR(1428)。在一个实施例中,如上结合图2所描述那样执行第二SDR的生成。
方法1400包括确定第一SDR和第二SDR之间的距离(1430)。方法1400包括提供第一文档和第二文档之间的相似性水平的识别(1432)。在一个实施例中,如上文结合图3-4所描述那样执行(1430)-(1432)。
在一个实施例中,本文描述的方法和系统可以用于提供翻译系统的质量的测量。例如,翻译系统可以将文本从第一语言翻译成第二语言,并且第一语言的文本和第二语言的翻译两者都可以被提供给本文描述的系统;如果系统确定第一语言的文本的SDR类似于(第二语言的)经翻译的文本的SDR(例如,超过类似性的阈值水平),则可以说翻译具有高质量的水平。继续所述示例,如果第一语言的文本的SDR与(第二语言的)经翻译的文本的SDR不充分相似(例如,不超过预定的相似性阈值水平),则可以认为翻译具有低质量的水平。
现在参考图14B,并结合图13和14A,流程图描述了方法1450的一个实施例。简要概述图14B,方法1450包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对第一语言的数据文档集合进行聚类,生成语义地图,所述数据文档集合是根据至少一个标准选择的(1452)。方法1450包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1454)。方法1450包括通过在第一计算设备上执行的第一解析器生成在数据文档的集合中出现的术语的列举(1456)。方法1450包括通过在第一计算设备上执行的第一表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中的出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(1458)。方法1450包括通过第一表示生成器使用出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(1460)。方法1450包括通过第一表示生成器将所生成的多个SDR中的每个SDR存储在第一SDR数据库中(1462)。方法1450包括通过参考地图生成器接收数据文档集合中的每个数据文档到第二语言的翻译(1464)。方法1450包括通过语义地图将来自数据文档集合中的每个数据文档的坐标对与翻译的多个数据文档中的每个数据文档相关联(1466)。方法1450包括通过第二解析器生成在经翻译的数据文档集合中出现的术语的第二列举(1468)。方法1450包括通过第二表示生成器基于经翻译的数据文档集合为第二列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的经翻译的数据文档的数量,(ii)所述术语在每个经翻译的数据文档中的出现的数量,以及(iii)与所述术语出现在其中的每个经翻译的数据文档相关联的坐标对(1470)。方法1450包括通过第二表示生成器基于经翻译的数据文档集合为第二列举中的每个术语生成SDR(1472)。方法1450包括通过第二表示生成器将为第二列举中的每个术语生成的多个SDR中的每个SDR存储在第二SDR数据库中(1474)。方法1450包括通过第一表示生成器生成以第一语言接收的第一术语的第一SDR(1476)。方法1450包括确定第一SDR和第二语言中的第二术语的第二SDR之间的距离,第二SDR是从第二SDR数据库中检索的(1478)。方法1450包括基于所确定的距离提供第二语言中的第二术语的识别以及第一术语和第二术语之间的相似性水平的识别(1480)。
在一个实施例中,如上结合图14A(1402)-(1424)所描述那样执行(1452)-(1474)。
方法1450包括通过第一表示生成器生成以第一语言接收的第一术语的第一SDR(1476)。在一个实施例中,如上结合图2所描述那样执行第一SDR的生成。
方法1450包括确定第一SDR和第二语言中的第二术语的第二SDR之间的距离,第二SDR是从第二SDR数据库中检索的(1478)。方法1450包括基于所确定的距离提供第二语言中的第二术语的识别以及第一术语和第二术语之间的相似性水平的识别(1480)。在一个实施例中,如上文结合图3到图4所描述那样执行(1478)-(1480)。
在另一实施例中,本文描述的方法和系统可以用于提供对搜索系统的扩展。例如,系统1300可以接收第一语言的第一术语(例如,用户希望在搜索系统的查询中使用的术语)。系统1300可以生成第一术语的SDR并使用所生成的第一SDR来识别第二SDR数据库中满足相似性阈值水平的第二SDR。系统1300然后可以将第一SDR、第二SDR或两者提供给搜索系统以增强用户的搜索查询,如以上结合图6A-6C所描述的。
在一些实施例中,本文描述的方法和系统可以用于提供用于过滤流式数据的功能。例如,实体可能希望检查流式社交媒体数据以识别与实体相关的社交媒体数据的子流-例如,用于品牌管理目的或竞争性监控。作为另一个示例,实体可能希望检查穿过网络设备的网络数据包的流-例如,出于安全目的。
现在结合图15参考图16,系统1500提供用于执行方法1600的功能,方法1600用于识别过滤标准和流式数据文档集合内的数据项之间的相似性水平。系统1500包括引擎101、指纹识别模块302、相似性引擎304、消歧模块306、数据项模块308、表达式引擎310、SDR数据库120、过滤模块1502、标准SDR数据库1520、流式数据文档1504、以及客户端代理1510。可以如上结合图1A-14所描述那样提供引擎101、指纹识别模块302、相似性引擎304、消歧模块306、数据项模块308、表达式引擎310和SDR数据库120。
方法1600包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(1602)。方法1600包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1604)。方法1600通过在第一计算设备上执行的解析器,生成在数据文档集合中出现的术语的列举(1606)。方法1600包括通过在第一计算设备上执行的表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中的出现的数量,以及(iii)与所述术语出现在其中的每个数据文档相关联的坐标对(1608)。方法1600包括通过表示生成器使用出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(1610)。方法1600包括在SDR数据库中存储所生成的多个SDR中的每个SDR(1612)。方法1600包括通过在第二计算设备上执行的过滤模块从第三计算设备接收过滤标准(1614)。方法1600包括通过表示生成器为过滤标准生成至少一个SDR(1616)。方法1600包括通过过滤模块从数据源接收多个流式文档(1618)。方法1600包括通过表示生成器为所述多个流式文档中的第一个流式文档生成复合SDR(1620)。方法1600包括通过在第二计算设备上执行的相似性引擎确定过滤标准SDR与所述多个流式文档中的第一个流式文档的所生成的复合SDR之间的距离(1622)。方法1600包括通过过滤模块基于所确定的距离对第一流式文档进行操作(1624)。
在一个实施例中,如上文结合图2(202)-(214)所描述那样执行(1602)-(1612)。
方法1600包括通过在第二计算设备上执行的过滤模块从第三计算设备接收过滤标准(1614)。过滤标准可以是允许过滤模块1502缩小多个流式文档的任何术语。作为示例,并且如上所述,实体可能希望检查流式社交媒体数据以识别与实体相关的社交媒体数据的子流—例如,用于品牌管理目的或竞争监视。作为另一个示例,实体可能希望检查穿过网络设备的网络数据包的流-例如,出于安全目的。因此,在一个实施例中,过滤模块1502接收至少一个品牌相关的术语;例如,过滤模块1502可以接收名称,诸如公司、产品或个人名称(涉及与第三机器相关联的实体或与第三机器不相关联的实体,诸如竞争者)。在另一个实施例中,过滤模块1502接收安全相关术语;例如,过滤模块1502可以接收与计算机安全性利用相关的术语(例如,与黑客攻击、恶意软件或安全漏洞的其他利用相关联的术语)或与物理安全性利用相关的术语(例如,与暴力或恐怖分子的行为相关联的术语)。在又一实施例中,过滤模块1502接收至少一个病毒签名(例如,如本领域普通技术人员将理解的,计算机病毒签名)。
在一些实施例中,过滤模块1502接收至少一个SDR。例如,机器102c的用户可能已经出于独立的目的与系统1500交互,并且开发了现在能够结合过滤流式数据使用的一个或多个SDR。
在一些实施例中,过滤模块1502与查询扩展模块603通信(例如,如上结合图6A-C所述)以识别附加过滤标准。例如,过滤模块1502可以向查询扩展模块603(在机器102b上或在单独的机器102g上执行,未示出)发送过滤标准;查询扩展模块603可以指示相似性引擎304识别过滤标准的第一SDR和从SDR数据库120中检索到的第二术语的第二SDR之间的语义相似性水平。在这样的示例中,查询扩展模块603可以指示相似性引擎304对SDR数据库120中的每个术语重复识别过程,并返回具有高于阈值的语义相似性水平的任何术语;查询扩展模块603可以向过滤模块1502提供通过相似性引擎304识别的所得到的术语。过滤模块1502然后可以在过滤流式文档集合中使用所得到的术语。
方法1600包括通过表示生成器为过滤标准生成至少一个SDR(1616)。在一个实施例中,过滤模块1502将过滤标准提供给引擎101,以通过表示生成器114生成所述至少一个SDR。在另一个实施例中,过滤模块1502将过滤标准提供给指纹识别模块302。过滤模块1502可以将所述至少一个SDR存储在标准SDR数据库1520中。
在一些实施例中,生成所述至少一个SDR的步骤是可选的。在一个实施例中,表示生成器114(或指纹识别模块302)确定所接收的过滤标准是否是或包括SDR,并基于那个确定来确定是否生成SDR。例如,表示生成器114(或指纹识别模块302)可以确定通过过滤模块1502接收的过滤标准是SDR,因此确定不生成任何其它SDR。或者,表示生成器114(或指纹识别模块302)可以确定过滤标准的SDR已经存在于SDR数据库120中或标准SDR数据库1520中。然而,作为另一示例,表示生成器114(或指纹识别模块302)确定过滤标准不是SDR并基于那个确定来生成SDR。
方法1600包括通过过滤模块从数据源接收多个流式文档(1618)。在一个实施例中,过滤模块1502接收多个社交媒体文本文档,例如在允许用户创建、共享或交换任何类型的数据(基于音频、视频和/或文本)的计算机介导的工具内生成的任何长度或类型的文档。这样的社交媒体的示例包括但不限于博客;维基;消费者评论网站,例如由美国加利福尼亚州旧金山的YELP公司提供的YELP;微博网站,例如由加利福尼亚州旧金山的推特(Twitter)公司提供的TWITTER;以及微博和社交网站的组合,例如由加利福尼亚州门洛帕克的脸书(Facebook)公司提供的提供的FACEBOOK,或由加利福尼亚州山景城的谷歌(Google)公司提供的GOOGLE+。在另一个实施例中,过滤模块1502接收多个网络流量文档。例如,过滤模块1502可以接收多个网络数据包,所述多个网络数据包的每个可以被称为文档。
在一个实施例中,过滤模块1502从第三计算设备接收具有过滤标准的数据源的识别。在另一个实施例中,过滤模块1502利用通过数据源提供的应用编程接口来开始接收所述多个流式文档。在又一个实施例中,过滤模块从第三机器102c接收所述多个流式文档。作为示例,数据源可以是第三方数据源,并且过滤模块1502被编程为联系第三方数据源以开始接收所述多个流式文档,例如,其中第三方提供社交媒体平台以及在平台上重新生成并且可供下载的流式文档。作为另一示例,数据源可以通过第三机器102c提供,并且过滤模块1502能够直接从第三机器102c检索流式文档,例如,其中机器102c是从网络104上的其它机器(未示出)接收网络数据包的路由器。如下面将进一步详细讨论的,过滤模块可以从一个或多个数据源接收多于一个的多个流式文档,并将它们彼此比较、与标准SDR比较、或与从SDR数据库120检索的SDR比较。
方法1600包括通过表示生成器为所述多个流式文档中的第一个流式文档生成复合SDR(1620)。过滤模块1502可以直接将所述多个流式文档中的第一个流式文档提供给表示生成器114。或者,过滤模块1502可以将所述多个流式文档中的第一个流式文档提供给指纹识别模块302。复合SDR可以如上结合图2所述生成。在一些实施例中,表示生成器114(或指纹识别模块302)在接收所述多个流式文档中的第二个流式文档之前,生成所述多个流式文档中的第一个流式文档的复合SDR。
方法1600包括通过在第二计算设备上执行的相似性引擎确定过滤标准SDR与所述多个流式文档中的第一个流式文档的所生成的复合SDR之间的距离(1622)。过滤模块1502可以向相似性引擎304提供过滤标准SDR和所生成的复合SDR。或者,过滤模块1502可以向相似性引擎304提供标准SDR数据库1520的识别,相似性引擎304可以直接从所述识别中检索过滤标准SDR。
方法1600包括通过过滤模块基于所确定的距离对所述第一个流式文档进行操作(1624)。在一个实施例中,过滤模块1502将流式文档转发到第三计算设备102c。在另一实施例中,过滤模块1502确定不将流式文档转发给第三计算设备102c。在又一实施例中,过滤模块1502基于所确定的距离来确定是否向第三计算设备发送警报。在又一实施例中,过滤模块1502基于所确定的距离和过滤标准来确定是否向第三计算设备传输警告。例如,如果流式文档和过滤标准具有基于所确定的距离的超过预定阈值的相似性水平,则过滤模块1502可以确定流式文档包括恶意内容(例如,具有与病毒签名的SDR基本上相似的SDR);过滤模块1502可以访问策略、规则或其他指令集合,以确定在这种情况下,应当向一个或多个用户或机器发送警报(例如,寻呼网络管理员)。
在一个实施例中,过滤模块1502将所述多个流式文档中的第一个流式文档转发给在第三机器102c上执行的客户端代理1510。客户端代理1510可以在路由器上执行。客户端代理1510可以在任何种类的网络设备上执行。客户端代理1510可以在web服务器上执行。客户端代理1510可以在本文所述的任何形式或类型的机器上执行。
在一个实施例中,过滤模块1502将所述多个流式文档中的第一个流式文档添加到流式文档的子流。在另一个实施例中,过滤模块1502将子流存储在可由客户端代理1510访问的数据库(未示出)中(例如,通过轮询数据库或订阅更新通知或本领域普通技术人员已知的其他机制,然后下载子流的全部或部分)。在又一个实施例中,过滤模块1502通过将子流传输到客户端代理1510来响应从客户端代理1510接收的轮询请求。
在一些实施例中,过滤模块1502从第二数据源接收第二多个流式文档。过滤模块1502指示第二多个流式文档中的第一个流式文档的复合SDR的生成(例如,如上结合第一多个流式文档中的第一个流式文档的复合SDR的生成所讨论那样)。相似性引擎304确定第二多个流式文档中的第一个流式文档的所生成的复合SDR与第一多个流式文档中的第一个流式文档的所生成的复合SDR之间的距离。过滤模块1502基于确定的距离确定是否将第二多个流式文档中的第一个流式文档转发到第三计算设备。在一个实施例中,过滤模块1502可以基于确定比较的SDR落在预定相似性阈值之下来确定是否转发第二多个流式文档中的第一个流式文档-例如,过滤模块1502可以决定如果第二多个流式文档中的第一个流式文档与第一多个流式文档中的第一个流式文档足够不同(例如,落在预定相似性阈值之下)则转发第二多个流式文档中的第一个流式文档,而如果第二多个流式文档中的第一个流式文档与第一多个流式文档中的第一个流式文档太相似(例如,由于超过预定相似性阈值,第二多个流式文档中的第一个流式文档可以被认为是累积的、重复的或者与第一多个流式文档中的第一个流式文档太相似)则决定丢弃第二多个流式文档中的第一个流式文档。以这种方式,过滤模块1502可以确定来自不同数据源的文档(例如,发布在不同社交媒体网站上,或者发布自单个社交媒体网站上的不同账户,或者包括在不同网络数据包中)足够相似,使得仅一个文档可用就提供了具有重复信息的子流之上的改进的子流。
在一些实施例中,步骤(1606-1610)被定制用于对包括病毒签名的数据文档进行寻址。在这些实施例的一个中,解析器生成出现在数据文档集合中的病毒签名的列举。在这些实施例的又一个中,表示生成器为列举中的每个病毒签名确定出现信息,所述出现信息包括:(i)所述病毒签名出现在其中的数据文档的集合,(ii)所述病毒签名在每个数据文档中出现的数量,以及(iii)与所述病毒签名出现在其中的每个数据文档相关联的坐标对。在这些实施例的又一个中,表示生成器为列举中的每个病毒签名生成SDR,所述SDR可以是复合SDR。在另一实施例中,系统基于协议(例如,网络协议)将列举中的每个病毒签名分解成多个子单元(例如,短语、句子或病毒签名文档的其它部分)。在又一实施例中,系统将列举中的每个子单元分解成至少一个值(例如,一个词)。在又一个实施例中,系统为列举中的病毒签名的多个子单元中的每个的每个值确定出现信息,所述出现信息包括:(i)所述值出现在其中的数据文档的数量,(ii)所述值在每个数据文档中出现的数量,以及(iii)与所述值出现的每个数据文档相关联的所述坐标对;系统使用所述值的出现信息为列举中的每个值生成SDR。在又一实施例中,系统使用值SDR为列举中的每个子单元生成复合SDR。在另一实施例中,系统基于所生成的子单元SDR为SDR中的每个病毒签名生成复合SDR。病毒签名SDR、子单元SDR和值SDR可以被存储在SDR数据库120中。
方法1600包括通过在第一计算设备上执行的解析器生成在数据文档集合中出现的术语的列举(1606)。方法1600包括通过在第一计算设备上执行的表示生成器为列举中的每个术语确定出现信息,所述出现信息包括:(i)所述术语出现在其中的数据文档的数量,(ii)所述术语在每个数据文档中的出现的数量,以及(iii)与所述术语在其中出现的每个数据文档相关联的坐标对(1608)。方法1600包括通过表示生成器使用出现信息为列举中的每个术语生成稀疏分布式表示(SDR)(1610)。
在一些实施例中,客户端代理1510包括过滤模块1502的功能,调用指纹识别模块302来生成SDR并与相似性引擎304交互以接收对流式文档的SDR和标准SDR之间的相似性水平的识别;客户端代理1510可以基于相似性水平来做出关于是存储还是丢弃流式文档的确定。
在一些实施例中,本文描述的组件可以自动地执行一个或多个功能,即,无需人为干预。例如,系统100可以接收数据文档集合104,并且自动地继续执行用于预处理数据文档、训练参考地图生成器106、或为数据文档集合104中的每个数据项生成SDR118的方法中的任何一个或多个,而无需人工干预。作为另一示例,系统300可以接收至少一个数据项,并自动地继续执行用于识别所接收的数据项与SDR数据库120中的数据项之间的相似性水平、生成相似数据项的列举、或执行如上所述的其他功能的方法中的任何一个或多个。作为进一步的示例,系统300可以是所谓的“物联网”的一部分或包括作为其一部分的组件,在“物联网”中自主实体执行、通信并提供诸如本文所述的功能;例如,自动化自主过程可以生成查询,从系统300接收响应,并且向其他用户(人、计算机等)提供响应。在一些实例中,包括基于语音到文本或文本到语音的接口,使得作为示例而非限制,用户可以生成接口识别的语音命令,并且接口利用所述语音命令生成计算机可处理指令。
如上结合图5所述,相似性引擎304可以从用户接收第一数据项,确定第一数据项的第一SDR与从SDR数据库中检索的第二数据项的第二SDR之间的距离,并基于所确定的距离提供第二数据项的识别以及第一数据项与第二数据项之间的语义相似性的水平的识别。在一些实施例中,第一数据项是简档的描述。作为示例,简档可以是理想候选工作的简档。作为另一示例,简档可以是用户将有兴趣会见(例如,出于联网目的、约会目的、或其他关系构建目的)的个体的简档。在一些实施例中,简档是理想个体的一个或多个特性的自由文本描述,并且相似性引擎304在SDR数据库120中搜索个体的一个或多个简档,其中从个体的简档生成的SDR与所提供的理想候选简档的SDR重叠(例如,具有最小的距离)。在一些实施例中,简档是用户有兴趣学习更多关于或获取的产品(例如,商品或服务)的简档。作为示例,用户可以提供所需或期望的产品属性的基于文本的描述;与基于用户的先前购买历史或其它基于用户的属性来推荐产品的系统相比,此处所描述的方法和系统可以搜索包括从产品描述生成的SDR数据库120,并提供其中产品本身的描述(不是用户或用户的习惯)在语义上类似于所需需求或功能的结果。
在一些实施例中,本文所描述的方法和系统提供了用于检索和生成网页(例如,根据任何数量的计算机网络协议,存储在计算机上并可通过其它计算机通过一个或多个计算机网络检索的文档)的SDR并用网页的SDR填充SDR数据库120的功能。在这些实施例的一个中,数据文档集合因此是通过系统(例如,由与系统通信的网络爬行器)或由系统的用户检索的多个网页。在这些实施例的另一个中,相似性引擎304接收包括用户希望执行的web搜索的描述的数据项,并且执行如上结合图5所述的功能;相似性引擎304可以直接从用户(例如,通过系统提供的查询模块,包括如上并且结合图6A、9A-B和10A-B所述)或者从将用户输入转发到相似性引擎304的第三方系统)接收数据项。
在一些实施例中,本文描述的方法和系统可以受益于对特定文档语料库的训练以便提供更准确的搜索结果。作为示例,当在特定主题或专业或工业知识领域中提供欺诈检测功能时,所述系统可以被定制为提供改进的结果。作为另一个示例,可以定制所述系统以在提供法医分析时提供改进的结果。在这样的实施例中,用户可能不具有他们正在搜索的特征或属性的具体描述(与例如寻求具有特定技能的工作候选的用户或寻求购买具有特定功能的产品的用户不同);然而,用户可能具有一个或多个文档,这些文档是她希望找到的文档种类的范例;这些文档可以如上结合图5所述的那样使用。例如,用户可以具有触发财务报告要求或违反伦理的电子邮件消息的示例;即使电子邮件中使用的特定术语(或者甚至文档或通信的性质)从一种场景到另一种场景变化,利用语义指纹允许用户找到语义上相似的文档。
在一些实施例中,相似性引擎304确定基于用户提供的数据项生成的SDR和从SDR数据库120检索的先前生成的SDR(如上结合图5所述)之间的距离,并确定所述距离超过预定阈值。在这些实施例的一个中,相似性引擎304确定这样的SDR是离群值,这可能值得附加的分析。例如,当商务文档包含与包含在所述类型的其他商务文档中的信息基本不同的信息时,它可以向分析器(人或计算机或两者一起工作)发信号通知离群值文档应当经历附加分析。继续这个示例,如果多个文档正被分析以尝试识别内幕交易的实例,则文档作者可能已经使用了在他们的行业中的商业文档中通常不使用的编码的词;不管所使用的特定词如何,此类文档将导致产生与常规文档足够不同以便被标记以供额外分析的SDR的生成。在一些实施例中,这样的额外分析由本文所述的系统或由人类分析员完成;例如,调查者可以将文档的生成日期链接到时间线以确定是否存在文档的其他异常特征。在这样的示例中使用本文描述的系统和方法通过缩减可能值得附加分析的一组文档而有益于调查者。
在一些实施例中,本文描述的方法和系统可以与其他第三方人工智能算法对接以便提供附加功能。例如,在提供异常检测功能时,人工智能系统可以被训练成预测将跟随数据项的数据项(例如,作为识别数据项序列中的模式的结果)。继续所述示例,当向人工智能系统提供如上所述生成的SDR时,人工智能系统可以识别SDR中的模式并确定接下来在所述模式中将出现什么;如果下一个到来的SDR打断了所述模式,则系统可以识别异常。异常可以包括数据流中的新主题;例如,在与新闻有关的数据项流中,异常可以指示关于不同主题的突发新闻。
在一些实施例中,本文描述的系统和方法可以用于在提供支持机器翻译(包括语音到文本翻译、光学字符识别以及机器翻译的其他用途)的功能中替换语言模型。传统系统使用能够计算一种语言(词、句子等)与另一种语言相关的概率的语言模型,例如在句子中一个词跟在另一个之后。在一个实施例中,可以利用相似性引擎304来替换语言模型。相似性引擎304可以接收数据项(例如,句子中的词或短语或段落中的句子),为数据项生成SDR并识别通常与所接收的数据项相关联地找到的词、短语或数据项的SDR。相似性引擎304还可以接收包括所接收的词的文档或文档的一部分,并生成用于与其它文档的复合SDR比较的复合SDR以识别相似的文档,然后确定哪些数据项通常跟随在所接收的数据项之后。在这样的实施例中,系统还可以利用上述主题切片功能。
在一些实施例中,数据项是管理的文档(例如,系统中的文档,其中至少一个元数据项与文档相关联,并且文档的SDR也可以变成与文档相关联的元数据)。在这些实施例的一个中,管理的文档是正在被编辑的文档,并且在用户书写或编辑所述文档的整个时间内为其生成并更新SDR。在这些实施例的另一个中,这里描述的系统和方法提供了用于在文档仍被书写、更新或编辑时给予用户反馈的功能。作为示例,数据项可以是在第一时间点的被管理的文档,并且可以在第一时间点为被管理的文档生成初始SDR;在随后的时间点(例如,由用户或管理员预先确定的点,或在用户请求更新的点,或在系统被编程为询问用户是否希望生成更新的点),系统可以生成更新的SDR。在生成更新的SDR时,相似性引擎304可将所述SDR与从先前生成的管理的文档生成的SDR(例如从SDR数据库120检索的SDR)进行比较。基于所述比较,系统可以向生成或修改管理的文档的用户提供反馈;例如,系统可以识别被管理文档的类型,并询问用户是否愿意访问其它先前生成的类似类型的文档(例如,其它字母、其它合同、包含类似关键词的其它文档、或包含类似部分的其它文档),然后提供对所请求文档的访问。系统还可以向用户提供其他指导(例如,提供提醒,其SDR基本上类似于被生成或修改的管理的文档的SDR的其他管理的文档通常包括某些段或文本或附件)。
在一些实施例中,本文描述的方法和系统提供用于路由文档的功能。在这些实施例的一个中,相似性引擎304接收要路由到多个用户中的一个的文档(例如,要发送到多个电子邮件接收者中的特定个人的电子邮件或要由多个用户中的一个审阅的文档)的SDR,并将所接收的SDR与从SDR数据库120检索的SDR进行比较。在一个实施例中,SDR数据库120填充有系统中的用户的简档的SDR。例如,与审阅税务文档的用户相关联的用户简档可以具有与审阅财务文档的用户相关联的用户简档不同的SDR;通过将输入文档的SDR与简档用户的SDR进行比较,相似性引擎304将能够识别与输入文档的SDR具有基本相似性的用户的简档的SDR,并且系统然后可以确定将输入文档提供给在简档中识别的用户。在一些实施例中,SDR数据库120填充有先前路由的文档的SDR,并且系统可确定其它文档被路由到哪里;例如,基于分析具有与所接收的SDR相似的SDR的文档的元数据,系统可以确定要路由的文档应去合同代理人或公司会计师或负责由实习生审阅工作的个人。
语义情感分析
在一些实施例中,本文描述的方法和系统提供用于执行情感分析的功能。在这些实施例的一个中,被分析的多个数据项的序列影响分析的结果;为了确定包含多个数据项的句子意指情感,数据项出现的顺序不同(例如,人咬狗与狗咬人)。在上述某些实施例中,系统将生成相同的SDR,而不管句子的词顺序。因此,为了改进在确定数据项(或数据项组)的SDR是否基本上类似于传达一个或多个情感的数据项(或数据项组)的SDR时所提供的功能,本文描述的方法和系统可以包括用于与提供序列学习功能的人工智能系统连接的功能。如所属领域的技术人员将了解,序列学习器暴露于序列模式,且能够预测下一模式将是什么,且能够提供特定序列中的词(或通常数据项)的表示。序列学习器功能可以包括分级时间存储器或与分级时间存储器通信,分级时间存储器将序列识别为相关的数据项组(例如句子)并生成以所述特定顺序代表句子的输出SDR-如果要修改句子中词的顺序,则分级时间存储器将为具有修改顺序的词的句子产生第二不同的输出SDR。因此,相似性引擎304可以从人工智能系统接收反映多个数据项中的数据项的顺序的输出SDR,并将这样的输出SDR与其它输出SDR进行比较。此外,人工智能系统可能已经在与特定情感(例如,积极的、消极的、中性的、愤怒的、焦虑的等)相关联的数据上被训练,从而产生用于情感分析的分类器。
在一些实施例中,数据项包括广告的内容。作为示例,广告公司可以寻求识别广告的广告投放机会(例如,代表客户投放的广告),并且可以使用本文描述的系统和方法来改进广告的投放。作为另一个更具体的示例,本文描述的系统和方法可以通过将因特网用户的购物上下文的SDR(例如,因特网用户的购物相关cookie的内容,其可以包括用户最近搜索或获取的项的识别)与先前从可用于投放的广告目录中的广告生成的SDR(例如,先前生成并存储在SDR数据库120中的SDR)进行比较来改进广告的投放。在这些实施例的一个中,相似性引擎304可以接收购物上下文的SDR(在所述实施例中是接收到的数据项),并将所述SDR与SDR数据库120中的SDR进行比较,以确定广告目录中的哪些广告将与用户的购物上下文相关;系统然后可以推荐将所识别的广告投放在具有购物上下文的用户将查看广告的位置(例如,网站)中。与通常仅能够将关键词与关键词匹配的常规系统相比,相似性引擎的使用将使得能够快速识别相关主题,即使关键词是不同的。在一些实施例中,本文描述的方法和系统能够提供具有与购物上下文的SDR基本上相似的SDR的数据项的识别,并且足够快地进行以满足在因特网广告环境中这样做的约束,其中例如广告将被识别并以毫秒来投放以防止递送超过可接受的时间限制(例如毫秒)。
在一些实施例中,并且与常规系统不同,本文描述的系统和方法将语义上下文带入单独表示中;例如,即使不知道特定SDR如何被生成,系统仍可以将SDR与另一SDR进行比较,并使用这两个SDR的语义上下文来向用户提供洞察。在其他实施例中,并且与历史上关注于文档水平聚类的传统系统不同,本文描述的系统和方法使用文档水平上下文来提供术语水平的语义洞察,使得用户能够识别文档的语料库中的各个术语的语义含义。
应当理解,上述系统可以提供这些组件中的每个组件或这些组件中的任何组件中的多个组件,并且这些组件可以被提供在独立机器上,或者在一些实施例中,被提供在分布式系统中的多个机器上。短语“在一个实施例中”、“在另一个实施例中”等通常意味着所述短语之后的特定特征、结构、步骤或特性被包括在本公开的至少一个实施例中,并且可以被包括在本公开的多于一个实施例中。这样的短语可以但不一定是指相同的实施例。
尽管在此被称为引擎、生成器、模块或组件,但是在此描述的元件可以各自被提供为软件、硬件或两者的组合,并且可以在一个或多个机器100上执行。尽管为了便于讨论,将本文描述的某些组件描述为单独的实体,但是应当理解,这并不将架构限制于特定实现。例如,所描述的组件中的一些或全部的功能可以由单个电路或软件功能包含;作为另一示例,一个或多个组件的功能可以分布在多个组件上。
提供本文所述的功能的机器102可以是任何类型的工作站、台式计算机、膝上型或笔记本计算机、服务器、便携式计算机、移动电话、移动智能电话或其他便携式电信设备、媒体播放设备、游戏系统、移动计算设备、或能够在任何类型和形式的网络上通信并具有足够的处理器能力和存储器容量来执行本文所述的操作的任何其他类型和/或形式的计算、电信或媒体设备。机器102可以执行、操作或以其他方式提供应用,所述应用可以是任何类型和/或形式的软件、程序或可执行指令,包括但不限于任何类型和/或形式的web浏览器、基于web的客户端、客户端-服务器应用、ActiveX控件、JAVA小应用程序、或能够在机器102上执行的任何其他类型和/或形式的可执行指令。
机器100可以经由网络彼此通信,所述网络可以是任何类型和/或形式的网络并且可以包括以下中的任何:点对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光网络)网络、SDH(同步数字体系)网络、无线网络和有线网络。在一些实施例中,网络可以包括无线链路,诸如红外信道或卫星频带。网络的拓扑可以是总线型、星型或环型网络拓扑。网络可以是本领域普通技术人员已知的能够支持这里描述的操作的任何这样的网络拓扑。所述网络可以包括利用用于在移动设备(通常包括台式和手持设备)之间通信的任何协议的移动电话网络,包括AMPS、TDMA、CDMA、GSM、GPRS、UMTS或LTE。
机器102可以包括通过各种连接与网络连接的网络接口,所述各种连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(例如,ISDN、帧中继、ATM、千兆二进位以太网、SONET上的以太网)、无线连接、或以上的任何或全部的某种组合。可以使用各种通信协议(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布式数据接口(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE802.11b、IEEE 802.11g、IEEE 802.11n、802.15.4、BLUETOUTH ZIGBEE、CDMA、GSM、WiMax以及直接异步连接)来建立连接。在一个实施例中,计算设备100经由任何类型和/或形式的网关或隧道协议(诸如安全套接字层(SSL)或传输层安全(TLS))与其他计算设备100’通信。网络接口可以包括内置网络适配器、网络接口卡、PCMCIA网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适合于将计算设备100连接到能够通信并执行这里描述的操作的任何类型的网络的任何其它设备。
上述系统和方法可以使用编程和/或工程技术实现为方法、装置或制造品,以产生软件、固件、硬件或其任意组合。上述技术可以在可编程计算机上执行的一个或多个计算机程序中实现,所述可编程计算机包括处理器、由处理器可读的存储介质(例如包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。程序代码可以应用于使用输入设备键入的输入,以执行所描述的功能并生成输出。输出可以被提供给一个或多个输出设备。
在以下权利要求的范围内的每个计算机程序可以以任何编程语言实现,诸如汇编语言、机器语言、高级过程编程语言或面向对象的编程语言。编程语言例如可以是LISP、PROLOG、PERL、C++、C#、JAVA或任何编译或解释编程语言。
每个这样的计算机程序可以在有形地包含在机器可读存储设备中以便由计算机处理器执行的计算机程序产品中实现。本发明的方法步骤可以通过计算机处理器执行,所述计算机处理器执行有形地体现在计算机可读介质上的程序,以通过对输入进行操作并生成输出来执行本发明的功能。举例来说,合适的处理器包括通用和专用微处理器。通常,处理器从只读存储器和/或随机存取存储器接收指令和数据。适于有形地体现计算机程序指令的存储设备包括例如所有形式的计算机可读设备、固件、可编程逻辑、硬件(例如,集成电路芯片;电子设备;计算机可读非易失性存储单元;非易失性存储器,诸如半导体存储器设备,包括EPROM、EEPROM和闪存设备;磁盘,诸如内部硬盘和可移除盘;磁光盘;和CD-ROM)。任何前述内容可以通过专门设计的ASIC(专用集成电路)或FPGA(现场可编程门阵列)来补充或并入其中。计算机通常还可以从诸如内部盘(未示出)或可移动盘的存储介质接收程序和数据。这些元件也可以在传统的台式或工作站计算机以及适于执行实现这里描述的方法的计算机程序的其它计算机中找到,这些计算机可以与任何数字打印引擎或标记引擎、显示监视器或能够在纸、胶片、显示屏或其它输出介质上产生彩色或灰度像素的其它光栅输出设备结合使用。计算机还可以经由网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等从提供对程序的访问的第二计算机接收程序和数据。
更具体地并结合图12A,描述了网络环境的实施例。简要概括来说,网络环境包括经由一个或多个网络1204与一个或多个远程机器1206a-1206n(通常也称为服务器1206或计算设备1206)通信的一个或多个客户端1202a-1202n。上述机器102可以被提供为机器1202、机器1206或任何类型的机器1200。
尽管图12A示出了客户端1202和远程机器1206之间的网络1204,但是客户端1202和远程机器1206可以在同一网络1204上。网络1204可以是局域网(LAN),例如公司内联网、城域网(MAN)或广域网(WAN),例如因特网或万维网。在其它实施例中,在客户端1202和远程机器1206之间有多个网络1204。在这些实施例的一个中,网络1204’(未示出)可以是专用网络,而网络1204可以是公共网络。在这些实施例的另一个中,网络1204可以是专用网络,而网络1204’可以是公共网络。在又一个实施例中,网络1204和1204’可以都是专用网络。
网络1204可以是任何类型和/或形式的网络,并且可以包括以下中的任何一个:点对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光网络)网络、SDH(同步数字体系)网络、无线网络和有线网络。在一些实施例中,网络1204可以包括无线链路,诸如红外信道或卫星频带。网络1204的拓扑可以是总线型、星型或环型网络拓扑。网络1204可以是本领域普通技术人员所知的能够支持这里所描述的操作的任何网络拓扑。所述网络可以包括利用用于在移动设备之间通信的任何协议或多个协议的移动电话网络,所述协议包括AMPS、TDMA、CDMA、GSM、GPRS或UMTS。在一些实施例中,不同类型的数据可以经由不同的协议来传输。在其它实施例中,相同类型的数据可经由不同协议来传输。
客户端1202和远程机器1206(一般称为计算设备1200)可以是任何工作站、台式计算机、膝上型或笔记本计算机、服务器、便携式计算机、移动电话或其他便携式电信设备、媒体播放设备、游戏系统、移动计算设备、或能够通信并具有足够的处理器功率和存储器容量来执行此处所描述的操作的任何其他类型和/或形式的计算、电信或媒体设备。在一些实施例中,计算设备1200可以具有与设备一致的不同的处理器、操作系统和输入设备。在其他实施例中,计算设备1200是移动设备、数字音频播放器、数字媒体播放器或此类设备的组合。计算设备1200可以执行、操作或以其他方式提供应用,所述应用可以是任何类型和/或形式的软件、程序或可执行指令,包括但不限于任何类型和/或形式的web浏览器、基于web的客户端、客户端-服务器应用、ActiveX控件或JAVA小程序、或能够在计算设备1200上执行的任何其他类型和/或形式的可执行指令。
在一个实施例中,计算设备1200提供web服务器的功能。在一些实施例中,web服务器1200包括开源web服务器,例如由特拉华州的Apache软件基金会维护的APACHE服务器。在其它实施例中,web服务器1200执行专有软件,例如由华盛顿州雷德蒙德的微软公司提供的INTERNET INFORMATION SERVICES产品、由加利福尼亚州雷德伍德滨的Oracle公司提供的ORACLE IPLANET web服务器产品、或者由加利福尼亚州圣克拉拉的BEA系统提供的BEAWEBLOGIC产品。
在一些实施例中,系统可以包括多个逻辑分组的计算设备1200。在这些实施例的一个中,计算设备1200的逻辑组可被称为服务器群。在这些实施例的另一个中,服务器群可作为单个实体来管理。
图12B和12C描述了可用于实践客户端1202或远程机器1206的实施例的计算设备1200的框图。如图12B和12C所示,每个计算设备1200包括中央处理单元1221和主存储器单元1222。如图12B所示,计算设备1200可以包括存储设备1228、安装设备1216、网络接口1218、I/O控制器1223、显示设备1224a-n、键盘1226、诸如鼠标之类的点击设备1227以及一个或多个其它I/O设备1230a-n。存储设备1228可以包括但不限于操作系统和软件。如图12C所示,每个计算设备1200还可以包括附加的可选元件,诸如存储器端口1203、桥接器1270、一个或多个输入/输出设备1230a-1230n(通常使用附图标记1230来指代)以及与中央处理单元1221通信的高速缓冲存储器1240。
中央处理单元1221是响应并处理从主存储器单元1222提取的指令的任何逻辑电路。在许多实施例中,中央处理单元1221由微处理器单元提供,例如:由加利福尼亚州山景城的因特尔公司制造的那些;由伊利诺斯州绍姆堡的摩托罗拉(Motorola)公司制造的那些;由加利福尼亚州圣克拉拉市的全美达(Transmeta)公司制造的那些;由纽约白色平原的国际商业机器制造的那些;或由美国加利福尼亚州森尼维耳市的超威半导体(AdvancedMicro Devices)公司制造的那些。其它示例包括SPARC处理器、ARM处理器、用于构建UNIX/LINUX“白”框的处理器、以及用于移动设备的处理器。计算设备1200可以基于这些处理器中的任何,或者能够如本文所述进行操作的任何其它处理器。
主存储器单元1222可以是一或多个能够储存数据并允许微处理器1221直接存取任何储存位置的存储器芯片。主存储器1222可以基于能够如本文所述操作的任何可用存储器芯片。在图12B所示的实施例中,处理器1221经由系统总线1250与主存储器1222通信。图12C描述了计算设备1200的实施例,其中处理器经由存储器端口1203与主存储器1222直接通信。图12C还描述了一个实施例,其中主处理器1221通过有时称为后端总线的二级总线直接与高速缓冲存储器1240通信。在其它实施例中,主处理器1221使用系统总线1250与高速缓冲存储器1240通信。
在图12B所示的实施例中,处理器1221经由本地系统总线1250与各种I/O设备1230通信。各种总线可以用于将中央处理单元1221连接到任何I/O设备1230,包括VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O设备是视频显示器1224的实施例,处理器1221可以使用高级图形端口(AGP)与显示器1224通信。图12C描述了计算机1200的实施例,其中主处理器1221还通过例如超传输、RAPIDIO或无线宽带通信技术直接与I/O设备1230b通信。
计算设备1200中可以存在各种I/O设备1230a-1230n。输入设备包括键盘、鼠标、轨迹板、轨迹球、麦克风、扫描仪、照相机和绘图板。输出设备包括视频显示器、扬声器、喷墨打印机、激光打印机和染料升华打印机。I/O设备可以由I/O控制器1223控制,如图12B所示。此外,I/O设备还可以提供用于计算设备1200的存储和/或安装设备1216。在一些实施例中,计算设备1200可以提供USB连接(未示出)以接收手持USB存储设备,诸如加利福尼亚州洛斯阿拉米托斯的Twintech Industry公司制造的设备的USB闪存驱动线。
仍然参考图12B,计算设备1200可以支持任何适当的安装设备1216,诸如用于接收软盘的软盘驱动器,所述软盘例如3.5英寸、5.25英寸盘或ZIP盘;CD-ROM驱动器;CD-R/RW驱动器;DVD-ROM驱动器;各种格式的磁带驱动器;USB设备;硬盘驱动器或任何其它适于安装软件和程序的设备。在一些实施例中,计算设备1200可以提供用于通过网络1204安装软件的功能。计算设备1200还可以包括用于存储操作系统和其他软件的存储设备,诸如一个或多个硬盘驱动器或独立磁盘冗余阵列。
此外,计算设备1200可以包括网络接口1218,以通过各种连接与网络1204连接,所述连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、T1、T 3、56kb、X.25、SNA、DECNET)、宽带连接(例如,ISDN、帧中继、ATM、千兆二进位以太网、SONET上的以太网)、无线连接、或上述任意或全部的某种组合。可以使用各种通信协议(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布式数据接口(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、IEEE 802.15.4、BLUETOOTH、ZIGBEE、CDMA、GSM、WiMax和直接异步连接)来建立连接。在一个实施例中,计算设备1200经由任何类型和/或形式的网关或隧道协议(诸如安全套接字层(SSL)或传输层安全(TLS))与其他计算设备1200’通信。网络接口1218可以包括内置网络适配器、网络接口卡、PCMCIA网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适合于将计算设备1200连接到能够通信并执行这里描述的操作的任何类型的网络的任何其它设备。
在进一步的实施例中,I/O设备1230可以是系统总线1250和外部通信总线之间的桥,所述外部通信总线诸如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire 800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、Super HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel总线或串行连接的小型计算机系统接口总线。
图12B和12C中所描述的类型的计算设备1200通常在操作系统的控制下操作,所述操作系统控制任务的调度和对系统资源的访问。计算设备1200能够运行任何操作系统,诸如MICROSOFT WINDOWS操作系统的任何版本、UNIX和LINUX操作系统的不同版本、用于Macintosh计算机的MAC OS的任何版本、任何嵌入式操作系统、任何实时操作系统、任何开源操作系统、任何专有操作系统、用于移动计算设备的任何操作系统、或能够在计算设备上运行并执行本文描述的操作的任何其他操作系统。典型的操作系统包括但不限于:WINDOWS3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWSCE、WINDOWSXP、WINDOWS 7、WINDOWS 8和WINDOWS VISTA,所有这些都是由华盛顿雷德蒙德的微软公司制造的;由加利福尼亚州库比蒂诺的苹果公司制造的MAC OS;由纽约州阿蒙克的国际商业机器公司制造的OS/2;以及由美国犹他州盐湖城市的Caldera公司发布的自由可用的操作系统LINUX;由北卡罗来纳州罗利的Red Hat股份有限公司发布的Linus-变体操作系统Red Hat企业Linux;由英国伦敦的Canonic有限责任公司分售的自由可用的操作系统;或任何类型和/或形式的UNIX操作系统等等。
如上所述,计算设备1200可以是能够通信并且具有足够的处理器能力和存储器容量来执行本文所述的操作的任何类型和/或形式的计算、电信或媒体设备。计算设备1200可以是移动设备,诸如由作为示例而非限制的加利福尼亚州库比蒂诺的苹果公司制造的那些设备;得克萨斯州沃思堡市的谷歌/摩托罗拉div.;日本京都的京瓷;韩国首尔的三星电子股份有限公司;芬兰的诺基亚;加利福尼亚州森尼维耳市的惠普发展有限公司和/或Palm股份有限公司;瑞典隆德的索尼爱立信移动通信AB;或加拿大安大略省沃尔罗欧的移动通讯咨询有限公司。在其他实施例中,计算设备1200是智能电话、掌上电脑、袖珍电脑电话或支持微软Windows移动软件的其他便携式移动设备。
在一些实施例中,计算设备1200是数字音频播放器。在这些实施例的一个中,计算设备1200是数字音频播放器,例如由苹果公司制造的装置的苹果IPOD、IPOD触摸、IPODNANO和IPOD SHUFFLE线。在这些实施例的另一个中,数字音频播放器可用作便携式媒体播放器和大容量存储装置。在其它实施例中,计算设备1200是数字音频播放器,诸如由例如但不限于新泽西里奇菲尔德公园的三星电子美国或新加坡的创新科技有限公司制造的数字音频播放器。在其他实施例中,计算设备1200是支持文档格式的便携式媒体播放器或数字音频播放器,所述文档格式包括但不限于MP3、WAV、M4A/AAC、WMA保护的AAC、AEFF、可听音频书、苹果无损音频文档格式、MOV、M4v和mp4 MPEG-4(H.264/MPEG-4AVC)视频文档格式。
在一些实施例中,计算设备1200包括多个设备的组合,诸如与数字音频播放器或便携式媒体播放器组合的移动电话。在这些实施例的一个中,计算设备1200是组合数字音频播放器和移动电话的Google/Motorola系列中的设备。在这些实施例的另一个中,计算设备1200是由苹果公司制造的设备的IPHONE智能电话系列的设备。在这些实施例的又一个中,计算设备1200是执行由开放手机联盟发行的ANDROID开源移动电话平台的设备;例如,设备1200可以是诸如由中国台湾的HTC总部提供的或韩国首尔三星电子公司提供那些设备。在其他实施例中,计算设备1200是平板设备,诸如,例如但不限于,由苹果公司制造的设备的IPAD系列;由行动研究公司(Research In Motion)制造的PLAYBOOK;由维吉尼亚州里士满的微速度(Velocity Micro)公司制造的设备的CRUZ系列;由加利福尼亚州尔湾市的东芝美国信息系统公司制造的设备的FOLIO和THRIVE系列;由三星公司制造的设备的GALAXY系列;由惠普公司制造的设备的惠普SLATE系列;以及由得克萨斯州朗德罗克的戴尔公司制造的设备的STREAK系列。
现在参考图12D,框图描述了其中多个网络提供托管和递送服务的系统的一个实施例。简要概括来说,系统包括云服务和托管基础架构1280、服务提供者数据中心1282和信息技术(IT)网络1284。
在一个实施例中,数据中心1282包括计算设备,诸如但不限于服务器(包括例如应用服务器、文档服务器、数据库和备份服务器)、路由器、交换机和电信装备。在另一实施例中,云服务和托管基础架构1280提供对存储系统、数据库、应用服务器、桌面服务器、目录服务、web服务器以及用于访问远程定位的硬件和软件平台的服务的访问,但不限于此。在其他实施例中,云服务和托管基础架构1280包括数据中心1282。然而,在其他实施例中,云服务和托管基础架构1280依赖于由第三方数据中心1282提供的服务。在一些实施例中,IT网络1204c可以提供本地服务,诸如邮件服务和web服务。在其它实施例中,IT网络1204c可以提供位于远程的服务的本地版本,例如位于远程的打印服务器、数据库、应用服务器、桌面服务器、目录服务和web服务器的本地高速缓存版本。在进一步的实施例中,附加服务器可以驻留在云服务和托管基础设施1280、数据中心1282或一起的其他网络中,诸如由第三方服务提供者提供的那些,包括但不限于基础设施服务提供者、应用服务提供者、平台服务提供者、工具服务提供者和桌面服务提供者。
在一个实施例中,客户端1202的用户访问由远程服务器1206a提供的服务。例如,企业IT网络1284的管理员可确定客户端1202a的用户将访问在远程服务器1206a上执行的虚拟机上执行的应用。作为另一示例,客户端1202b的个体用户可以使用由位于远程的服务器1206提供给客户的资源(诸如电子邮件、传真、语音或其他通信服务、数据备份服务或其他服务)。
如图12D中所描述的,数据中心1282和云服务和托管基础架构1280位于远离数据中心1282和云服务和托管基础架构1280所支持的个人或组织的位置;例如,数据中心1282可以驻留在第一网络1204a上,而云服务和托管基础架构1280可驻留在第二网络1204b上,而IT网络1284是单独的第三网络1204c。在其他实施例中,数据中心1282和云服务以及托管基础架构1280驻留在第一网络1204a上,而IT网络1284是单独的第二网络1204c。在又一些实施例中,云服务和托管基础架构1280驻留在第一网络1204a上,而数据中心1282和IT网络1284形成第二网络1204c。尽管图12D仅描述了一个服务器1206a、一个服务器1206b、一个服务器1206c、两个客户端1202和三个网络1204,但是应当理解,系统可以提供这些组件中的任何或每个中的多个。服务器1206、客户端1202和网络1204可以如上结合图12A-12C所述的那样被提供。
因此,在一些实施例中,IT基础架构可以从第一网络(例如由个人或企业拥有和管理的网络)扩展到第二网络,所述第二网络可以由与拥有或管理第一网络的实体不同的单独实体拥有或管理。由第二网络提供的资源可以被称为“在云中”。云驻留元件可包括但不限于存储设备、服务器、数据库、计算环境(包括虚拟机、服务器和桌面)以及应用。例如,IT网络1284可以使用远程数据中心1282来存储服务器(包括例如应用服务器、文档服务器、数据库和备份服务器)、路由器、交换机和电信设备。数据中心1282可以由IT网络1284拥有和管理,或者第三方服务提供者(包括例如云服务和托管基础架构提供者)可以提供对单独的数据中心1282的访问。作为另一示例,以上结合图3描述的机器102a可以由第一实体(例如,云服务和托管基础架构提供者1280)拥有或管理,而以上结合图3描述的机器102b可以由客户端1202直接或间接(例如,使用由实体1280、1282或1284中的任何一个提供的资源)连接到的第二实体(例如,服务提供者数据中心1282)拥有或管理。
在一些实施例中,代表客户提供计算基础架构的一个或多个网络被称为云。在这些实施例的一个中,其中第一网络的用户访问至少第二网络的系统可以被称为云计算环境,所述第二网络包括能够托管资源的抽象、可缩放和管理的计算资源池。在这些实施例的另一个中,资源可以包括但不限于虚拟化技术、数据中心资源、应用和管理工具。在一些实施例中,基于因特网的应用(其可以经由“软件即服务”模型来提供)可以被称为基于云的资源。在其他实施例中,向用户提供计算资源的网络,诸如远程服务器、虚拟机或刀锋服务器上的刀锋,可以被称为计算云或“基础架构即服务”提供商。在其他实施例中,提供存储资源的网络,诸如存储区域网络,可以被称为存储云。在进一步的实施例中,资源可以被缓存在本地网络中并且被存储在云中。
在一些实施例中,多个远程机器1206中的一些或全部可以从第三方公司租用或出租,作为示例而非限制,第三方公司诸如华盛顿州西雅图的亚马逊网络服务有限公司;得克萨斯州圣安东尼的Rackspace美国有限公司;华盛顿州雷德蒙德的微软公司;和加利福尼亚州山景城的谷歌公司。在其它实施例中,所有主机1206由第三方公司拥有和管理,包括但不限于亚马逊网络服务有限公司、Rackspace美国有限公司、微软和谷歌。
如上所述,许多类型的硬件可以与上述系统和方法结合使用,以提供所述功能。然而,在一些实施例中,硬件本身可以被修改以便提供上述方法和系统的改进的执行。
图17A是描述用于识别多个二进制向量之间的相似性水平的系统的实施例的框图。系统1700包括执行如上所述的引擎101的机器102a。系统1700包括机器102b,其包括处理器1221、数据总线1722(其可以是系统总线1250或存储器端口1203的一部分,其每个都在上文描述)、地址总线1724(其可以是系统总线1250或存储器端口1203的一部分,其每个都在上文描述)以及多个存储器单元1702a-n(其在本文中可以被称为存储器单元1702)。存储器单元1702各自包括第一寄存器1704a、第二寄存器1704b和逐位比较电路1710。
现在参考图17B,并结合图17A,流程图描述了用于识别多个二进制向量之间的相似性水平的方法1750的实施例。方法1750包括通过计算设备上的处理器在计算设备上的多个存储器单元中的每个中存储多个二进制向量中的一个,所述多个存储器单元中的每个包括逐位比较电路(1752)。方法1750包括通过计算设备接收用于与所存储的多个二进制向量中的每个进行比较的二进制向量(1754)。方法1750包括通过处理器经由数据总线向所述多个存储器单元中的每个存储器单元提供所接收的二进制向量(1756)。方法1750包括通过逐位比较电路中的每个确定接收的二进制向量和存储在与逐位比较电路相关联的存储单元中的二进制向量之间的重叠水平(1758)。方法1750包括通过所述多个逐位比较电路中的每个确定重叠水平是否满足由处理器提供的阈值(1760)。方法1750包括通过确定重叠水平确实满足阈值的各个比较电路的每个向处理器提供具有令人满意的重叠水平的所存储的二进制向量的识别(1762)。方法1750包括通过处理器提供满足阈值的每个存储的二进制向量的识别以及存储的二进制向量与接收的二进制向量之间的相似性水平(1764)。
方法1750包含通过计算设备上的处理器在所述计算设备上的多个存储器单元中的每个中存储多个二进制向量中的一个,所述多个存储器单元中的每个包含逐位比较电路(1752)。处理器1221可以从引擎101接收所述多个二进制向量以用于存储。在一个实施例中,处理器1221使用地址总线1724来识别所述多个二进制向量中的一个将被存储到其中的存储器单元。在另一实施例中,处理器1221使用数据总线1722将二进制向量传输到存储器单元以供存储在第一寄存器1704a中。机器102b可以实现单元选择器逻辑、芯片选择器逻辑和板选择器逻辑,以寻址其中将存储二进制向量的特定存储器单元。
方法1750包括通过计算设备接收用于与所存储的多个二进制向量中的每个进行比较的二进制向量(1754)。在一个实施例中,处理器1221接收二进制向量。在另一实施例中,(例如机器102b或不同机器100的)用户提供二进制向量。在一些实施例中,处理器1221还接收对相似二进制向量的识别的请求。
方法1750包括通过处理器经由数据总线向所述多个存储器单元中的每个存储器单元提供所接收的二进制向量(1756)。在一个实施例中,处理器1221将相同的二进制向量传输到所有存储器单元。在另一实施例中,处理器1221传输指令以存储所接收的二进制向量(例如,在第二寄存器1704b中)。在另一实施例中,处理器1221发送指令以比较先前存储的二进制向量(例如,第一寄存器1704a中的二进制向量)和接收的二进制向量(例如,存储在第二寄存器1704b中的二进制向量)。
方法1750包括通过各个逐位比较电路的每个逐位比较电路确定接收的二进制向量和存储在与所述逐位比较电路相关联的存储单元中的二进制向量之间的重叠水平(1758)。在一个实施例中,存储器单元中的逐位比较电路指示移位寄存器将第一寄存器1704a中的位与第二寄存器1704b中的对应位(例如,寄存器中的第一位置中的两个位、寄存器中的第二位置中的两个位等)进行比较。在另一实施例中,如果特定位置处的两个位都被设置为1(例如,如果这些位相同),则逐位比较电路指示移位寄存器返回1。在又一实施例中,逐位比较电路将接收到的1的数量相加,以计算表示接收到的二进制向量和存储在与逐位比较电路相关联的存储器单元中的二进制向量之间的重叠水平的数量。
方法1750包括通过所述多个逐位比较电路中的每个确定重叠水平是否满足由处理器提供的阈值(1760)。在一个实施例中,处理器1221向存储器单元发送表示一定百分比的重叠的数字(例如,在可以在寄存器中存储16,000条信息的存储器单元中,如果仅希望接收其中在二进制向量之间存在100%重叠的存储器单元的识别,则处理器1221将发送数字16,000);逐位比较电路确定所计算的重叠程度是否与从处理器1221发送的数量匹配。例如,但不限于,如果逐位比较电路确定存在两个寄存器各自包含相同数据的16,000个实例,则逐位比较电路可以向处理器传输存储器单元满足重叠的阈值水平的指示;如果逐位比较电路确定仅存在14,000个两个寄存器各自含有相同数据的实例,那么逐位比较电路将不响应于处理器1221。在一些实施例中,处理器1221使用表示由用户先前指定的重叠的阈值水平的数字。在其它实施例中,处理器1221使用最高可用数量(例如,寄存器能够存储的最高位数)作为计数器,并减少其发送到存储器单元的数量,递归直到其从逐位比较电路接收到指示存在存储与所接收的二进制向量具有满足从处理器1221接收的阈值的重叠水平的二进制向量的存储器单元的响应。
方法1750包括通过确定重叠水平确实满足阈值的各个比较电路中的每个向处理器提供具有令人满意的重叠水平的所存储的二进制向量的识别(1762)。例如,识别符可以存储在第三寄存器中。
方法1750包括通过处理器提供满足阈值的每个存储的二进制向量的识别以及存储的二进制向量与接收的二进制向量之间的相似性水平(1764)。处理器可以将识别直接返回给用户(例如,经由用户接口)。或者,处理器可以将识别返回给最初请求两个二进制向量之间的比较的任何执行过程。
以这个方式,比较和分类两者同时且在存储器单元而非处理器中完成。与本文描述的方法和系统相反,用于利用存储器的传统系统不能可行地存储大的二进制向量,因为用于大小减小的典型技术(例如,散列)对于非常大的二进制向量之间的比较是无效的。
在一些实施例中,结合图17A和17B描述的系统和方法可以被利用以提高比较的效率和速度。因此,在这些实施例的一个中,系统和方法可以用于替换或增强相似性引擎304(以硬件而不是软件来有效地实现相似性引擎304)。以上结合图1A至16描述的系统和方法可以与结合图17A和17B描述的系统和方法组合。
图18A是描述用于识别多个数据表示之间的相似性水平的系统的实施例的框图。除了以上结合图17A明确描述的组件之外,本文描述的方法和系统可以包括图18A中描述的组件。例如,可以使用单独的寄存器来存储识别包括数据项的文档参考,从所述数据项生成所存储的SDR(“指纹”)。作为另一示例,逐位比较电路1710a可以包括附加子组件,诸如提供本文描述的功能性的重叠加法器和比较器。图18B是描述用于识别多个数据表示之间的相似性水平的方法的实施例的流程图。
参考图18A-B,并且结合图17A-B,用于识别第一数据项和数据文档集合内的数据项之间的相似性水平的方法1850包括通过在第一计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图(1852)。方法1850包括通过语义地图将坐标对与数据文档集合中的每个数据文档相关联(1854)。方法1850包括通过在第一计算设备上执行的解析器生成在数据文档的集合中出现的数据项的列举(1856)。方法1850包括通过在第一计算设备上执行的表示生成器针对列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的坐标对(1858)。方法1850包括通过表示生成器使用出现信息为列举中的每个数据项生成稀疏分布式表示(SDR),从而产生多个生成的SDR(1860)。方法1850包括通过第二计算设备上的处理器在第二计算设备上的多个存储单元中的每个中存储所述多个生成的SDR中的一个,所述多个存储单元中的每个包括逐位比较电路(1862)。方法1850包括通过第二计算设备从第三计算设备接收第一数据项(1864)。方法1850包括通过处理器经由数据总线将第一数据项的SDR提供给所述多个存储器单元中的每个存储器单元(1866)。方法1850包括通过所述多个逐位比较电路中的每个逐位比较电路确定第一数据项的SDR和存储在与所述逐位比较电路相关联的存储单元中的所生成的SDR之间的重叠水平(1868)。方法1850包括通过所述多个逐位比较电路中的每个确定重叠水平是否满足通过处理器提供的阈值(1870)。方法1850包括通过确定重叠程度的确满足阈值的每个比较电路向处理器提供存储在相关联的存储单元中的文档参考号,所述文档参考号识别包括数据项的文档,存储在存储单元中的SDR是从所述数据项生成的(1872)。方法1850包括通过第二计算设备向第三计算设备提供从其生成存储在存储器单元中的满足阈值的各个SDR的每个数据项的识别、以及从其生成所存储的SDR的数据项与所接收的数据项之间的相似性水平(1874)。
在一个实施例中,如上文结合图2(202)-(214)所描述那样执行(1852)-(1860)。
方法1850包括通过第二计算设备上的处理器在第二计算设备上的多个存储单元中的每个中存储所述多个生成的SDR中的一个,所述多个存储单元中的每个包括逐位比较电路(1862)。处理器可以将所述多个生成的SDR中的每个SDR存储在所述多个存储器单元中,如上文结合图17B(1752)所描述那样。
方法1850包括通过第二计算设备从第三计算设备接收第一数据项(1864)。处理器可以如上所述(例如但不限于,结合图5)接收第一数据项。
方法1850包括通过处理器经由数据总线将第一数据项的SDR提供给所述多个存储器单元中的每个存储器单元(1866)。处理器可以首先如上所述地指示SDR的生成,然后将所生成的SDR提供给存储器单元以便与先前存储的SDR进行比较。
方法1850包括通过所述多个逐位比较电路中的每个逐位比较电路确定第一数据项的SDR和存储在与所述逐位比较电路相关联的存储单元中的生成的SDR之间的重叠水平(1868)。逐位比较电路可以如上结合图17A-B所描述那样执行确定。
方法1850包括通过所述多个逐位比较电路中的每个确定重叠水平是否满足由处理器提供的阈值(1870)。逐位比较电路可以如上结合图17A-B所描述那样执行确定。
方法1850包括通过确定重叠程度的确满足阈值的每个比较电路向处理器提供存储在相关联的存储单元中的文档参考号,所述文档参考号识别包括数据项的文档,存储在存储单元中的SDR是从所述数据项生成的(1872)。逐位比较电路可以如上文结合图17A-B所描述那样提供所确定的重叠电平。
方法1850包括通过第二计算设备向第三计算设备提供从其生成存储在存储器单元中的满足阈值的SDR的每个数据项的识别、以及从其生成所存储的SDR的数据项与所接收的数据项之间的相似性水平(1874)。处理器可以如上结合图17A-B所描述那样将识别直接提供给第三计算机或提供给执行实现SDR之间的比较的上述结合图1A-16所述的任何方法的其它处理器。
已经描述了用于递归生成数据项指纹的方法和系统的某些实施例,现在对于本领域技术人员将变得显而易见的是,可以使用结合本公开的概念的其他实施例。因此,本公开不应限于某些实施例,而是应仅由所附权利要求的精神和范围来限制。

Claims (3)

1.一种使用聚类在第一二维度量空间中的第一数据文档集合内的数据项的分布式表示来生成第二二维度量空间中的分布式表示的聚类的方法,所述方法包括:
通过在计算设备上执行的参考地图生成器在二维度量空间中对根据至少一个标准选择的数据文档集合进行聚类,生成语义地图;
通过所述语义地图将坐标对与所述数据文档集合中的每个数据文档相关联;
通过在所述计算设备上执行的解析器生成在所述数据文档集合中出现的数据项的列举;
通过在所述计算设备上执行的表示生成器为所述列举中的每个数据项确定出现信息,所述出现信息包括:(i)所述数据项出现在其中的数据文档的数量,(ii)所述数据项在每个数据文档中出现的数量,以及(iii)与所述数据项出现在其中的每个数据文档相关联的所述坐标对;
通过所述表示生成器使用所述出现信息生成每个数据项的分布式表示;
通过在所述计算设备上执行的稀疏化模块接收最大稀疏度水平的识别;
通过所述稀疏化模块基于所述最大稀疏度水平来减少每个分布式表示内的设置二进位的总数以生成具有规范填充等级的稀疏分布式表示(SDR);
将各个SDR的每个存储在SDR数据库中;以及
通过在所述计算设备上执行的所述参考地图生成器在第二二维度量空间中聚类从所述SDR数据库检索并根据第二至少一个标准选择的SDR集合,生成第二语义地图。
2.如权利要求1所述的方法,其中,所述SDR集合是基于从全文本搜索系统接收到所述SDR与第二数据文档集合相关联的指示来选择的。
3.如权利要求1所述的方法,还包括:
将所述第二数据文档集合中的至少一个数据文档的至少一个片段提供给全文本搜索系统;
从所述全文本搜索系统接收所述数据文档集合中包含所提供的片段的匹配数据文档的坐标对的列举;以及
从所述SDR数据库中检索与坐标对的所述列举中的各个坐标对的每个相关联的至少一个SDR。
CN202180076564.1A 2020-11-19 2021-11-18 用于在语义地图的生成中重用数据项指纹的方法和系统 Pending CN116420142A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063115944P 2020-11-19 2020-11-19
US63/115,944 2020-11-19
PCT/EP2021/082138 WO2022106538A1 (en) 2020-11-19 2021-11-18 Methods and systems for reuse of data item fingerprints in generation of semantic maps

Publications (1)

Publication Number Publication Date
CN116420142A true CN116420142A (zh) 2023-07-11

Family

ID=78819518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180076564.1A Pending CN116420142A (zh) 2020-11-19 2021-11-18 用于在语义地图的生成中重用数据项指纹的方法和系统

Country Status (8)

Country Link
US (2) US11734332B2 (zh)
EP (1) EP4248334A1 (zh)
JP (1) JP2023551418A (zh)
KR (1) KR20230104181A (zh)
CN (1) CN116420142A (zh)
AU (1) AU2021380919A1 (zh)
CA (1) CA3194749A1 (zh)
WO (1) WO2022106538A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572221B2 (en) 2016-10-20 2020-02-25 Cortical.Io Ag Methods and systems for identifying a level of similarity between a plurality of data representations
US11449625B2 (en) 2021-01-18 2022-09-20 Vmware, Inc. Optimized directory enumeration and data copy for client drive redirection in virtual desktops
EP4328779A1 (en) * 2022-08-26 2024-02-28 Siemens Healthineers AG Structuring data for privacy risks assessments
CN117649466B (zh) * 2024-01-30 2024-05-14 深圳市崇宁实业有限公司 基于ai算法的装饰画雕刻凹纹的生成系统及方法

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369764A (en) 1990-04-25 1994-11-29 Blair; Gary L. Method for sharing access to database elements in a data processing system
US5787422A (en) 1996-01-11 1998-07-28 Xerox Corporation Method and apparatus for information accesss employing overlapping clusters
US5778362A (en) 1996-06-21 1998-07-07 Kdl Technologies Limted Method and system for revealing information structures in collections of data items
EP1071081B1 (en) 1996-11-07 2002-05-08 Matsushita Electric Industrial Co., Ltd. Vector quantization codebook generation method
EP0884688A3 (en) 1997-06-16 2005-06-22 Koninklijke Philips Electronics N.V. Sparse index search method
US5907840A (en) 1997-07-25 1999-05-25 Claritech Corporation Overlapping subdocuments in a vector space search process
US6260036B1 (en) 1998-05-07 2001-07-10 Ibm Scalable parallel algorithm for self-organizing maps with applications to sparse data mining problems
US7068787B1 (en) 1998-10-23 2006-06-27 Contentguard Holdings, Inc. System and method for protection of digital works
US6598054B2 (en) 1999-01-26 2003-07-22 Xerox Corporation System and method for clustering data objects in a collection
WO2000046701A1 (en) 1999-02-08 2000-08-10 Huntsman Ici Chemicals Llc Method for retrieving semantically distant analogies
JP3347088B2 (ja) 1999-02-12 2002-11-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 関連情報検索方法およびシステム
JP2000305795A (ja) 1999-04-20 2000-11-02 Nec Corp 並列処理装置
EP1049030A1 (en) * 1999-04-28 2000-11-02 SER Systeme AG Produkte und Anwendungen der Datenverarbeitung Classification method and apparatus
US6922700B1 (en) 2000-05-16 2005-07-26 International Business Machines Corporation System and method for similarity indexing and searching in high dimensional space
US6721721B1 (en) 2000-06-15 2004-04-13 International Business Machines Corporation Virus checking and reporting for computer database search results
US6675159B1 (en) 2000-07-27 2004-01-06 Science Applic Int Corp Concept-based search and retrieval system
AUPR033800A0 (en) 2000-09-25 2000-10-19 Telstra R & D Management Pty Ltd A document categorisation system
US6650890B1 (en) 2000-09-29 2003-11-18 Postini, Inc. Value-added electronic messaging services and transparent implementation thereof using intermediate server
US6787422B2 (en) 2001-01-08 2004-09-07 Chartered Semiconductor Manufacturing Ltd. Method of body contact for SOI mosfet
US6766316B2 (en) 2001-01-18 2004-07-20 Science Applications International Corporation Method and system of ranking and clustering for document indexing and retrieval
US7036072B1 (en) 2001-12-18 2006-04-25 Jgr Acquisition, Inc. Method and apparatus for declarative updating of self-describing, structured documents
US7552385B2 (en) 2001-05-04 2009-06-23 International Business Machines Coporation Efficient storage mechanism for representing term occurrence in unstructured text documents
CN1489086A (zh) 2002-10-10 2004-04-14 莎 刘 一种语义约定全文翻译系统和方法
US7158957B2 (en) 2002-11-21 2007-01-02 Honeywell International Inc. Supervised self organizing maps with fuzzy error correction
GB2395807A (en) 2002-11-27 2004-06-02 Sony Uk Ltd Information retrieval
US7502779B2 (en) 2003-06-05 2009-03-10 International Business Machines Corporation Semantics-based searching for information in a distributed data processing system
US7447665B2 (en) 2004-05-10 2008-11-04 Kinetx, Inc. System and method of self-learning conceptual mapping to organize and interpret data
US20060155751A1 (en) 2004-06-23 2006-07-13 Frank Geshwind System and method for document analysis, processing and information extraction
US7539681B2 (en) 2004-07-26 2009-05-26 Sourcefire, Inc. Methods and systems for multi-pattern searching
US7739208B2 (en) 2005-06-06 2010-06-15 Numenta, Inc. Trainable hierarchical memory system and method
EP1941346A4 (en) 2005-09-21 2010-10-27 Praxeon Inc DOCUMENT PROCESSING
US20070124293A1 (en) 2005-11-01 2007-05-31 Ohigo, Inc. Audio search system
US7472131B2 (en) 2005-12-12 2008-12-30 Justsystems Evans Research, Inc. Method and apparatus for constructing a compact similarity structure and for using the same in analyzing document relevance
US20090024598A1 (en) 2006-12-20 2009-01-22 Ying Xie System, method, and computer program product for information sorting and retrieval using a language-modeling kernel function
US20070192267A1 (en) 2006-02-10 2007-08-16 Numenta, Inc. Architecture of a hierarchical temporal memory based system
US7840540B2 (en) 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US20100205123A1 (en) 2006-08-10 2010-08-12 Trustees Of Tufts College Systems and methods for identifying unwanted or harmful electronic text
US7937342B2 (en) 2006-11-28 2011-05-03 Numenta, Inc. Method and apparatus for detecting spatial patterns
US8676802B2 (en) 2006-11-30 2014-03-18 Oracle Otc Subsidiary Llc Method and system for information retrieval with clustering
WO2008106615A1 (en) 2007-02-28 2008-09-04 Numenta, Inc. Spatio-temporal learning algorithms in hierarchical temporal networks
US7933904B2 (en) 2007-04-10 2011-04-26 Nelson Cliff File search engine and computerized method of tagging files with vectors
CN101251862B (zh) 2008-03-25 2010-06-09 北京百问百答网络技术有限公司 一种基于内容的问题自动分类方法及其系统
US8676815B2 (en) 2008-05-07 2014-03-18 City University Of Hong Kong Suffix tree similarity measure for document clustering
CA2772082C (en) 2009-08-24 2019-01-15 William C. Knight Generating a reference set for use during document review
US8326820B2 (en) 2009-09-30 2012-12-04 Microsoft Corporation Long-query retrieval
US9189745B2 (en) 2010-03-15 2015-11-17 Numenta, Inc. Temporal memory using sparse distributed representation
US8713021B2 (en) 2010-07-07 2014-04-29 Apple Inc. Unsupervised document clustering using latent semantic density analysis
US9088601B2 (en) 2010-12-01 2015-07-21 Cisco Technology, Inc. Method and apparatus for detecting malicious software through contextual convictions, generic signatures and machine learning techniques
JP5669638B2 (ja) 2011-03-17 2015-02-12 キヤノン株式会社 文書管理装置、文書管理方法、プログラム。
US8346779B2 (en) 2011-03-29 2013-01-01 Roy Gelbard Method and system for extended bitmap indexing
US8825565B2 (en) * 2011-08-25 2014-09-02 Numenta, Inc. Assessing performance in a spatial and temporal memory system
US8504570B2 (en) 2011-08-25 2013-08-06 Numenta, Inc. Automated search for detecting patterns and sequences in data using a spatial and temporal memory system
US8745022B2 (en) 2011-11-22 2014-06-03 Navteq B.V. Full text search based on interwoven string tokens
EP2817737A4 (en) 2012-02-22 2015-10-07 Nokia Technologies Oy ADAPTIVE SYSTEM
HUE030528T2 (en) 2012-03-15 2017-05-29 Cortical Io Gmbh Process, equipment and product for semantic processing of texts
WO2013138968A1 (en) 2012-03-17 2013-09-26 Beijing Haipu Wangju Technology Limited Method and system for hybrid information query
US8706783B2 (en) 2012-08-09 2014-04-22 Sap Ag Storing hierarchical table as a markup language file
US9418145B2 (en) 2013-02-04 2016-08-16 TextWise Company, LLC Method and system for visualizing documents
US9704102B2 (en) 2013-03-15 2017-07-11 William Marsh Rice University Sparse factor analysis for analysis of user content preferences
US9501503B2 (en) * 2013-05-09 2016-11-22 Microsoft Technology Licensing, Llc Inferring entity attribute values
US20150019530A1 (en) 2013-07-11 2015-01-15 Cognitive Electronics, Inc. Query language for unstructed data
JP6041439B2 (ja) 2013-09-12 2016-12-07 Kddi株式会社 画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法
US10318878B2 (en) 2014-03-19 2019-06-11 Numenta, Inc. Temporal processing scheme and sensorimotor information processing
US10409912B2 (en) 2014-07-31 2019-09-10 Oracle International Corporation Method and system for implementing semantic technology
US20190332619A1 (en) 2014-08-07 2019-10-31 Cortical.Io Ag Methods and systems for mapping data items to sparse distributed representations
US10885089B2 (en) 2015-08-21 2021-01-05 Cortical.Io Ag Methods and systems for identifying a level of similarity between a filtering criterion and a data item within a set of streamed documents
US10394851B2 (en) 2014-08-07 2019-08-27 Cortical.Io Ag Methods and systems for mapping data items to sparse distributed representations
US9727459B2 (en) 2014-08-22 2017-08-08 Seagate Technology Llc Non-volatile, solid-state memory configured to perform logical combination of two or more blocks sharing series-connected bit lines
CN105956010B (zh) 2016-04-20 2019-03-26 浙江大学 基于分布式表征和局部排序的分布式信息检索集合选择方法
US10572221B2 (en) 2016-10-20 2020-02-25 Cortical.Io Ag Methods and systems for identifying a level of similarity between a plurality of data representations

Also Published As

Publication number Publication date
EP4248334A1 (en) 2023-09-27
KR20230104181A (ko) 2023-07-07
US20230334079A1 (en) 2023-10-19
AU2021380919A9 (en) 2024-09-05
WO2022106538A1 (en) 2022-05-27
CA3194749A1 (en) 2022-05-27
AU2021380919A1 (en) 2023-06-15
US20220156303A1 (en) 2022-05-19
JP2023551418A (ja) 2023-12-08
US11734332B2 (en) 2023-08-22

Similar Documents

Publication Publication Date Title
US11714602B2 (en) Methods and systems for identifying a level of similarity between a plurality of data representations
US20210049198A1 (en) Methods and Systems for Identifying a Level of Similarity Between a Filtering Criterion and a Data Item within a Set of Streamed Documents
US10394851B2 (en) Methods and systems for mapping data items to sparse distributed representations
US20190332619A1 (en) Methods and systems for mapping data items to sparse distributed representations
US11734332B2 (en) Methods and systems for reuse of data item fingerprints in generation of semantic maps

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination