一种基于自然语言的信息搜索方法技术领域
本发明涉及自然语言处理,特别涉及一种自然语言检索方法。
背景技术
关键词语义近似性的研究在文本搜索应用中都是一个重要的问题。例如主
题检测、推荐查询等。近年来随着网络的快速发展,在许多基于金融领域的Web
相关任务中关键词语义近似性的计算也越来越重要。现有金融相关搜索引擎都
提供一系列相关词来帮助用户找到最想要的结果,从而改善用户的搜索体验和
检索效率。在金融信息领域,关键词语义近似性的计算也起着重要的作用。然
而现有的基于Web的关键词语义近似性的计算方法没有考虑到搜索引擎反馈的
结果中存在干扰和重复。干扰的来源主要是关键词随机地出现在一些文档中,
这将会降低文档搜索数量的准确度。很多重复出现的文档使得搜索结果数量不
可信。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种基于自然语言的信
息搜索方法,包括:
接收用户输入的至少第一和第二关键词,
对第一和第二关键词分别进行检索,获得包含所述关键词相应第一和第二
的文档数量;
对第一和第二关键词进行与操作的结果进行检索,获得包含与操作结果的
第三文档数量;
根据所述第一、第二和第三文档数量计算所述第一和第二关键词的近似
性。
优选地,所述对第一和第二关键词进行与操作的结果进行检索,进一步包
括:
在第一关键词a和第二关键词b的与操作的检索结果a∩b中,将关键词a
和b在同一个语句中共同出现的检索结果分段表示为语义分段,并计算所述语
义分段在前n个分段中的比例,记为K(a∩b),其中n为预设分段数;利用N(a∩b)
表示检索与操作结果“aANDb”的第三文档数量;利用N(a∩b)*K(a∩b)计算
关键词之间的近似性:
SimK(a,b)=N(a∩b)*K(a∩b)/(N(a)+N(b)-N(a∩b)*K(a∩b))
+N(a∩b)*K(a∩b)(min(N(a),N(b)))
+log((N*N(a∩b)*K(a∩b))/((N(a)*N(b)))/logN;
其中SimK(a,b)表示用户输入的不同关键词a,b之间基于语义分段信息的
语义近似性度量;N是搜索引擎中的文档数量,N(a)表示用检索关键词a的返回
第一文档数量;N(b)表示用检索关键词b的返回第二文档数量。
优选地,根据所述第一、第二和第三文档数量计算所述第一和第二关键词
的近似性,进一步包括:
预设前n个分段中语义分段的比例阈值β,
当K(a∩b)<β时,Sim(a,b)=0;
当K(a∩b)<β时,Sim(a,b)=
N(a∩b)*R(a∩b)*K(a∩b)/(N(a)*R(a)+N(b)*R(b)-N(a∩b)*R(a∩b)
*K(a∩b)
+N(a∩b)*R(a∩b)*K(a∩b)(min(N(a)*R(a),N(b)*R(b)))
+log((N*N(a∩b)*R(a∩b)*K(a∩b))/((N(a)*R(a)*N(b)*R(b)))/logN;
其中R(a)、R(b)和R(a∩b)分别为检索关键词a、b、“aANDb”时的重
复结果数量。
本发明相比现有技术,具有以下优点:
本发明提出了一种自然语言检索方法,不需要人工干预;而且易于应用到
金融信息检索相关的工作中,提高检索扩展任务的准确度。
附图说明
图1是根据本发明实施例的基于自然语言的信息搜索方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详
细描述。结合这样的实施例描述本发明、但是本发明不限于任何实施例。本发
明的范围仅由权利要求书限定、并且本发明涵盖诸多替代、修改和等同物。在
下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的
而提供这些细节、并且无这些具体细节中的一些或者所有细节也可以根据权利
要求书实现本发明。
本发明的一方面提供了一种基于自然语言的信息搜索方法。图1是根据本
发明实施例的基于自然语言的信息搜索方法流程图。本发明通过融合检索文档
数量和检索结果分段来计算关键词之间的语义近似性。本发明提出的方法不需
要人工干预;而且易于被应用到如检索建议等与网络相关的工作中。利用关键
词共同出现在同一句中来去除干扰,利用搜索引擎的重复结果数来去除重复,
能够有效地计算词语间的近似性。同时,所提出的方法可以提高检索扩展任务
的准确度。
本发明的检索文档数是指包含检索关键词b的文档数量。在本发明的剩余
部分,将使用符号N(b)表示用搜索引擎检索关键词b的返回检索文档数。然而,
词语a和b的单独的检索文档数不足以计算其语义近似性,还应该加入检索“a
ANDb”的检索文档数。
具体地,在本发明中使用以下方法计算关键词语义近似性、具体公式如下。
Sim(a,b)=N(a∩b)/(N(a)+N(b)-N(a∩b))+N(a,b)(min(N(a),N(b)))
+log((N*N(P∩b))/((N(a)*N(b)))/logN
其中N是搜索引擎中的文档数量。
使用检索文档数计算语义近似性忽略了网络数据中存在的干扰和重复。因
此需要进一步减少两个关键词随机出现以及文档也存在大量的重复的情况,以
提高语义近似性计算的准确度。因此基于检索文档数的关键词语义近似性计算
方法中的N(a∩b)部分需要进行修正。搜索引擎返回搜索结果时也会返回检索结
果分段、这些分段通常是不超过30个词的短小的文本、这些文本提供了非常重
要的语义信息。
将词语a和b在同一个语句中共同出现的检索结果分段表示为语义分段。
分段中以句号为结尾的称之为一个语句。语义分段提供了词语a和b之间的有
用的语义关系。因此语义分段可以用来判断两个关键词是否随机地出现在文本
文档中。
搜索引擎提供了每个结果的链接,由于文档数量巨大、而且增长速度快,
因此对每个搜索结果进行直接的分析是非常困难的。搜索引擎提供了一个去除
重复结果的功能。当用搜索引擎搜索时,为了使结果的相关度高,搜索引擎省
略了一些非常相似的搜索结果。搜索引擎的重复结果数量可以用来去除重复。
本发明进一步通过融合检索文档数、语义分段和重复结果数量来计算关键
词语义近似性。
方式1:关键词间的语义相似程度是由检索文档数和语义分段决定的。主
要步骤如下:
1)在搜索引擎中分别搜索“a”、“b”、“aANDb”;
2)得到N(a)、N(b)和N(a∩b);
3)在“aANDb”的结果中,计算语义分段在前n个分段中的比例,记为:
K(a∩b),n为预设分段数;例如在搜索结果前100个分段中、a、b同时出现在
同一句的语义分段有40个、则K(a∩b)为40/100=40%。
4)用N(a∩b)*K(a∩b)代替N(a∩b)来计算关键词之间的近似性。
以上方式通过使用语义分段来修正基于检索文档数的方法中的N(a∩b),
可以除掉干扰。根据这个方式修正后的如下式所示:
SimK(a,b)=N(a∩b)*K(a∩b)/(N(a)+N(b)-N(a∩b)*K(a∩b))
+N(a∩b)*K(a∩b)(min(N(a),N(b)))
+log((N*N(a∩b)*K(a∩b))/((N(a)*N(b)))/logN
方式2:关键词间的语义相似程度是检索文档数和重复结果数量共同决定
的。主要步骤如下:
1)在搜索引擎中分别搜索“a”、“b”、“aANDb”;
2)得到N(a)、N(b)和N(a∩b);
3)得到搜索“a”、“b”、“aANDb”时的重复结果数量、记为:R(a)、
R(b)和R(a∩b);
4)用N(a)*R(a)、N(b)*R(b)和N(a∩b)*R(a∩b)分别代替N(a)、N(b)和
N(a∩b),减少网络数据中的重复。
根据这个方式修正后的如下式所示:
SimR(a,b)=
N(a∩b)*R(a∩b)/(N(a)*R(a)+N(b)*R(b)-N(a∩b)*R(a∩b)
+N(a∩b)*R(a∩b)(min(N(a)*R(a),N(b)*R(b)))
+log((N*N(a∩b)*R(a∩b))/((N(a)*R(a)*N(b)*R(b)))/logN
方式3:两个关键词间的语义近似性是通过方式1和方式2共同决定的、
即不仅考虑语义分段、还考虑重复结果数。
预设前n个分段中语义分段的比例阈值β,
当K(a∩b)<β时,Sim(a,b)=0;
当K(a∩b)<β时,Sim(a,b)=
N(a∩b)*R(a∩b)*K(a∩b)/(N(a)*R(a)+N(b)*R(b)-N(a∩b)*R(a∩b)
*K(a∩b)
+N(a∩b)*R(a∩b)*K(a∩b)(min(N(a)*R(a),N(b)*R(b)))
+log((N*N(a∩b)*R(a∩b)*K(a∩b))/((N(a)*R(a)*N(b)*R(b)))/logN.
综上所述,本发明提出了一种自然语言检索方法,不需要人工干预;而且
易于应用到金融信息检索相关的工作中,提高检索扩展任务的准确度。
显然、本领域的技术人员应该理解、上述的本发明的各模块或各步骤可以
用通用的计算系统来实现、它们可以集中在单个的计算系统上、或者分布在多
个计算系统所组成的网络上、可选地、它们可以用计算系统可执行的程序代码
来实现、从而、可以将它们存储在存储系统中由计算系统来执行。这样、本发
明不限制于任何特定的硬件和软件结合。
应当理解的是、本发明的上述具体实施方式仅仅用于示例性说明或解释本
发明的原理、而不构成对本发明的限制。因此、在不偏离本发明的精神和范围
的情况下所做的任何修改、等同替换、改进等、均应包含在本发明的保护范围
之内。此外、本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或
者这种范围和边界的等同形式内的全部变化和修改例。