[发明专利]一种基于ES搜索的文本相似度排序方法在审
申请号: | 201711193304.4 | 申请日: | 2017-11-24 |
公开(公告)号: | CN107943762A | 公开(公告)日: | 2018-04-20 |
发明(设计)人: | 文杰锋;刘楚雄 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F17/22 | 分类号: | G06F17/22;G06F17/27;G06F17/30 |
代理公司: | 成都虹桥专利事务所(普通合伙)51124 | 代理人: | 吴中伟 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 es 搜索 文本 相似 排序 方法 | ||
技术领域
本发明属于大数据技术领域,具体涉及一种基于ES搜索的文本相似度排序方法。
背景技术
ES作为一个实时的分布式搜索和分析引擎,可以用于全文搜索,结构化搜索以及分析。其工作原理为在对文本建立索引的基础上,通过将查询文本进行分词,计算词在数据库文本中出现的频率,以及数据库文本中含有该词的文本数量,然后通过TF-IDF模型的计算公式计算出数据库中文本与查询文本的相似度值,根据相似度值降序快速返回搜索结果。
由于ES的搜索速度快,所以其应用领域也在不断增多。但是,ES默认的评分规则采用了TF-IDF算法模型,该模型以词频作为文本相似度计算的基本单位,没有考虑词与词之间的位置顺序,导致搜索出的排序结果并不能满足需求,时常需要在原有排序的基础上结合应用场景,对评分进行二次打分与重新排序。比如,在相关度相差不大的情况下,词与词或者字与字之间的顺序越接近就应该越靠前等。此时就需要对搜索结果进行重新打分排序。例如:用户搜索”清理内存”,如果数据库中同时存在“清理内存”与“内存清理”两条数据,那么经过TF-IDF算法模型,计算出的“内存清理”的得分与“清理内存”的得分是一样的。那么,ES就无法对这两条数据进行排序,那么返回给用户的数据可能是这两条数据中的随机一条。而显然,本次搜索最应该返回给用户的是“清理内存”而不是“内存清理”。由此可见,传统技术中的文本相似度排序不准确。
发明内容
本发明所要解决的技术问题是:提出一种基于ES搜索的文本相似度排序方法,通过将文本字词之间的位置顺序作为算法考虑因素,计算文本之间的相似程度,以解决ES搜索无法排序同词不同序文本的问题,提高ES文本相似度排序的准确率。
本发明解决上述技术问题采用的技术方案是:
一种基于ES搜索的文本相似度排序方法,包括以下步骤:
a.ES初步搜索获得相似文本集合;
b.进行文本分词,得到分词集合;
c.以分词集合为基础,对分词后的文本进行向量化表示;
d.通过余弦相似度度量文本向量之间相似程度;
e.根据余弦相似度值,对文本进行相似度重排序。
作为进一步优化,步骤b中,在进行文本分词时,对每个文本按照从前往后每相邻的两个字为一词的规则进行分词,即保留了字词的先后位置信息。
作为进一步优化,步骤d中,所述通过余弦相似度度量文本向量之间相似程度,具体包括:
假设搜索文本q的向量表示为向量vec_q,初步搜索结果集合中的某一文本t的向量表示为向量vec_t,则向量vec_q与向量vec_t之间的余弦相似度计算公式为:
式中,vec_q与vec_t为搜索文本q与搜索结果集合中的某一文本的向量表示;||vec_q||与||vec_t||分别为向量vec_q与vec_t的模。
本发明的有益效果是:本发明将文本字词之间先后位置的顺序信息作为考虑因素,对文本进行相似度排序:首先通过ES默认的TF-IDF模型搜索出一定数量的相似文本集合,然后对文本集合中的每个文本进行相邻两字成一词规则进行分词,即包含字词之间的先后位置信息,以分词集合中的词作为基本单位对文本进行向量化表示,采用余弦相似度公式度量文本之间的相似程度,根据余弦相似度值对文本进行相似度排序。采用该方案排序的结果更准确。
附图说明
图1为本发明中的基于ES搜索的文本相似度排序方法流程图。
具体实施方式
本发明旨在提出一种基于ES搜索的文本相似度排序方法,通过将文本字词之间的位置顺序作为算法考虑因素,计算文本之间的相似程度,以解决ES搜索无法排序同词不同序文本的问题,提高ES文本相似度排序的准确率。
本发明采用ES默认的TF-IDF模型计算查询文本与数据库文本之间的相似度值,并搜索匹配出一定数量分值靠前的文本集合,文本分词,文本向量化表示,通过余弦相似度计算文本之间的相似程度并进行重排序。如图1所示,其具体包括以下步骤:
a)利用ES默认TF-IDF模型搜索数据库,得到一定数量的文本数据集合。如下:
假设查询文本为:
query=“清理内存”
通过TF-IDF模型初步搜索出的前五条数据为:
result_top_5={“内存清理”、“清理内存”、“清理下内存”、“帮我清理内存”、“帮我清理下内存”}
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711193304.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种TXT文档编码字符集的校验方法及系统
- 下一篇:一种大文本数据处理方法