CN101088082A - 全文查询和搜索系统及其使用方法 - Google Patents
全文查询和搜索系统及其使用方法 Download PDFInfo
- Publication number
- CN101088082A CN101088082A CN 200580044686 CN200580044686A CN101088082A CN 101088082 A CN101088082 A CN 101088082A CN 200580044686 CN200580044686 CN 200580044686 CN 200580044686 A CN200580044686 A CN 200580044686A CN 101088082 A CN101088082 A CN 101088082A
- Authority
- CN
- China
- Prior art keywords
- word
- text
- database
- information
- inquiry
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明是一种用于对基于文本的数据库进行文本搜索的方法,包括了对于编纂的互联网内容、科学文献、书本和文章的摘要、报纸、期刊和诸如此类的数据库。特别是,该算法支持使用全文或网页作为查询和关键词搜索的搜索,它允许多条目的数据库、以信息内容为基础的评级系统(Shannon信息值),其中使用p-值来代表来自随机匹配的命中可能性。而且,用户可以具体指定参数,根据短语匹配和句子相似性,来确定命中和其评级。
Description
技术领域
本发明包含信息技术和软件领域,具体涉及对以文本为基础的数据库的带有评级的信息检索方法。
背景技术
传统在线的以电脑为基础的文本内容数据库的搜索方法多数以关键词为基础,即,一个数据库和与它相应的字典首先被建立。该数据库的一个索引文件是与该字典相联系的,在该字典中每个关键词的出现和它们在数据库中的位置都被记录下来。当一个查询含有输入的关键词,在数据库中含有该关键词的所有条目都被返回。在“高级搜索”类型中,一个用户也能够具体指定排除的单词,其中具体指定的单词的出现将不允许被呈现在任何的命中中。
有关以关键词为基础的搜索引擎的主要问题在于如何评级命中,如果有许多条目含有该单词。首先考虑一个单一关键词的情况。例如GOOGLE,目前的一个互联网搜索引擎,使用由其他条目所指向的那个条目的连接数量作为分类评分值(以引用或提及为基础的评级)。这样,其他条目提及该条目(条目E)的次数越多,该条目E在挑出列表的可能性越高。一个关于关键词的搜索被减少到二进制搜索首先在索引文件中定位该单词,然后定位含有该单词的数据库条目。含有该单词的所有条目完整列表以一个由引用评级的挑选方式被报告给用户。另一种方法,由GOOGLE和由YAHOO所使用,根据网页所有人之间的一个拍卖方案来评级:谁为该单词支付费用最高谁将有更高的评分值分配给它们的网页。这两种评级方法能够被分别的实现或混合使用来生成一个加权评分值。
如果多个关键词被使用于查询,上面的搜索将被执行多次,并且结果随后应用Boolean逻辑被处理过,典型地一个“联合”操作,该操作中仅两个搜索结果的交集被选出。该评级将是一个基于以下条目的加权评分值(1)一个命中中含有的命中单词数;(2)该命中的引用评级;和(3)来自命中的所有人支付的广告费数目。
现有技术的局限性
用该种搜索方法的一个额外问题是为一个或一些有限的关键词产生大量的“命中”。当一个数据库很大,或媒体变得不均,这一方法尤其麻烦。这时,传统的搜索引擎限制了数据库的内容和大小,也限制了关键词的选择。在因特网范围的网站搜索中,我们面对非常巨大的数据库,并且有着非常不均等的数据内容。这些局限应该被排除。YAHOO首先试图使用分类,对每个特定的种类施加数据内容的约束和数据库大小的限制。这种分类方法是非常劳动密集型的,并且在众多的种类和副种类间的浏览中对用户施加很多负担。
GOOGLE是通过评级每个条目的质量来解决“命中量大”的问题的。对一个网页数据库,一个条目的质量能通过连接次数(其他网页提及该地址多少次),该网站的受欢迎度(该网页有多少游客),等来计算出。对商业广告的数据库,质量可以通过支付的钱数来决定。互联网用户因而不再承受穿过多层的种类或关键词的限制的负担。使用任何关键词,google的搜索引擎返回一个由它的算法所“客观地评级”的结果列表。
现有搜索技术的局限性:
1)限制搜索单词的数量:关键词的数量非常有限(通常少于10个单词)。通常用户只能提供一些关键词。在多数场合,可能很难用少量关键词来完整地定义一件有关的主题。
2)“命中量大”的问题:即,报告许多不相关的结果。通常该搜索的结果是一个巨大的数据库条目集合,它们中多数与用户想要的主题没有关系,但它们都含有用户提供的少量的关键词。
3)“命中”的评级可能不能实现用户的意图:即,相关的信息可能在搜索结果中但被埋在列表的深处。没有好的挑选方法将最相关的结果带到结果列表的前面,导致用户很失望。
发明内容
本发明提供一个搜索引擎,用于以文本为基础的数据库。该搜索引擎包含一种算法,该算法使用一个查询来搜索、检索、以及评级出现于至少一个数据库的文本、单词、短语、信息元、或诸如此类。该搜索引擎使用以查询和命中文件之间的共有单词或信息元得出的Shannon信息值为基础的评级,以计算出的Shannon信息评分p-值为基础,或者以单词或信息元频率、共有单词或信息元的百分比本身为基础的p-值来进行评级。
本发明也提供一个以文本为基础的搜索引擎,该引擎包含一种算法,该算法包含如下步骤:1)用于将查询文件中的第一个文本与文本数据库中的第二个文本作比较的办法;2)用于识别两者之间共有的信息元的办法;并且3)用于计算累积评分值或以下各评分值的办法,包括利用信息元频率分布来衡量信息内容的重叠次数的评分,以及从共有信息元的累积Shannon信息、共有信息元的组合p-值、重叠单词的数量、和重叠单词的百分比的集合中挑选出的评分。
在一个具体实施例中,本发明提供一个文本信息的计算机化存储和检索系统用于搜索和评级,该系统包括:用于输入和储存数据以作为一个数据库的装置;用于显示数据的装置;一个用于执行文本自动分析的可编程的中央处理单元,其中分析的是文本,该文本从包含所查询的全文、所查询的网页的集合中挑选出,根据查询和命中文件之间共有单词得出Shannon信息评分值来评级命中文件,评级以p-值,计算出的Shannon信息值为基础或p-值以单词频率为基础,该单词频率已经被为了专门的数据库而直接计算出或被来自至少一个的外部来源所评估,共有信息元的百分比本身,查询和命中文件之间共有信息元得出的Shannon信息值,共有信息元的p-值,共有信息元的百分比自身,计算出的Shannon信息值或者以信息元频率为基础的p-值,该信息元频率已经被为了专门的数据库而直接计算出或被来自至少一个的外部来源所评估,并且其中文本包含至少一个单词。在可供选择的实施例中,该文本包含众多的单词。在另一个具体实施例中,查询包含的文本的单词数从含有1-14,15-20,20-40,40-60,60-80,80-100,100-200,200-300,300-500,500-750,750-1000,1000-2000,2000-4000,4000-7500,7500-10000,10000-20000,20000-40000,以及超过40000个单词的集合中挑选出。在进一步的实施例中,文本包含至少一个短语。在进一步的实施例中,文本可以是被加密的。
在另一个实施例中,该系统所包含的在此以及在彼公开的系统自动分析进一步允许在查询文件中重复的信息元和以更高的值来安置重复的信息元。在更优的实施例中,自动分析评级以p-值为基础,该p-值是命中文件对查询文件所共有的信息元的可能性或几率的量度,并且其中的p-值是以数据库中信息元的分布来计算的,并且可选择地,在此p-值是以数据库中信息元的估计分布来计算的。在一个可供选择的实施例中,命中文件的自动评级是以Shannon信息评分值为基础的,在此Shannon信息评分值是查询和命中文件共有的信息元的累积Shannon信息。在另一个可供选择的实施例中,命中文件的自动评级是以百分比本身为基础的,在此百分比本身是2*(共有的信息元)/查询和命中文件中总信息元的比率。
在此公开的系统的另一个实施例中,计算查询和命中文件中的信息元是在词干溯源之前执行的。可供选择的,计算查询和命中文件中的信息元是在词干溯源之后执行的。在另一个可供选择中,计算查询和命中文件中的信息元是在移走普通单词之前执行的。在另一可供选择中,计算查询和命中文件中的信息元是在移走普通单词之后执行的。
在此公开的系统的进一步实施例中,对命中文件评级是以累积评分值为基础的,该累积评分值从含有p-值、Shannon信息评分值、以及百分比本身的集合中挑选出。在一个更优的实施例中,自动分析分别为每个配对的单词分配一个固定的评分值和为每个匹配的短语分配一个固定的评分值。
在该系统的更优实施例中,该算法进一步包含办法用于在显示器上以命中文件呈现查询文件,其中让共有的文本被强调。
在另一实施例中数据库进一步包含一个同义词和短语列表。
在本系统的另一实施例中,该算法允许用户向数据库输入同义词,该同义词与相关的查询联合并且包括在分析中。在另一实施例中,该算法接受文本作为查询而不要求关键词,在此文本从含有摘要、标题、句子、论文、文章以及其中的任何部分的集合中挑选出。在可供选择的实施例中,该算法接受文本作为查询而不要求关键词,在此文本从含有网页、网页URL地址、网页的重要部分以及其中的任何部分的集合中挑选出。
在本发明的更优实施例中,该算法分析一个单词,其中该单词可在自然语言中找到。在更优的实施中,该语言从含有汉语、法语、日语、德语、英语、爱尔兰语、俄语、西班牙语、意大利语、葡萄牙语、希腊语、波兰语、捷克语、斯洛伐克语、塞卜-克罗特语、罗马尼亚语、阿尔巴尼亚语、土耳其语、希伯来语、阿拉伯语、印度语、乌都语、泰语、togalog语、玻利尼西亚语、韩语、越南语、老挝语、kmer语、缅甸语、印度尼西亚语、瑞士语、挪威语、丹麦语、冰岛语、芬兰语、匈牙利语、以及此类的集合中挑选出。
本发明的更优实施例中,算法分析一个单词,其中该单词可在电脑语言中找到。在更优的实施例中,该语言从含有C/C++/C#,JAVA,SQL,PERL,PHP,以及此类的集合中挑选出。
本发明进一步提供一个处理过的文本数据库,该数据库来源于一个原始的文本数据库,该处理过的文本数据库所有的文本从含有过滤出普通单词的文本,和用词干溯源的办法归并起来的、有同样词根的单词,一个生成的含有单词和自动识别的短语的信息元列表,一个生成的频率分布或每个单词的估计频率,以及与每个信息元相联系的从频率分布中计算出的Shannon信息的集合中挑选出。
在此公开的本系统的另一实施例中,可编程的中央处理单元进一步包含一个算法用于屏蔽和忽略数据库中很可能与查询无关的文本。在更优的实施例中,该屏蔽算法进一步包含倒转索引,查找该索引,针对该数据库的查询可以很快识别在数据库中包含与该查询相关的特定单词的某些条目。
本发明也提供一个搜索引擎方法用于搜索和评级文本,该方法包含如下步骤:1)提供如在此所公开的计算机化的储存和检索系统;2)在可编程的中央处理单元中安装以文本为基础的搜索引擎;3)输入文本,该文本从含有正文、全文、或关键词的集合中挑选出;该方法在数据库中产生一个经搜索和评级的文本。
本发明也提供一个方法用于生成一个列表,该列表含有短语列表,在给定的文本数据库中他们的分布频率,以及他们相联系的Shannon信息评分值,该方法包含如下步骤:1)提供在此公开的系统;2)提供一个阈值频率用于识别固定长度的两个单词的连续词组,在数据库中作为一个短语;3)提供区别阈值频率用于识别固定长度的3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,以及20个单词的连续词组作为数据库中的短语;4)识别每个被识别出的短语在文本数据库中的频率值;5)识别至少一个信息元;并且6)有根据地调整频率表,以使得当新的固定长度的短语被识别后,在一个已被识别的信息元中作为其组成部分的信息元不会被多次计算,由此产生一个列表,含有短语、他们的分布频率、以及与他们关联的Shannon信息评分值。
本发明也提供一个方法用于比较两个句子以发现它们之间的相似性并且提供相似评分值,其中比较以两个或多个项目为基础,这些项目从含有单词频率、短语频率、单词和短语的顺序、插入和删除处罚的集合中挑选出,并且利用代替矩阵来计算相似值,其中该代替矩阵提供一个不同单词和短语之间的相似评分值。
本发明也提供一个文本查询搜索引擎包含装置用于使用在此公开的方法,用全文作为查询的搜索引擎或者用网页作为查询的搜索引擎。
本发明进一步提供一个用户接口,该接口显示使用在此公开的算法识别的数据,该显示使用从含有网页、图形的用户接口、触摸屏接口的集合中挑选出的显示装置来呈现,以及因特网联接装置,并且因特网连接装置从含有宽带连接、以太网连接、电话线连接、无线连接、以及电波连接的集合中挑选出。
本发明也提供一个搜索引擎包含在此公开的系统、在此公开的数据库、在此公开的搜索引擎、以及用户接口,进一步包含一个命中,该命中从含有根据网络的受欢迎度评级、引用评分值评级、支付的广告费的数目评级的命中文件的集合中挑选出。在更优的实施例中,算法进一步包含装置用于重新评级来自其它搜索引擎的搜索结果,该重新评级使用为数据库文本的Shannon信息或为重叠单词的Shannon信息。在另一更优实施例中,该算法进一步包含装置用于重新评级来自其它搜索引擎的搜索结果,该重新评级使用一个p-值,它以数据库中的信息元分布频率为基础计算出或者以重叠信息元的分布频率为基础计算出。
本发明也提供一个方法用于为查询和命中文件中重复的信息元计算Shannon信息,该方法包含使用等式S=min(n,m)*Sw计算值S的步骤,其中Sw是信息元的Shannon信息,在查询中一个共有的信息元次数是m,在命中文件中一个共有的信息元次数是n。
本发明进一步提供一个方法用于评级广告,该方法使用在此公开的全文搜索引擎、在此公开的搜索引擎方法、Shannon信息评分值、并且该方法用于计算上面公开的Shannon信息,该方法进一步包含创建一个广告数据库的步骤。在更优的实施例中,用于评级广告的该方法进一步包含向用户输出评级的步骤,用户通过从用户接口或电子邮件公告来收到。
在另一个实施例中,本发明提供一个方法用于向使用评级广告的方法的顾客收费,并且这是以计算广告中的单词和由顾客点击进入广告商的网址的连接次数为基础的。
在另一个实施例中,本发明提供一个方法用于重新评级来自第二搜索引擎的输出,该方法进一步包含如下步骤:1)使用来自第二搜索引擎的命中文件作为查询文件;并且2)使用权利要求25的方法生成一个重新评级的命中文件,其中搜索的数据库局限于已由第二搜索引擎返回的所有命中文件。
本发明也提供一个如上面所公开的用户接口,该用户接口进一步包含第一虚拟按钮设置在至少一个命中文件的虚拟邻接中,并且其中当第一虚拟按钮被用户点击,搜索引擎使用该命中文件作为查询再次搜索整个数据库产生一个以该命中文件作为查询基础的新的结果页。在另一个可供选择的实施例中,用户接口进一步包含第二虚拟按钮设置在至少一个命中文件的虚拟邻接中,并且其中当第二虚拟按钮被用户点击,搜索引擎使用该点击作为查询来重新评级所有命中文件的集合产生一个以该命中文件为查询基础的新的结果页。在更优的实施例中,该用户接口进一步包含一个与网络浏览器相联合的搜索功能和设置在网络浏览器的头部的第三虚拟按钮。在更优的实施例中,网络浏览器从含有网景,IE以及sofari的集合中挑选出。在另一个实施例中,第三虚拟按钮被标志为“搜索因特网”以使当第三虚拟按钮被用户点击后,搜索引擎将使用显示的页面作为查询来搜索整个因特网数据库。
本发明也提供一台电脑包含在此公开的系统和用户接口,其中该算法进一步包含使用由用户选择的查询来搜索因特网的步骤。
本发明也提供一个方法用于压缩一个以文本为基础的含有唯一标识符的数据库,该方法包含如下步骤:1)产生一个包含字符串的表格;2)给表格中每个字符串设置一个标识符(ID),其中给表格中的每个字符串的ID都是根据文本在数据库中的使用空间设置的,使用空间通过利用等式freq(字符串)*length(字符串)来计算;并且3)在上升顺序中用列表中的各ID来代替表格中的文本,该步骤产生一个压缩数据库。在该方法的更优实施例中,该ID是一个整数从含有二进制数和整数级数的集合中挑选出。在另一个可供选择的实施例中,本方法进一步包含使用zip压缩和解压软件程序的压缩。本发明也提供一个方法用于解压压缩的数据库,该方法包含如下步骤:1)用相关的字符串来代替列表中的各ID,并且2)在表格中列出字符串,该步骤产生一个解压的数据库。
本发明进一步提供一个全文查询和搜索方法包含在此公开的压缩方法,该压缩方法进一步包含如下步骤:1)在硬盘中保存数据库;并且2)将磁盘内容装载进内存中。在另一个具体实施中,全文查询和搜索方法进一步含有使用各种相似矩阵来代替本身映射的步骤,其中相似矩阵定义信息元和他们的同义词,并且进一步有选择地提供一个0和1之间的相似系数,其中0表示没有相似性,1表示相同。
在另一个具体实施例中用于计算Shannon信息的方法进一步包含使用Shannon信息聚成文本簇。在更优的实施例中,文本的格式从含有返回自搜索的一个数据库和一个列表的集合中挑选出。
本发明也提供在此公开的系统和用于计算Shannon信息的方法进一步使用Shannon信息关键词为基础的查询搜索单词少于10个,其中算法包含恒量从含有限制系数恒量α,其中0<=α<=1,和限制位置系数恒量β,其中0<=β<=1的集合中挑选出,并且其中总评分值是共有信息元的一个函数,总查询信息元数目K,和在命中文件每个信息元的频率,以及α和β。在更优的实施例中,显示的命中文件进一步包含多个部分,它们的分割是根据从含有一个阈值特征的一组中选出的特征,其中该部分有一个符合查询的命中文件超过了该阈值,一个分离的距离特征,其中有一个显著的单词将两部分分离,还有一个锚状特征处在或接近于该部分的开始和结尾,其中该锚是命中文件单词。
在一个可供选择的实施例中,在此公开的系统和用于计算Shannon信息的方法被用于筛选垃圾邮件。
在另一个可供选择的实施例中,在此公开的系统和用于计算Shannon信息的方法被用于审查重要的电子邮件。
附图说明
图1说明命中文件是如何根据查询和命中文件中重叠的信息元进行评级的。
图2是一个简明流程图,显示本发明的一个具体实施例是如何使用的。
图3是一个简明流程图,显示本发明的另一个具体实施例是如何使用的。
图4说明本发明的一个具体实施例,显示查询输入的三种不同方法。
图5说明一个具体输出显示列出的命中文件,它们是使用图4的查询文本页识别出。
图6说明查询文本页和命中文本页之间的比较,显示共有的单词,该比较可以通过图5的输出显示中的链接进入。
图7说明一个显示经评估的SI-score(评分)表,比较查询文本页中的各个单词和命中文本页中的相同单词,该表格可以通过图5的输出显示中链接进入。
图8说明由百分比本身挑选的在图5中表明的具体输出显示列表。
图9说明本发明的一个可供选择的具体实施例显示三种不同的查询输入方法,其中输出显示一个由SI-score(评分)所挑选的非交互的命中文件列表。
图10说明本发明的一个可替代的具体实施例,显示一种用于输入一个URL地址来查询的方法,该URL地址随后被从词法上分析并被用作查询文本页。
图11说明使用图10的具体URL的输出。
图12说明本发明的一个可供选择的具体实施例,显示一种用于输入一个被用作查询文本页的关键词串来查询的方法。
图13说明使用图12的各个具体关键词的输出。
具体实施方式
在该文件中公开的实施例是作为说明的和示例的,并且并非意味着对本发明的限制。其他实施例能被利用并且能够做出结构性的改变而不违反本发明的权利主张范围。
正如在此和在附属权利要求使用的,单数形式的“a”,“an”,以及“the”都包括复数的参照引用除非上下文明显的提示除外。这样,例如,提到“一个短语”包括该短语的复数形式,并且提到“一种算法”就是提到一个或更多的算法以及其等价物,以此类推。
定义
数据库和它的条目:这里一个数据库是一个以文本为基础的个体文本文件的集合。每个文本文件是一个条目。每个条目有一个唯一的基本的关键词(条目的名字)。我们期望条目长度的变化不要过大。
查询:一个文本文件含有如数据库中的相同种类的信息。一些对用户有特殊兴趣的东西。它也能成为数据库中的条目。
命中:一个命中文件是数据库中的一个文本文件的条目,在该数据库中查询与命中文件在用词上的重叠被计算出重要性。重要性是与如下面公开的一个分值或众多分值相联系的。当重叠单词的集合分值超出某个特定条目,则该文件就被认为是命中文件。计算分值的方法有很多,例如,记录重叠单词的数量;使用与重叠单词相联系的计算出的Shannon信息;计算p值,该值显示与查询相联系的命中文件由于偶然而存在多大的相似性。
命中评分值:一项措施(如矩阵)用于记录命中文件相对于查询的质量。衡量该命中文件质量有很多的方法,取决于该问题如何被看待或被考虑。在最简单的场景中该分值被定义为两个文本间重叠单词的数量。这样,重叠的单词越多,分值就越高。通过引用在其他来源和/或数据库中出现的命中文件的评级是另一种方式。该方法在关键词搜索中使用最佳,该搜索方法中100%的查询相匹配是足够的,并且根据关键词的文件副评级是以每个网址的重要性为基础的。在上面提到的情况中重要性被定义为“来自外部地址的该地址的引用”。本发明的搜索引擎中,下面的命中分值能被本发明所使用:百分比本身,共有单词和短语的数量,p值,以及Shannon信息。其他参数也能被测量以获得一个分值,并且这些在本技术领域是公知的。
一个数据库的单词分布:对一个文本数据库,存在一个总的唯一的单词计数:N。每个单词W有它的频率f(w),意味着其在数据库中出现的次数。在数据库中单词的总数是Tw=Sif(wi),i=1,-----,N,其中Si代表所有i的总和。对所有单词w(在此是一个矢量)的频率,F(w),被表示为数据库的分布。该构思来自一个概率理论。该单词分布可以被用于自动移走冗余短语。
完全相同单词的计数:如果一个单词都在查询和命中文件中出现一次,很容易计算出它是两个文件共有的普通单词。本发明试图计算再查询和命中文件中出现都超过一次的单词。一个实施例将遵循如下的规则:对相同单词在查询中(出现m次)而在命中文件中(出现n次),数量计算为:min(m,n),m和n中的较小者。
百分比本身:一个用于衡量两个文件(查询和命中)之间相似性的分值。在一个具体实施例中,其实查询文件和命中文件之间单词相同的百分比。百分比本身被定义为:(2*共有单词的数量)/(查询的单词总数+命中的单词总数)。对于查询和命中中相同的单词,我们遵循在项目6中的规则。通常,分值越高,两个条目间的相关性越高。如果查询和命中完全相同,百分比本身=100%。
p-值:在查询和命中中共有单词出现的可能性,其实完全随机的,考虑到对于数据库的分布功能F(w)。该p-值使用精密的概率理论来计算,但有些困难。作为第一等级的近似,我们将使用P=Pip(wi),其中Pi是所有i的乘积在命中和查询中共有单词,p(wi)是每个单词的概率,p(wi)=f(wi)/Tw。真实的p-值是与该数量线性联系的,但有一个倍数因素,该因素与查询,命中,以及数据库的大小相联系。
一个单词的Shannon信息:在更复杂的场景中,该分值被定义为重叠单词的累积Shannon信息,在此Shannon信息被定义为-log2(f/Tw),其中f是该单词的频率,该单词在数据库中出现的数量,以及Tw是数据库中单词的总数。
短语:代表在一个固定的连续的顺序中单词列表,并且使用一个算法而从一个文本和/或数据库中挑选出,该算法决定其在数据库中出现的频率(单词分布)。
信息元是一个与在查询和命中文件中的单词,短语,和/或文本相联系的最基本的信息单元。在数据库中的该单词,短语,和/或文本被分配一个单词分布频率值,以及被分配一个信息元如果频率值是高于一个预先定义的频率。该预先定义的频率能因数据库的不同而有区别,并且能够以不同内容的数据库为基础,例如,一个基因数据库的内容是不同于一个中文文学数据库的内容的,或诸如此类。为不同数据库所预先决定的决定可以是简化的,并且在一个频率表中列出。该表格能由用户自由的获得或者是支付一定的费用后获取。信息元的分布频率被用于生成Shannon信息和p值。如果查询和命中有一个重叠和/或类似的信息元频率,则该命中被分配一个命中分值,该值将命中文件排列进或置顶于输出列表。在一些情况中,术语“单词”与术语“信息元”是同义词;在其他情况中术语“短语”与术语“信息元”是同义词。
一篇文章或两篇文章之间共有单词的Shannon熵和信息:
假设X是一个在数列X={X1,---,Xn}中离散的随机的变量,概率p(x)=Pr(X=x)。X,H(X)的熵被定义为:
H(X)=-Sip(Xi)log2p(Xi),
其中Si定义所有的i总和。公式0log2(0)=0在定义中被采用。该对数通常采用以2为底数。当应用于文本搜索问题,该X是我们的文章,或两篇文章之间共有的单词(每个单词都有来自字典的概率),该概率可以是在数据库中的单词频率或是估计频率。文本(或两文本中的交集)中的信息:I(X)=-Silog2(Xi)。
总体相似性搜索引擎的简述
我们对搜索引擎技术提出一个新的方法,我们称为“总体相似性搜索”。取代试图逐个与关键词配对,我们从另一个角度来考察搜索问题:总体的角度。在此,与一个或两个的关键词配对不再是必不可少。关键在于查询与它的命中之间整体相似性。相似性措施是以Shannon信息熵为基础的,一个用于衡量每个单词或短语的信息量的构思。
1)对单词的数量不作限制。事实上,用户被鼓励写下任何所想查到的。查询中的单词越多越好。这样,在本发明的搜索引擎中,查询可能是一些关键词,一个摘要,一个段落,一个全文文章,或者是一个网页。换句话说,搜索引擎将允许“全文查询”,其中查询并不局限于一些单词,而可以是一个文本文件的完整内容。用户被鼓励对他们查找的内容特定化。他们的细节越多,他们能被检索到的信息越精确。一个用户不需要再承受挑出关键词的负担。
2)对数据库的内容不作限制,不局限于互联网。当搜索引擎不再依赖于连接数量,该技术也不再受数据库类型的限制,只要其以文本为基础。这样,它可以是任何的文本内容,如硬盘文件,电子邮件,科技文献,法律集合,或诸如此类。它也是独立于语言的。
3)巨大的数据库尺寸是件好事。在总体相似性搜索中,命中的数量通常是非常有限的,如果用户能够对其所查找的信息特定化。对查询越特定,返回的命中越少。数据库中巨大的尺寸事实上对本发明是件好事,因为它找到用户想要得记录相似性越大。在以关键词为基础的搜索中,大型的数据库尺寸是一个负面因素,因为含有极少关键词的记录数量通常非常的大。
4)无语言障碍。该技术应用于任何语言(甚至是外国语如果我们某天接收到他们)。该搜索引擎是以信息理论为基础的,而不是符号学。它不要求理解内容。该搜索引擎能毫不费力地适应世界上存在的任何语言。
5)最重要的,用户想要的是用户所得到的,并且返回的命中是不存在偏差的。在此介绍一个新的计分系统,以Shannon信息理论为基础。例如,单词“the”和短语“搜索引擎”载有不同量的信息。每个单词和短语的信息量是它所在的数据库内在的。该命中根据查询和命中之间重叠单词和短语的信息量来评级。以此方式,在数据库中与查询最相关的条目通常被期待确定性越高则分值最高。该评级是单纯的以信息科学理论为基础的,并且与连接数量,网页受欢迎度,或广告费无关。这样,新的评级是真正客观的。
我们改善用户搜索经验的观点非常有别于其他的如由Yahoo或Google提供的搜索引擎。传统的搜索引擎,包括Yahoo和Google,更加关注一个单词,或一个简短的单词或短语列表,而我们是解决更大型的含有许多单词和短语的文本问题。这样,我们呈现一个完全不同的发现和评级命中文件的方式。评级含有整个查询单词的命中文件并非首要,但在该情况下仍然可被执行,因为这在长查询中很少出现,即查询含有很多单词或众多短语。在有许多命中的情况下,它们都含有查询单词,我们推荐用户通过提供更多的描述来重新定义他们的查询。这使得本发明的搜索引擎更好的过滤掉非相关的命中。
我们最主要的关注是与查询的不同重叠的命中的评级方法。他们应如何得到评级?在此提供的解决方案植根于用于交流的Shannon所发展的“信息论”。Shannon的信息论思想被应用于给定的无关联分布的文本数据库。每个单词或短语的信息量是由它在数据库中的频率决定的。我们使用两篇文章之间的共有单词和短语中的信息总量来衡量一个命中的相关性。在整个数据库中的条目都能以此方式评级,最相关的条目拥有最高的分值。
独立于语言的技术起源于计算的生物学
本发明的搜索引擎是独立于语言的。它可以应用于任何语言,包括非人类语言,如基因顺序数据库。它与语义学研究无关。大多数技术首先发展于为建立基因顺序数据库的计算生物学中。我们引入Shannon信息概念,简单的将其应用于文本数据库搜索问题。基因数据库搜索是一项成熟的技术,已经由许多科学家经过25年的发展。它是完成人类基因评级和发现~30000个人类基因的主要技术之一。
在计算的生物学中,一个典型的评级搜索问题如下:给定一个蛋白质数据库protDB,和一个查询蛋白质顺序protQ,在protDB中找到与protQ相关的所有顺序,并且根据它们与protQ相关度将它们进行评级。将该问题转换为一个文本的数据库背景:为一个给定的文本数据库textDB,和一个查询文本textQ,在textDB中找到与textQ相联系的所有条目,根据它们与textQ的相近度将它们进行评级。该计算的生物学问题是经精确定义的,并且解决方案能被精确的而非模棱两可的找到使用各种算法(例如Smith-Waterman算法)。我们的镜像文本数据库搜索问题也有一个精确科学的说明和解决方案。
对任何给定的文本数据库,不考虑它的语言或数据内容,本发明的搜索引擎将自动地建立一个单词和短语的字典,并且给每个单词和短语分配Shannon信息量。这样,一个查询有它的信息量;在数据库中的一个条目有它的信息量;并且数据库有它的总信息量。每个数据库条目与查询的相关度是由命中和查询之间的重叠单词和短语中的信息总量来衡量的。这样,如果一个查询和一个条目没有重叠的单词/短语,那分值将为0。如果数据库包含查询本身,它将得到最高分值的可能。输出成为一个命中列表,根据它们与查询的信息相关性来评级。提供一个查询和每个命中之间的列队,其中所有共有的单词和短语能由鲜明的颜色强调;并且每个重叠单词/短语的Shannon信息量能被列出。在此为评级使用的算法是定量的,精确的,完全客观的。
语言可以以任何格式并且可以是一个自然语言如,但不局限于汉语、法语、日语、德语、英语、爱尔兰语、俄语、西班牙语、意大利语、葡萄牙语、希腊语、波兰语、捷克语、斯洛伐克语、塞卜-克罗特语、罗马尼亚语、阿尔巴尼亚语、土耳其语、希伯来语、阿拉伯语、印度语、乌都语、泰语、togalog语、玻利尼西亚语、韩语、越南语、老挝语、kmer语、缅甸语、印度尼西亚语、瑞士语、挪威语、丹麦语、冰岛语、芬兰语、匈牙利语。该语言可以是计算机语言,如,但不局限于C/C++/C#、JAVA、SQL、PERL、和PHP。进一步的,语言可以被编码并能在数据库中被找到以及被用作一个查询。在一个编码的语言情况中,使用本发明不需要知道内容的含义。
单词可以以任何格式,包括字母,数字,二进制码,符号,文字,象形文字,以及诸如此类,包括那些存在但尚未为人所知道的单词。
定义一个唯一的测量矩阵
典型的现有技术中命中和查询要求共有完全相同的单词/短语。这称为完全匹配,或“本身映射”。但在本发明的搜索引擎中无此需要。在一个实践中,我们允许用户来定义同义词的表格。这些有同义词的单词/短语查询将扩展到搜索数据库中的同义词。在另一个实践中,我们允许用户通过下载各种“相似矩阵”来执行“真正的相似”。这些相似矩阵提供具有类似意思的单词列表,并且在它们之间分配一个相似分值。例如,单词“相似”与“相似”有100%的分值,但与“相同”之间可能有50%的分值。这种“相似矩阵”的来源可以来自使用统计或者来自各种字典。在不同领域工作的人们可能更喜欢使用一个特定的“相似矩阵”。定义“相似矩阵”在我们的研究中是一个积极的领域。
建立数据库和字典
条目是从词法上分析包含的单词,并且通过一个过滤器传递到:1)移走无用的普通单词如“a”,“the”,“of”,等,并且2)使用字根将具有相似意思的单词合并为一个唯一的单词,如“history”和“historical”,“evolution”和“evolutionary”等。所有含有相同字根的单词合并为一个唯一的单词。印刷上的错误,罕见单词,和/或非单词可能被排除,取决于数据库和搜索引擎的利用。
数据库是由从词法上分析的条目组成的。一个字典是为数据库建造的,其中数据库中出现的所有单词都被收集。该字典也包含每个单词的信息频率。该单词频率随着数据库的扩展而经常更新。该数据库也经常通过新条目进行更新。如果一个新单词在字典中未发现,那么它将被输入进字典,频率等于1。数据库中每个单词的信息内容根据-log2(x)被计算出,其中x是分布频率(该单词的频率除以在字典中所有单词总的频率)。该整个单词表格和对一个数据库的它的相关的频率被称为“频率分布”。
在数据库中每个条目在该空间巨大的字典中被压缩为和/或转换为一个矢量。对特定申请的条目能被进一步简化。例如,如果在一个条目中仅一个单词的“出现”或“未出现”是用户所渴望评估的,该相关的条目可以被压缩为一个‘1s’和‘0s’值的记录流。这样,一篇文章被压缩为一个矢量。对此可供选择的实践是记录单词的频率,即一个单词出现的次数也被记录下。这样,如果“history”在文章中出现十次,它将在矢量的相关专栏中由值‘10’所代表。该专栏矢量可以压缩为一个经挑选的,相互关联的列表,其中仅单词的顺序号和它的频率被记录下。
计算Shannon信息评分值
每个条目有它们自己的Shannon信息评分值,该评分值是对含有的单词所有Shannon信息(SI)的摘要。在比较两个条目时,两个条目之间的所有共有的单词首先被识别。对每个共有单词的Shannon信息以被计算出的每个单词的Shannon信息和该单词在查询和命中中的重复次数为基础。如果一个单词在查询中出现‘m’次,在命中中出现‘n’次,则与该单词相联系的SI是:SI_total(w)=min(n,m)*SI(w)。
另一种计算重复单词的SI(w)方法是使用阻尼,意味着计算的信息量将减少到某个比例当它第二,第三,---次出现时。例如,如果一个单词重复‘n’次,限制将以如下方法计算:SI_total(w)=Si(α**(i-1))*SI(w)
其中α是一个恒量,称为阻尼系数;Si是所有i的总和,0<i<=n,0<=α<=1。当α=0时,它变为SI(w),即100%阻尼,当α=1时它变为n*SI(w),即没有阻尼。该参数可以由用户在用户接口进行设置。阻尼在以关键词为基础的搜索中特别有用,当含有更多的关键词的条目比含有极少关键词但重复多次的条目时更受欢迎。
在关键词搜索的情况中,我们引入另一个参数,称为阻尼位置参数,0<=β<=1。β被用于平衡每个关键词的相关重要性,当关键词在一个命中文件中出现多次时。β被用于对重复单词分配一个暂时的Shannon-info。如果我们有K词,我们可以在SI(int(β*K))中对第一次重复的词设置SI,其中SI(i)代表对i词的Shannon-info。
在关键词搜索中,这两个参数(α,β)应该同时使用。例如,使α=0.75,β=0.75。在该例中,在插入语中的数目是对每个单词的模拟的SI值。如果一个搜索结果是TAFA(20)Tang(18)secreted(12)hormone(9)protein(5),那么,当TAFA第二次出现时,它的SI将是0.75*SI(hormone)=0.75*9。如果TAFA第三次出现,它将是0.75*0.75*9。现在,让我们假设TAFA总共出现3次。通过SI的单词总评级现在是TAFA(20)Tang(18)secreted(12)hormone(9)TAFA(6.75)TAFA(5.06)protein(5)。
如果Tang出现第二次,它的SI将是数目的75%,数目int(0.75*7)=5,而TAFA(6.75)。这样,它的SI是5.06。现在,命中中总共有8个单词,分值(和评级)是TAFA(20)Tang(18)secreted(12)hormone(9)TAFA(6.75)TAFA(5.06)Tang(5.06)protein(5)。
我们可以看到对重复单词的SI依赖于在查询中所有单词的SI范围。
启发式的实施
1)从传统的搜索引擎中挑选搜索结果。
如果一个传统的搜索引擎返回一个大量的结果,其中大多数结果可能不是用户想要的。如果用户发现一篇文章(A*)正是他想要的,他现在可以使用我们的全文搜索方法根据与那篇文章的相似性来重新挑选出搜索结果的列表。以这种方式,每个人只需要将这些文章的每一个与A*比较一次,然后根据与A*的相关性求助该列表。
该应用可以是“独立存在”的软件和/或一个可以与任何存在的搜索引擎联系的软件。
2)使用其他搜索引擎生成一个候选文件列表
作为实施我们全文查询和搜索引擎的一种方式,我们可以使用一些来自查询的关键词(那些从以他们的相对稀少词为基础中挑选出的单词),并使用传统的以关键词为基础的搜索引擎来生成一个候选文章的列表。作为一个例子,我们可以使用前十位的最信息化的单词(如由字典和Shannon信息所定义)作为查询,并使用传统的搜索引擎来生成候选列表。然后我们可以使用上面提到的挑选方法来重新评级搜索的输出,以使与查询最相关的出现在最前面。
这样,如果在此公开的算法是与任何存在的搜索引擎相结合,我们可以实现一种使用其他搜索引擎来生成我们的结果的方法。本发明可对其他搜索引擎生成正确的查询并以一种智能的方法来重新选择它们。
3)筛选电子邮件
本搜索引擎可以被用于针对垃圾邮件的筛选一个电子邮件数据库。一个垃圾邮件数据库可以使用用户已经接收到的并且用户认为是垃圾的邮件来建立起来;当一封电子邮件由用户和/或用户的电子邮件提供者接收到,它被搜索于垃圾邮件数据库。如果命中是超出预先决定的和/或安排的Shannon信息值或p值或百分比本身,它被分类入垃圾邮件,并且安排一个鲜明的标记或放入一个单独的册子用于浏览或删除。
搜索引擎能被用于筛选一个电子邮件数据库以识别重要的邮件。使用含有对用户重要的内容的电子邮件的一个数据库被创建,并且当一个邮件进入时,该将经过重要邮件数据库的搜索。如果命中超出一个特定的Shannon信息值或p值或百分比本身,该命中将被分类作为一个重要的邮件并且被安排一个鲜明的标志或放入一个单独的册子用于浏览或删除。
表一显示所公开发明(总体相似性搜索引擎)与目前包括yahoo和google搜索引擎在内的以关键词为基础的搜索引擎相比的优势
特征 | 总体相似性搜索引擎 | 当前以关键词为基础的搜索引擎 |
查询种类 | 全文和关键词 | 关键词(承受选择单词的负担) |
查询长度 | 单词数目无限制 | 受限制 |
评级系统 | 无偏见的,以重叠的加权信息为基础 | 偏见的,例如,受欢迎度、链接数等,因此可能丧失真正的结果 |
结果相关性 | 更多相关结果 | 更多不相关结果 |
非互联网内容的数据库 | 在搜索中效率高 | 在搜索中效率低 |
本发明通过推荐下面的举例将更易理解,所包括的这些例子仅以说明本发明的某个方面和实施例为目的,并非作为限制。
举例
例一:理论模型的实施
在该部分中本发明的搜索引擎的一个具体实施例的细节将公开。
1、介绍flatDB程序
FlatDB是一组处理平面文件数据库的C语言程序。即,他们是能处理有大量数据内容的平面文本文件的工具。文件格式可以是多种多样的,如表格形式,XML格式,FASTA格式,以及任何形式,只要有一个唯一的原始钥。典型应用包括大型顺序数据库(genpept,dbEST),人类基因评级或其他基因库,PubMed,Medline等在内。
该工具的设置中,有一个索引程序,一个检索程序,一个插入程序,一个更新程序,一个删除程序。另外,为非常大型的条目,有一个程序用来检索条目的一个特定部分。不像SQL,FlatDB并不支持不同文件之间的联系。例如,如果所有的文件都是大型表格文件,FlatDB不能支持外来钥匙对任何表格的限制。
在此是每个程序的列表和它们功能的简要描述:
1、im_index:对一个给定的文本文件,其中该文件存在一个领域分离器并且primary-id是特定化的,im_index生成一个索引文件(例如<text.db>),该索引文件记载每个条目,他们在文本中出现的地址,以及条目的尺寸。该索引文件被挑选出。
2、im_retrieve:对一个给定的数据库(有索引),和一个primary_id(或者在一个给定的文件中primary_ids的列表),该程序检索来自文本数据库的所有条目。
3、im_subseq:对一个给定的条目(由一个primary_id特定化)以及对该条目的位置和尺寸,im_subseq返回该条目的特定部分。
4、im_insert:它向数据库中插入一个或一列条目并且更新该索引。在它插入时,它产生一个上锁文件以使其他人不能在同一时间插入内容。
5、im_delete:删除由一个文件特定化的一个或多个的条目。
6、im_update:更新由一个文件特定化的一个或多个的条目。它实际上运行一个由im_insert所跟随的im_delete。
使用最普遍的程序是im_index,im_retrieve。im_subseq非常有用,如果某人需要从一个大型条目中得到一个随后的内容,例如,人类染色体中的基因切片。
简言之,我们已经写出一些作为平面文件数据库工具的C程序。即他们是能处理一个有许多数据内容的文本文件的工具。有一个索引程序,一个检索程序,一个插入程序,一个更新程序,一个删除程序。
2、建立并更新一个词频字典
名字:im_word_freq<text-file><word-freq>
输入:1:一长列的文本文件。平面文本文件是以FASTA格式(如下所定义)。
2:一个有词频的字典。
输出:更新输入2以产生一个含有所有使用过的单词以及每个单词的频率的字典。
语言:PERL
描述:
1:该程序首先将input_2读入存储器(一个缓存:word_freq):word_freq{word}=freq。
2:它打开文件<text-file>。对每个条目,它将文件分割成一个列阵(@entry-one),每个单词是$entry-one的一部分。对每个单词,word_freq{word}+=1。
3:将输出写入<word_ffeq.new>。
FASTA格式是生成大型文本文件的简便方法(生物学中在列出大型顺序数据文件时使用普遍)。它典型的类似于:
>primary_id1 xxxxxx(称为注释)
文本文件(有许多新的行)
>primary_id2
该priamry_ids应该是唯一的,但尽管如此,内容是任意的。
3、为一个平面文件FASTA格式的数据库生成一个单词索引
名字:im_word_index<text_file><word_freq>
输入:
1:一长列的文本文件。平面文本文件以FASTA格式(如前所定义)。
2:一个有与文本文件联系的词频的字典。
输出:
1、两个索引文件:一个为primary_ids,一个为bin_ids。
2、word_binary_id联合索引文件。
语言:PERL
描述:该程序的目的是对一个给定的单词,某人可以很快的识别哪个条目包含该单词。为了这样做,我们需要一个索引文件,对在word_freq文件中的每个单词都必不可少,我们必须列出所有含有该单词的条目。
因为primary_id通常非常长,我们试图使用一个简短的形式。这样我们给每个primary_id分配一个二进制的id(bin_id)。随后我们需要一个映射文件实现primary_id和binary_id之间的迅速联系。第一索引文件以此格式:primary-id bin_id,由primary_id挑选出。而另一种是:bin_id primary_id,由primary_id挑选出。这两个文件是为查找的目的:即给定一个binary_id可以迅速找到它的primary_id,反之亦然。
该最终索引文件是字典中单词之间的联合,以及出现单词的binary_ids列表。该列表应由bin_ids挑选出。格式可以是FASTA,例如:
>word1,freq.
bin_id1 bin_id2 bin_id3....
>word2,freq
bin_id1 bin_id2 bin_id3,bin_id3....
4、找到含有特定单词的所有数据库条目
名字:im_word_hits<database><word>
输入:
1:一长列的文本文件。平面文本文件以FASTA格式,和它的联系的3索引文件。
2:一个单词。
输出:含有该单词的bin_ids列表(数据库中的条目)。
语言:PERL。
描述:对一个给定的单词,某人想迅速识别哪个条目含有该单词。在输出中,我们有一个含有该单词的所有条目的列表。
算法:对一个给定的单词,首先使用第三索引文件来得到含有该单词的所有文本的binary_ids。(也可以使用第二索引文件:binary_id对primary_id来得到所有的primary_ids)。返回binary_ids列表。
该程序也应该可以在子程序中获得:im_word_hits(text_file,word)。
5、对一个给定的查询,找到与查询共有单词的所有条目
名字:
im_query_2_hits<database_file><query_file>[query_word_number][share_word_number]
输入:
1:数据库:一长列的文本文件。平面文本文件以FASTA格式。
2:一个以FASTA文件的查询,该文件就像在数据库中的许多条目。
3:用于搜索的挑选出的单词的总数,任选的,默认10。
4:命中中的单词数,该命中是在挑选出的查询单词,任选的,默认1。
输出:所有与查询共有一定数量单词的候选文件的列表。
语言:PERL
描述:该程序的目的是对一个给定的查询,某人想要一个候选条目的列表,该条目至少与查询共有一个单词(来自一个高度信息单词列表)。
我们首先将查询从语法上分析为一个单词的列表。然后我们查找word_freq表来建立query_word_number(默认为10,但用户可以修改)单词有最低频率(即,最高信息内容)。对10个单词的每个,我们使用im_word_hits(子程序)来定位含该单词的所有binary_ids。我们合并所有那些binary_ids,并计算该binary_id出现多少次。我们仅保留那些有单词的>share_word_number的binary_ids(至少共有一个单词,但如果有太多命中可能为2)。
在此我们可以根据每个条目的命中评分挑选,如果命中数量的总数量是>100。计算每个条目的命中评分是对10个单词使用Shannon信息。该命中评分也能通过在查询和命中文件中每个单词的频率被衡量。
query_word_number是一个用户能修改的参数。如果更大,该搜索将更准确,但它可能花更长时间。如果它太小,我们可能会丧失精确性。
6、对两个给定的文本文件(数据库条目),比较并分配一个分值。
名字:im_align_2<word_freq><entry_1><entry_2>
输入:
1:为数据库产生的单词频率文件。
2:entry_1:单个文本文件。一个数据库条目以FASTA格式。
3:entry_2:与entry_1相同。
输出:一系列命中的分值包括:Shannon信息,共有单词数。该格式是:
1)摘要:entry_1 entry_2 Shannon_info_score Common_word_score。
2)细节化的列表:普通单词,单词的数据库频率,以及在entry_1和entry_2(3专栏)中的频率列表。
语言:C/C++。
该步骤将成为搜索速度的瓶颈。这是我们用C/C++编写的原因。在样板中,某人也可以使用PERL。
描述:对两个给定的文本文件,该程序比较它们,并分配一个分值数来描述两个文本之间的相似性。
该两个文本文件首先被从语法上分析为单词队列(@text1,和@text2)。一个联合操作被执行与两个队列间以找到共同单词。如果共同单词是空的,返回entry_1和entry_2之间对STDEER无共同单词。
如果有共同单词,每个共同单词的频率将在单词频率文件中找到。然后,对每个共有单词的所有Shannon信息总和被计算出。我们在此生成一个SI_score(为Shannon信息)。在共有单词中单词的总数(Cw_score)也被计算出。在将来可能有更多的分值被报告(如两个文件之间的关联包含单词频率比较,以文本长度为基础的正常化,等)。
为计算Shannon信息,推荐有关该方法的原始文件(Shannon(1948)BellSyst.Tech.J.,27:379-423,623-656;并察看Feinstein(1958)信息理论基础,McGraw Hill,New NY)。
7、对一个给定的查询,评级所有的命中
名字:im_rant_hits<database_file><query_file><query_hits>
输入:
1:数据库:一长列的文本文件。平面文本文件以FASTA格式。
2:以FASTA文件的查询。就像在数据库中的许多条目。
3:含有在数据库中的bin_ids列表文件。
选项:
1、[rank_by]默认:SI_score。可选择:CW_score。
2、[hits]报告命中数。默认:300。
3、[min_SI_score]:在将来被决定。
4、[min_SW_score]:在将来被决定。
输出:在查询-命中中一个所有文件的挑选出的列表,以命中分值为基础。
语言:C/C++/PERL。
该步骤是搜索速度的瓶颈。这是使用C/C++编写的原因。在样板中,也能使用PERL。
描述:该程序的目的是对一个给定的查询和它的命中,某人想要根据分值系统来评级所有的那些命中。在此分值是一个全部的分值,显示两份文件是如何联系的。
该程序首先命令im_align_2子程序生成一个查询和每个命中文件之间的比较。它然后根据SI_score挑出所有的命中。为每个命中生成一个一行摘要。该摘要被列在输出的开头。在输出的末尾部分,为每个命中显示共同单词的细节化列队和这些单词的频率。
用户应该能够特定化要报告的命中数量。默认是300。用户也能特定化挑选顺序,默认是SI_score。
例二:为Medline的一个数据库例子
在此是一个数据库文件的列表,它们已经过处理:
1)Medline.raw未处理的数据库从NLM中下载而来,以XML格式。
2)Medline.fasta处理过的数据库
为经语法分析的条目遵循FASTA格式
>primary_id作者.(年份)标题.期刊.专栏:页码-页码
word1(freq)word2(freq)...
单词通过特征被挑选出。
3)Medline.pid2bid primary_id(pid)和binary_id(pid)之间的映射
Medline.bid2pid binary_id和primary_id之间的映射
primary_id被定义为FASTA文件。它是由Medline使用的唯一的标识符。binary_id是一个分配的id,我们使用它的目的是节省空间。
Medline.pid2bid是一个表格格式文件。格式:primary_id binary_id(由primary_id挑选出)
Medline.bid2pid是一个表格格式文件。格式:binary_id primary_id(由binary_id挑选出)
4)Medline.freq在Medline.fasta中对所有单词的单词频率文件,和它们的频率。表格格式文件:单词频率。
5)Medline.freq.stat关于Medline.fasta的统计(数据库大小,计算出的总单词数,Medline释放版本,释放日期,未处理数据库大小。也有关注该数据库的额外信息)。
6)Medline.rev反转表(单词对binary_id)为在Medline.freq.file中的每个单词
7)im_query_2_hits<db><query.fasta>
在此数据库和查询都以FASTA格式。数据库是:/数据/Medline.fasta。查询是来自Medline.fasta的任何条目,或来自网站的任何东西。在后一种情况中,语法分析应该将用户提供的任何格式的文件转换为FASTA格式的文件以符合在项目2中特定化的标准。
来自该程序的输出应该是一个primary_id和raw_scores的文件列表。如果目前的输出是一个binary_ids列表,它或者能够通过运行转换为primary_ids:im_retrieve Medline.bid2pid<bid_list>pid_list。
在生成候选文件时,在此是一个上面所讨论的重新叙述:
1)计算一个ES值(估计Shannon值)根据数据库的频率字典中的最低频率,查询前10个单词(10个单词列表)
2)ES值应该为所有的文件计算出。一个假定存在的命中被定义为:
(a)在10个单词列表中命中2个单词。
(b)命中单词the,为查询中单词的最高Shannon值。以这种方法,我们不会错过任何命中,该命中能独一定义在数据库中一个命中。
通过ES_score来评级所有a)和b)的命中,并且限制总数于数据库尺寸的0.1%(例如,对一个db14,000,000中14,000)。(如果a和b的联合少于数据库尺寸的0.1%,评级不必执行,简单的通过该列表。这将节省时间)。
3)使用在下面项目8中所公开的公式来计算该估计的值,除了在最多只有10个单词的情况。
8)im_rank_hits<Medline.fasta><query.fasta><pid_list>
该程序所做的第一步是运行在存储器中的所有候选命中:im_retrieveMedline.fasta pid_list和分值,在开始将查询和每个命中文件进行1-1比较之前。
摘要:上面(Medline.*)提到的每个数据库文件应该使用im_index指示。请不要忘记在运行im_index时特定化每个文件的格式。
如果暂时文件持有你所渴望检索到的内容,将它们放入/tmp/directory。请使用$$.*的方式来命名你的暂时文件,其中$$是你的process_id。在以后的时间移走这些生成的temp文件。同时,没有永久文件应该放在/tmp中。
计算分值的公式:
p值:查询和命中之间共同单词列表的概率完全是一个随机的事件。
Tw是单词的总数(例如,SUM(word*word_freq)来自word_freq表为该数据库(该数量应该在文件的头部中被计算出写下:Medline.freq.stat.某人应该读此文件以得到该数量。对在查询中的每个字典单词(w[i]),在数据库中频率是fd[i]该单词的概率是:P[i]=fd[i]/Tw。
在查询中频率w[i]为fq[i],而在命中中频率是fh[i],fc[i]=min(fq[i],fh[i])。fc[i]是查询和命中中频率的较小数。m是查询中共同单词的总数,i=1,...,m,p值计算:
p=(Sifc[i]!(p_ip[i]**fc[i])/(p_ifc[i]!)
其中Si是所有i(i=1,...,m)的总和,并且p-i代表所有i(i=1,...,m),!相乘是阶乘(例如,4!=4*3*2*1)
p应该是一个非常小的数字。确保浮动类型用于计算。SI_score(Shannon信息值)是-log2(p)值。
3.word_%(#_shared_words/total_words)。如果一个单词出现多次,它将被计算多次。例如:查询(100个单词),命中(120个单词),共有单词50个,然后word_%=50*2/(100+120)。
例三:生成一个短语词典的方法
1、短语搜索的理论方面
短语搜索是当一个搜索是使用一个单词串(非单个单词)来执行。例如:某人可能查找有关青少年堕胎的信息。这些单词的每一个有一个不同的意思当单独存在时,并且会检索出很多不相关的文件,但当你将它们逐个结合起来他们的意思改变为非常准确地“青少年堕胎”思想。从这个角度,短语比单个单词的结合含有更多的信息。
为了执行短语搜索,我们需要首先生成一个短语词典,和一个为任何给定数据库的分布功能,就像我们为单个单词所有的那样。在此公开为任何给定文本数据库生成一个短语分布的编程方法。从一个完全理论的观点出发,为任何2个单词,3个单词,...,K个单词,通过搜查整个数据库获得每个候选短语的出现频率,意味着它们是潜在的短语。一个自动开关器仅被用于以超过特定条目的频率来挑选那些候选者。对一个2个单词的短语条目可能比一个3个单词的短语条目高。这样,一旦给定条目,为2个单词,...,K个单词的短语的短语分布就自动产生了。
假设我们已经有为2个单词短语F(w2),3个单词短语F(w3),....,的分布频率,其中w2意味所有的2个单词短语,w3是所有3个单词短语。我们能够为每个短语wk(一个k个单词短语)分配Shannon信息:SI(wk)=-log2(f(wk)/Twk)
其中f(wk)是短语的频率,Twk是在分布F(wk)中的短语总数。
可供选择的,我们能对所有的短语有一个单一的分布,不考虑短语的长度,我们称之为分布F(wa)。该方法与第一种相比较不受青睐,因为我们通常认为一个长的短语比一个短的短语含有更多的信息,即使他们在数据库中出现相同的次数。
当给定一个查询,就像我们产生一个所有单词的列表那样的方法,我们产生一个所有潜在短语(到K个单词)的列表。我们随后能在短语词典中查看是否它们的任何一个是真正的短语。我们在数据库中挑出这些短语用于进一步的搜索。
现在我们假设也存在一个为短语的反转的词典。即为每个短语,在数据库中含有该短语所有的条目在反转的词典中列出。这样,对在查询中给定的短语,使用该反转词典我们能找出哪个条目含有该短语。就像我们处理单词,我们为每个条目计算累计值,该条目含有至少一个的查询短语。
在概括命中的最后阶段,我们能使用可供选择的方法。第一个方法是使用两个专栏,一个为报告单词分值,另一个为报告短语分值。默认的将报告所有通过重叠单词的累计Shannon信息来评级的命中,但在下个专栏中用为短语的累计Shannon信息。用户也能挑选使用短语分值通过点击专栏标题来筛选命中。
在另一个方法中,我们将对短语的SI_score和对重叠单词的SI值结合。在此有个非常重要的问题:我们应该如何比较为单词的SI_score和为短语的SI_score。甚至在短语中,如我们上面所提到的,我们如何比较一个2个单词短语的SI_score和一个3个单词短语的SI_score?在实践中,我们能简单的使用一系列的因素将各种SI_scores合并在一起,即:
SI_total=SI_word+a2*SI_2-word-phrase+..+ak*SI_K-word-phrase
其中ak,k=2,..,k是>=1的参数,并且是单调增加的。
如果为短语长度调整因素已经被在一个单一短语分布功能F(wa)生成中考虑,那么,我们有一个简化的公式:
SI_total=SI_word+a*SI_phrase
其中a是一个参数:a>=1。反映单词值和短语值之间的权数。
该计算Shannon信息的方法可或者应用于一个完整的文本(即,在设定一个给定的分布F中一个文本共有多少信息)或者应用于查询和命中之间重叠部分(单词和短语)。
2、Medline数据库和自动的短语生成方法
1)定义2缓存:
candihash:一个单个单词缓存可能发挥作为一个短语部分的作用。
phrasehash:一个记载所有发现的短语和它们的频率的缓存。
定义3个参数:
WORD_FREQ_MIN=300
WORD_FREQ_MAX=1000000
PHRASE_FREQ_MIN=100
2)从单词频率表中,取出所有频率>=word_freq_min,<=word_freq_max的单词。将它们读入candihash。
3)取出Medline.stem文件(如果该文件已经在原始文件中保留了单词顺序,否则你不得不重新生成一个Medline.stem文件以使在原始文件中单词顺序被保留)。
psuedo code:
while(<Medline.stem>){
foreach entry{
read in 2 words a time,shift 1 word a time
check if both words are in candihash,if yes:
phrasehash{word1-word2}++;}}
4)循环步骤2直到1)medline.stem的末尾或2)系统对memory-limit关闭。
如果2)写下phrasehash,清理phrasehash,继续直到(<medline.stem>)直到medline.stem结束。
5)如果来自步骤4的众多输出,merge-sort theoutputs>medline.phrase.freq.0。如果以条件1)结束,筛选phrasehash>medline.phrase.freq.0。
6)在medline.phrase.freq.0中频率>phrase_freq_min的任何东西都是一个短语。将那些条目筛选为:medline.phrase.freq。
program2.phrase_db_generator
1)将medline.phrase.freq读入一个缓存:phrasehash_n
2)while(<medline.stem>){
foreach entry{
read in 2 words a time,shift 1 word a time
join the 2 word,and check ifit is defined in the phrasehash_n
ifyes{
write medline.phrase for this entry}}}
program3.phrase_revdb_generator
该程序生成medline.phrase.rev。它生成与为单词生成的反转字典相同的词典。对每个短语,该文件含有一个条目列出含有该短语的所有数据库条目的所有的二进制ids。
例4:为本地安装的命令行搜索引擎
开发出一个搜索引擎的单独存在的版本。该版本并没有网站接口。它由上面提到的许多程序组成并编纂在一起。有一个单一制作文件。当“制作安装”被键入,该系统将指南中所有的程序编纂起来,并生成三个使用的主要程序。这三个程序是:
1)指引一个数据库
im_index_all:所有生成一定量索引的程序,包括单词/短语频率表,以及向前和反转索引。例如:$im_index_all/path/to/some_db_file_base.fasta
2)启动该搜索服务器:
Im_GSSE_serve:该程序是服务器程序。它将所有的索引都装载进存储器并保持在背景中的运行。它处理来自客户的服务请求:im_GSSE_client。例如:$im_GSSE_serve/path/to/some_db_file_base.fasta
3)运行搜索客服
一旦服务器处于运行中,某人可以运行一个搜索客户来执行真正的搜索。该客服能在相同的机器上被本地化的运行,或来自一个客服器远程的运行。例如:$im_GSSE_client_qf/path/to/some_query.fasta
例5:对文本数据库的压缩方法
在此简述的压缩方法是以收缩数据库的大小,节约硬盘和系统存储器的使用,并增强电脑的运行速度为目的。它可以单独用于压缩目的,或它可以与当前存在的如zip/gzip等压缩技术相结合。
基本的思想是定位高频率的单词/短语,并用更简短的符号(我们的情况中是整数,称为未来码)来代替这些单词/短语。该压缩的数据库是由单词/短语列表,它们的电码,以及有单词/短语以有条理的电码取代的数据库本身。一个独立的程序在压缩的数据文件中读并将它重新保存进原始文本文件。
在此是压缩方法如何工作的简述:
在生成所有单词/短语频率的处理过程中,分配一个唯一电码给每个单词/短语。单词/短语和它的电码之间的映射关系被保存在一个映射文件中,以格式:“单词/短语,频率,电码”。该表格仅从有“单词/短语,频率”的表格中被生成,并且该表格通过长度(单词/短语)*频率的颠倒顺序挑选出。该电码被分配给该表格从行1到连续地底部。在我们情况中该电码是一个以1开始的整数。压缩之前,所有在数据库中存在的整数都需要通过在它的前面使用一个非文本特征来保护。
所属领域的技术人员乐于看到所描述的具体实施例的各种改编和修改可以在不脱离本发明的范围和精神的情况下重新组合。其他在技术领域公知的合适的技术和方法能被所属领域的技术人员根据在此描述的对本发明的描述应用于多种特别的形态。因此,有必要理解本发明可以应用于其他情况而非局限于在此所专门描述的场合。上面的描述是为了说明,并非为了限制。许多其他的实施方式对于那些浏览了该描述后的所属领域的技术人员是明显的。因此,本发明的范围应该参考附属权利要求,以及授予权利的公开发明的整个范围来决定。
Claims (59)
1、一个用于搜索和评级文本信息的计算机化储存和检索系统,包含:输入和储存数据作为一个数据库的装置;显示数据的装置;执行文本的自动分析的一个可编程中央处理单元。在此分析的是文本,该文本从含有全文作为查询、网页作为查询的集合中挑出,根据查询和命中之间共有单词的Shannon信息评分值来对命中评级,评级命中根据p-值,计算出的Shannon信息评分值或以单词频率为基础的p-值,该单词频率已经专门为该数据库直接计算出或从至少一个外部来源估计出,共有信息元的百分比本身,查询和命中之间共有信息元的Shannon信息评分值,共有信息元的p-值,共有信息元的百分比本身,计算出的Shannon信息评分值或以信息元频率为基础的p-值,该信息元频率已经专门为该数据库直接计算出或从至少一个外部来源估计出,并且在此文本含有至少一个单词。
2、根据权利要求1所述的系统,其中文本含有多个单词。
3、根据权利要求1所述的系统,其中查询包含的文本的单词数从含有1-14,15-20,20-40,40-60,60-80,80-100,100-200,200-300,300-500,500-750,750-1000,1000-2000,2000-4000,4000-7500,7500-10000,10000-20000,20000-40000,以及超过40000个单词的集合中挑选出。
4、根据权利要求1所述的系统,其中文本至少含有一个短语。
5、根据权利要求1所述的系统,其中文本被加密。
6、根据权利要求1所述的系统,其中自动分析进一步允许在查询中有重复的信息元并给每个重复的信息元分配较高评分值。
7、根据权利要求1所述的系统,其中自动分析评级是以p-值为基础,该p-值是一个命中对查询的共有信息元的可能性或概率的度量,其中该p-值根据在数据库中信息元的分布来计算出,或者,其中该p-值根据在数据库中信息元的估计分布来计算出。
8、根据权利要求1所述的系统,其中对命中的自动分析评级是以Shannon信息评分值为基础的,其中该Shannon信息评分值是查询和命中的共有信息元的累积Shannon信息。
9、根据权利要求1所述的系统,其中对命中的自动分析评级是以百分比本身为基础的,其中百分比本身是比率:2*(共有信息元)/(在查询和命中中的信息元总数)。
10、根据权利要求6所述的系统,其中计数查询和命中中的信息元在词干溯源之前执行。
11、根据权利要求6所述的系统,其中计数查询和命中中的信息元在词干溯源之后执行。
12、根据权利要求6所述的系统,其中计数查询和命中中的信息元在移走普通单词之前执行。
13、根据权利要求6所述的系统,其中计数查询和命中中的信息元在移走普通单词之后执行。
14、根据权利要求1所述的系统,其中对命中的评级是以累计评分值为基础的,该累计评分值从含有p-值、Shannon信息评分值、以及百分比本身的集合中挑出。
15、根据权利要求14所述的系统,其中自动分析为每个匹配的单词分配一个固定的评分值,为每个匹配的短语分配一个固定的评分值。
16、根据权利要求1所述的系统,其中该算法进一步包含在可视显示装置上以命中文本表达查询文本的装置,其中该共有的信息元被强调表示出来。
17、根据权利要求1所述的系统,其中该数据库进一步包含一个单词和短语的同义词列表。
18、根据权利要求1所述的系统,其中该算法进一步允许用户向数据库输入同义词,该同义词和与其相关的查询词共同包括在分析中。
19、根据权利要求1所述的系统,其中该算法接受文本作为查询而不要求用一个关键词,其中该文本从含有摘要、标题、句子、论文、文章、以及它们的任何部分的集合中挑出。
20、根据权利要求1所述的系统,其中该算法接受文本作为查询而不要求用一个关键词,其中该文本从含有一个网页、一个网页的URL地址、网页的一个被强调部分、以及它们的任何部分的集合中挑出。
21、一个来源于原始文本数据库的经处理的文本数据库,该经处理的文本数据库所含有的文本是选自一个集合,它包含:过滤出普通单词的文本、使用词干溯源来归并的有相同字根的单词、一个生成的含有单词和自动识别的短语的信息元列表、一个对每个单词生成的频率或估计频率分布、以及从频率分布计算出的与每个信息元相联系的Shannon信息。
22、一个以文本为基础的搜索引擎,包含一个算法,该算法包含如下步骤:1)将查询中的第一文本与文本数据库中的第二文本进行比较的方法,2)识别两者之间共有信息元的方法,和3)计算一个累计评分值或使用一个信息元频率分布来衡量信息内容的重叠的评分的方法,该评分值从含有共有信息元的累计Shannon信息、共有信息元的结合的p-值、重叠单词的数目、以及重叠单词的百分比的集合中挑出。
23、根据权利要求1所述的的系统,其中该可编程的中央处理单元进一步含有一个算法来筛选数据库,忽略数据库中与查询最不相关的文本。
24、根据权利要求23所述的系统,其中该筛选算法进一步包含反转索引,查找所查询的数据库,迅速识别含有与查询相关的某些单词的数据库条目。
25、一个为搜索和评级文本的搜索引擎处理方法,该方法包含如下步骤:1)提供权利要求1所述的计算机化的储存和检索系统;2)在可编程的中央处理单元安装以文本为基础的搜索引擎;3)输入文本,该文本从含有正文、全文、或关键词的集合中挑出;该方法在数据库中产生一个经搜索和评级的文本。
26、一种方法用于生成一个短语列表、在给定文本数据库中它们的频率分布、和它们相关的Shannon信息评分值的列表,该方法包含如下步骤:1)提供权利要求1所述的系统;2)为识别两个单词的固定长度的连续单词组提供一个阈值频率,在数据库中作为一个短语;3)为识别在数据库中固定长度为3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,以及20个单词的作为短语的连续词组,提供明显的阈值频率;4)识别在文本数据库中每个识别出的短语的频率值;5)识别至少一个信息元;并6)根据识别出的固定长度的新短语来调整频率表以使在一个识别出的信息元中信息元的组成不会被计数多次,由此生成一个短语、它们的分布频率、和它们相关的Shannon信息评分值的列表。
27、一种方法用于比较两个句子以找到它们之间的相似性并提供相似性评分值,其中该比较是以两个或更多的项目为基础,这些项目含有单词频率、短语频率、单词和短语的顺序,插入和删除的处罚,并且在计算相似性评分值中使用代替矩阵,其中代替矩阵提供一个不同单词和短语之间的相似性评分值。
28、一个文本查询搜索引擎包含使用权利要求26、权利要求27所述的方法,或包含两种方法,用于以全文作为查询的搜索引擎或网页作为查询的搜索引擎。
29、一个用户接口显示权利要求1所述的数据,该显示的表达使用从含有一个网页、一个图形用户接口、一个触摸屏接口的集合中挑出的显示装置,和从含有宽带连接、以太网连接、电话线连接、无线连接、和电波连接的集合中挑出的因特网连接手段。
30、一个搜索引擎,含有权利要求1所述的系统、权利要求21所述的数据库、权利要求22和权利要求28所述的搜索引擎、以及权利要求29所述的用户接口,进一步含有一个命中,该命中从含有由网址受欢迎度评级,由引用评分值评级,以及支付的广告费量评级的命中集合中挑出。
31、根据权利要求30所述的搜索引擎,其中该算法进一步含有使用为数据库文本的Shannon信息或为重叠单词的Shannon信息对来自其他搜索引擎的搜索结果进行重新评级的装置。
32、根据权利要求30所述的搜索引擎,其中该算法进一步含有使用根据在数据库中信息元的频率分布或根据重叠信息元的频率分布计算出的p-值对来自其他搜索引擎的搜索结果进行重新评级。
33、一种方法用于计算在查询和命中中重复的信息元的Shannon信息,该方法进一步含有使用等式S=min(n,m)*Sw来计算分值S,其中Sw是该信息元的Shannon信息,其信息元在查询中的次数是m,在命中中的次数是n。
34、一种用于评级广告的方法,使用权利要求30所述的全文搜索引擎、权利要求25所述的搜索引擎方法、权利要求30所述的Shannon信息评分值、和权利要求33所述的方法,该方法进一步含有建立一个广告数据库的步骤。
35、根据权利要求34所述的评级广告的方法,进一步含有通过从含有一个用户接口或一个电子邮件公告的方法向用户输出评级的步骤。
36、一个方法用于对用户进行收费,使用权利要求34、权利要求35所述的方法,或两种方法,并以在广告中的单词计数和由用户点击连入广告商的地址的链接次数为基础。
37、一种方法用于使用权利要求26所述的方法对来自第二搜索引擎的输出重新评级,该方法进一步含有如下步骤:1)使用一个第二搜索引擎的命中作为一个查询;和2)使用权利要求26所述的方法重新评级命中,其中搜索的数据库局限于由第二搜索引擎返回的所有命中。
38、根据权利要求29所述的用户接口,进一步含有一个第一虚拟按钮在至少一个命中的虚拟的邻近,并且其中当第一虚拟按钮被用户点击后,该搜索引擎使用该命中作为查询来再次搜索整个数据库产生一个以该命中作为查询的新的结果页。
39、根据权利要求29所述的用户接口,进一步含有一个第二虚拟按钮在至少一个命中的虚拟的邻近,并且其中当第二虚拟按钮被用户点击后,该搜索引擎使用该命中作为查询来重新评级在集合中的所有命中,根据该命中作为查询形成一个新的结果页。
40、根据权利要求29所述的用户接口,进一步含有一个搜索功能与一个网络浏览器相联系,和一个第三虚拟按钮位于该网页浏览器的顶部。
41、根据权利要求40所述的用户接口,其中网页浏览器从含有Netscape,Internet Explorer,和Sofari的集合中挑出。
42、根据权利要求40所述的用户接口,其中第二虚拟按钮被标上“搜索互联网”以便当第三虚拟按钮被用户点击时,该搜索引擎将使用显示的页面作为查询来搜索整个互联网。
43、一个电脑含有权利要求1所述的系统和权利要求40所述的用户接口,其中该算法进一步含有使用由用户选择的查询来搜索互联网的步骤。
44、一个用来压缩数据库的方法,以一个含有唯一标识符的字符串表为基础,该方法包含如下步骤:1)生成一个含有字符串的表格;2)向在表格中的每个字符串分配一个标识符(ID),其中为在表格中的每个字符串的ID是根据在数据库中单词和短语的使用空间来分配的,该使用空间利用等式“freq(字符串)*length(字符串)”来计算;和3)在一个上升顺序的列表中以各ID来代替在表格中的字符串,该步骤产生一个压缩数据库。
45、根据权利要求44所述的方法,其中该ID是一个从含有二进制数和整数序列的集合中挑出的整数。
46、根据权利要求44所述的方法,进一步含有使用一个zip压缩和解压的压缩软件程序。
47、一个方法用于解压权利要求44所述的压缩的数据库,该方法含有如下步骤:1)用相关的文本来代替列表中的ID,和2)列出在表格中的文本,该步骤产生一个解压缩的数据库。
48、一个全文查询和搜索方法,含有权利要求44所述的压缩方法,进一步含有如下步骤1)将数据库储存在硬盘中;和2)将磁盘内容装载进存储器。
49、根据权利要求48所述的全文查询和搜索方法,进一步含有使用各种相似性矩阵代替本身映射的步骤,其中该相似性矩阵定义信息元和它们的同义词,并进一步可选择的提供一个0和1之间的相似性参数,其中0意味着无相似性,而1意味着相同。
50、根据权利要求1所述的系统,其中单词能在自然语言中找到。
51、根据权利要求1所述的系统,其中单词能在计算机语言中找到。
52、根据权利要求50所述的系统,其中该语言从含有汉语、法语、日语、德语、英语、爱尔兰语、俄语、西班牙语、意大利语、葡萄牙语、希腊语、波兰语、捷克语、斯洛伐克语、塞卜-克罗特语、罗马尼亚语、阿尔巴尼亚语、土耳其语、希伯来语、阿拉伯语、印度语、乌都语、泰语、togalog语、玻利尼西亚语、韩语、越南语、老挝语、kmer语、缅甸语、印度尼西亚语、瑞士语、挪威语、丹麦语、冰岛语、芬兰语、匈牙利语的集合中挑选出。
53、根据权利要求51所述的系统,其中该语言从含有C/C++/C#、JAVA、SQL、PERL、PHP的集合中挑选出。
54、根据权利要求33所述的方法,其中该方法进一步含有使用Shannon信息串起文本的步骤。
55、根据权利要求54所述的方法,其中该文本是以从含有一个数据库和一个来自搜索返回的列表的集合中挑出的格式。
56、根据权利要求1所述的系统和权利要求33所述的方法,进一步为一个少于10个单词的查询以关键词为基础的搜索使用Shannon信息,其中该算法含有从一个限制参数α, 0<=α<=1,和一个阻尼位置参数β,0<=β<=1。信息元在一个命中中的信息总值是该信息元、该信息元在查询中的次数K、该信息元在命中中的频率、以及α和β的一个函数。
57、根据权利要求1所述的系统和权利要求33所述的方法,其中该显示进一步含有对一个命中的分割。分割是根据如下的特征来决定的:一个阈值特征:命中中的一部分对查询的评分值超出那个阈值;一个分离远族特征:有一个显著的单词将两个分割分离;以及在一个锚特征:在接近于该分割的开始和结尾有一个命中的信息元。
58、根据权利要求1所述的系统和权利要求33所述的方法来筛选垃圾电子邮件。
59、根据权利要求1所述的系统和权利要求33所述的方法来筛选重要的电子邮件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62161604P | 2004-10-25 | 2004-10-25 | |
US60/621,616 | 2004-10-25 | ||
US60/681,414 | 2005-05-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101088082A true CN101088082A (zh) | 2007-12-12 |
Family
ID=38938256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200580044686 Pending CN101088082A (zh) | 2004-10-25 | 2005-10-25 | 全文查询和搜索系统及其使用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101088082A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193971A (zh) * | 2010-03-18 | 2011-09-21 | 柯尼卡美能达商用科技株式会社 | 内容收集装置和内容收集方法 |
CN102364458A (zh) * | 2011-11-23 | 2012-02-29 | 赵树乔 | 一种文件摘要的提取方法 |
CN102385587A (zh) * | 2010-08-27 | 2012-03-21 | 腾讯科技(深圳)有限公司 | 一种人名的识别方法及系统 |
CN102640145A (zh) * | 2009-08-31 | 2012-08-15 | 莱克萨利德股份公司 | 可信查询系统和方法 |
CN103064840A (zh) * | 2011-10-20 | 2013-04-24 | 北京中搜网络技术股份有限公司 | 索引装置、索引方法、检索装置、检索方法和检索系统 |
CN105389305A (zh) * | 2015-10-30 | 2016-03-09 | 北京奇艺世纪科技有限公司 | 一种文本识别方法和装置 |
CN106294380A (zh) * | 2015-05-18 | 2017-01-04 | 中兴通讯股份有限公司 | 数据库的查询方法及装置 |
CN110069604A (zh) * | 2019-04-23 | 2019-07-30 | 北京字节跳动网络技术有限公司 | 文本搜索方法、装置和计算机可读存储介质 |
CN110968778A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 媒体物料的处理方法及装置、存储介质和服务器 |
-
2005
- 2005-10-25 CN CN 200580044686 patent/CN101088082A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140333B2 (en) | 2009-08-31 | 2018-11-27 | Dassault Systemes | Trusted query system and method |
CN102640145B (zh) * | 2009-08-31 | 2015-09-23 | 达索系统公司 | 可信查询系统和方法 |
CN102640145A (zh) * | 2009-08-31 | 2012-08-15 | 莱克萨利德股份公司 | 可信查询系统和方法 |
CN102193971A (zh) * | 2010-03-18 | 2011-09-21 | 柯尼卡美能达商用科技株式会社 | 内容收集装置和内容收集方法 |
CN102385587B (zh) * | 2010-08-27 | 2014-07-30 | 腾讯科技(深圳)有限公司 | 一种人名的识别方法及系统 |
CN102385587A (zh) * | 2010-08-27 | 2012-03-21 | 腾讯科技(深圳)有限公司 | 一种人名的识别方法及系统 |
CN103064840A (zh) * | 2011-10-20 | 2013-04-24 | 北京中搜网络技术股份有限公司 | 索引装置、索引方法、检索装置、检索方法和检索系统 |
CN102364458B (zh) * | 2011-11-23 | 2013-11-06 | 赵树乔 | 一种文件摘要的提取方法 |
CN102364458A (zh) * | 2011-11-23 | 2012-02-29 | 赵树乔 | 一种文件摘要的提取方法 |
CN106294380A (zh) * | 2015-05-18 | 2017-01-04 | 中兴通讯股份有限公司 | 数据库的查询方法及装置 |
CN105389305A (zh) * | 2015-10-30 | 2016-03-09 | 北京奇艺世纪科技有限公司 | 一种文本识别方法和装置 |
CN110968778A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 媒体物料的处理方法及装置、存储介质和服务器 |
CN110069604A (zh) * | 2019-04-23 | 2019-07-30 | 北京字节跳动网络技术有限公司 | 文本搜索方法、装置和计算机可读存储介质 |
CN110069604B (zh) * | 2019-04-23 | 2022-04-08 | 北京字节跳动网络技术有限公司 | 文本搜索方法、装置和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992645B (zh) | 一种基于文本数据的资料管理系统及方法 | |
US20090024612A1 (en) | Full text query and search systems and methods of use | |
CN101501630B (zh) | 计算机化搜索结果列表的排序方法及其数据库搜索引擎 | |
CN101566997B (zh) | 确定与给定的词集相关的词 | |
CN101404015B (zh) | 自动生成词条层次 | |
US6965900B2 (en) | Method and apparatus for electronically extracting application specific multidimensional information from documents selected from a set of documents electronically extracted from a library of electronically searchable documents | |
Sood et al. | TagAssist: Automatic Tag Suggestion for Blog Posts. | |
CN102023989B (zh) | 一种信息检索方法及其系统 | |
CN101408886B (zh) | 通过分析文档的段落来选择该文档的标签 | |
CN101535945A (zh) | 全文查询和搜索系统及其使用方法 | |
Zanasi | Text mining and its applications to intelligence, CRM and knowledge management | |
US20130110839A1 (en) | Constructing an analysis of a document | |
US20110055192A1 (en) | Full text query and search systems and method of use | |
CN101088082A (zh) | 全文查询和搜索系统及其使用方法 | |
US20030115188A1 (en) | Method and apparatus for electronically extracting application specific multidimensional information from a library of searchable documents and for providing the application specific information to a user application | |
CN101408885A (zh) | 利用统计分布对主题进行建模 | |
CN103309886A (zh) | 一种基于交易平台的结构化信息搜索方法和装置 | |
US20090119281A1 (en) | Granular knowledge based search engine | |
CN103425687A (zh) | 一种基于关键词的检索方法和系统 | |
US20150006528A1 (en) | Hierarchical data structure of documents | |
CN101692223A (zh) | 响应于用户输入精炼搜索空间 | |
CN101404016A (zh) | 确定文档特异性 | |
CN102184262A (zh) | 基于web的文本分类挖掘系统及方法 | |
CN107844493B (zh) | 一种文件关联方法及系统 | |
EP2013788A2 (en) | Full text query and search systems and method of use |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20071212 |