CN104794227B - 一种信息匹配方法及装置 - Google Patents

一种信息匹配方法及装置 Download PDF

Info

Publication number
CN104794227B
CN104794227B CN201510219260.2A CN201510219260A CN104794227B CN 104794227 B CN104794227 B CN 104794227B CN 201510219260 A CN201510219260 A CN 201510219260A CN 104794227 B CN104794227 B CN 104794227B
Authority
CN
China
Prior art keywords
summary info
matching
disk
internal memory
information
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.)
Active
Application number
CN201510219260.2A
Other languages
English (en)
Other versions
CN104794227A (zh
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.)
ZHENGZHOU XIZHI INFORMATION TECHNOLOGY Co Ltd
Original Assignee
ZHENGZHOU XIZHI INFORMATION TECHNOLOGY Co Ltd
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 ZHENGZHOU XIZHI INFORMATION TECHNOLOGY Co Ltd filed Critical ZHENGZHOU XIZHI INFORMATION TECHNOLOGY Co Ltd
Priority to CN201510219260.2A priority Critical patent/CN104794227B/zh
Publication of CN104794227A publication Critical patent/CN104794227A/zh
Application granted granted Critical
Publication of CN104794227B publication Critical patent/CN104794227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Abstract

本发明提供一种信息匹配方法及装置,可以基于语义进行分词得到各个摘要信息,从而能够基于原始信息建立适当的摘要信息,提高匹配准确度和召回率。对于历史的匹配结果如第一摘要信息和第二摘要信息采用了基于内存和磁盘的分布式存储方式,这样在匹配时可以优先从内存再到磁盘进行匹配以提高匹配速度,并且服务器侧也可以基于搜索请求进行多分区的并行匹配,使得服务器侧可以处理近1000倍的并发请求量,进一步提高匹配速度。

Description

一种信息匹配方法及装置
技术领域
本发明属于分布式匹配技术领域,更具体的说,尤其涉及一种信息匹配方法及装置。
背景技术
B2B(Business-to-Business)指的是企业对企业透过电子商务的方式进行交易,通过B2B项目平台企业与企业可以进行业务往来。目前的B2B项目平台在大规模的企业用户注册且发布产品信息以后,会产生上亿的数据。当某一采购企业通过B2B项目平台浏览其所需信息,比如查找生产破碎机的企业或查找对比磨粉机产品时,需要从上亿的数据里面进行筛选,查找非常不便。
发明内容
有鉴于此,本发明的目的在于提供一种信息匹配方法及装置,用于提高匹配速度、匹配准确度和匹配召回率。
本发明提供一种信息匹配方法,所述方法包括:
对用户输入的关键词以及基于所述搜索关键词选取的筛选词进行组合,得到搜索词组;
基于所述搜索词组,与客户端的内存中存储的每条第一摘要信息进行匹配,得到第一匹配结果,其中所述第一摘要信息是对内存中存储的每条原始信息进行语义分析后分词重组的信息;
当所述第一匹配结果表明所述内存中存在与所述搜索词组匹配的第一摘要信息时,将所述第一摘要信息对应的原始信息进行展示;
当所述第一匹配结果表明所述内存中不存在与所述搜索词组匹配的第一摘要信息时,基于所述搜索词组与客户端的磁盘中存储的每条第二摘要信息进行匹配,得到第二匹配结果,其中所述第二摘要信息是对磁盘中存储的每条原始信息进行语义分析后分词重组的信息,且所述第一摘要信息为从所述磁盘中提取出的匹配次数大于第一预设次数的第二摘要信息;
当所述第二匹配结果表明所述磁盘中存在与所述搜索词组匹配的第二摘要信息时,展示所述第二摘要信息对应的所述原始信息;
当所述第二匹配结果表明所述磁盘中不存在与所述搜索词组匹配的第二摘要信息时,向与所述客户端通信的服务器发送搜索请求,由所述服务器基于所述搜索词组与所述服务器内的多个分区中存储的每条第三摘要信息进行并行匹配,其中所述第三摘要信息是对分区中存储的每条原始信息进行语义分析后分词重组的信息,且所述第二摘要信息为从所述服务器中提取出的匹配次数大于第二预设次数的第三摘要信息。
优选地,所述方法还包括:当所述第一匹配结果表明所述内存中存在所述搜索词组匹配的第一摘要信息时,对所述第一摘要信息的匹配次数进行更新。
优选地,所述方法还包括:当所述第二匹配结果表明所述磁盘中存在所述搜索词组匹配的第二摘要信息时,对所述第二摘要信息的匹配次数进行更新;
基于更新后的每条第二摘要信息的匹配次数,将匹配次数大于第一预设次数的第二摘要信息标识为所述第一摘要信息添加至所述内存中;
获取添加至所述内存中的所述第一摘要信息的个数,基于所述个数从所述匹配次数排序的最后一位开始选取第一摘要信息为第二摘要信息添加至所述磁盘中,所选取的所述第一摘要信息的个数为添加至内存中的第二摘要信息的个数。
优选地,所述方法还包括:从所述磁盘中匹配次数排序的最后一位开始,将所述磁盘中的第二摘要信息替换为所述服务器中匹配次数大于所述第二预设次数的第三摘要信息。
优选地,预先为每条第三摘要信息分配一标识符,所述方法还包括:基于所述标识符确定更新的第三摘要信息,并将所述服务器中所述标识符对应的所述第三摘要信息进行替换。
本发明还提供一种信息匹配装置,所述装置包括:
组合单元,用于对用户输入的关键词以及基于所述搜索关键词选取的筛选词进行组合,得到搜索词组;
第一匹配单元,用于基于所述搜索词组,与客户端的内存中存储的每条第一摘要信息进行匹配,得到第一匹配结果,其中所述第一摘要信息是对内存中存储的每条原始信息进行语义分析后分词重组的信息;
第一展示单元,用于当所述第一匹配结果表明所述内存中存在与所述搜索词组匹配的第一摘要信息时,将所述第一摘要信息对应的原始信息进行展示;
第二匹配单元,用于当所述第一匹配结果表明所述内存中不存在与所述搜索词组匹配的第一摘要信息时,基于所述搜索词组与客户端的磁盘中存储的每条第二摘要信息进行匹配,得到第二匹配结果,其中所述第二摘要信息是对磁盘中存储的每条原始信息进行语义分析后分词重组的信息,且所述第一摘要信息为从所述磁盘中提取出的匹配次数大于第一预设次数的第二摘要信息;
第二展示单元,用于当所述第二匹配结果表明所述磁盘中存在与所述搜索词组匹配的第二摘要信息时,展示所述第二摘要信息对应的所述原始信息;
发送单元,用于当所述第二匹配结果表明所述磁盘中不存在与所述搜索词组匹配的第二摘要信息时,向与所述客户端通信的服务器发送搜索请求,由所述服务器基于所述搜索词组与所述服务器内的多个分区中存储的每条第三摘要信息进行并行匹配,其中所述第三摘要信息是对分区中存储的每条原始信息进行语义分析后分词重组的信息,且所述第二摘要信息为从所述服务器中提取出的匹配次数大于第二预设次数的第三摘要信息。
优选地,所述装置还包括:第一更新单元,用于当所述第一匹配结果表明所述内存中存在所述搜索词组匹配的第一摘要信息时,对所述第一摘要信息的匹配次数进行更新。
优选地,所述装置还包括:第二更新单元,用于当所述第二匹配结果表明所述磁盘中存在所述搜索词组匹配的第二摘要信息时,对所述第二摘要信息的匹配次数进行更新;
第一添加单元,用于基于更新后的每条第二摘要信息的匹配次数,将匹配次数大于第一预设次数的第二摘要信息标识为所述第一摘要信息添加至所述内存中;
第二添加单元,用于获取添加至所述内存中的所述第一摘要信息的个数,基于所述个数从所述匹配次数排序的最后一位开始选取第一摘要信息为第二摘要信息添加至所述磁盘中,所选取的所述第一摘要信息的个数为添加至内存中的第二摘要信息的个数。
优选地,所述装置还包括:替换单元,用于从所述磁盘中匹配次数排序的最后一位开始,将所述磁盘中的第二摘要信息替换为所述服务器中匹配次数大于所述第二预设次数的第三摘要信息。
优选地,所述装置还包括:分配单元,用于预先为每条第三摘要信息分配一标识符;
确定单元,用于基于所述标识符确定更新的第三摘要信息,并将所述服务器中所述标识符对应的所述第三摘要信息进行替换。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
本发明实施例提供的上述技术方案可以基于语义进行分词得到各个摘要信息,从而能够基于原始信息建立适当的摘要信息,提高匹配准确度和召回率。对于历史的匹配结果如第一摘要信息和第二摘要信息采用了基于内存和磁盘的分布式存储方式,这样在匹配时可以优先从内存再到磁盘进行匹配以提高匹配速度,并且服务器侧也可以基于搜索请求进行多分区的并行匹配,使得服务器侧可以处理近1000倍的并发请求量,进一步提高匹配速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的信息匹配方法的一种流程图;
图2是本发明实施例提供的信息匹配方法的另一种流程图;
图3是本发明实施例提供的信息匹配装置的一种结构示意图;
图4是本发明实施例提供的信息匹配装置的另一种结构示意图。
具体实施方式
发明人对传统的匹配方法进行研究发现,传统的匹配方法采用PHP+MYSQL的方式进行匹配,其中PHP(Hypertext Preprocessor,超级文本预处理语言)是一种HTML(Hypertext Markup Language,超文本标记语言)内嵌式的语言,PHP与微软的ASP(ActiveServer Page,动态服务器页面)相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。传统的PHP+MYSQL的方式通过PHP来编写匹配服务来匹配MYSQL(关联式数据库管理系统)中的数据得到匹配结果,可以想象上亿的数据在一个MYSQL中匹配时其匹配效率肯定会降低,并且在匹配前分词效果不好,直接影响搜索结果的召回率,为此本发明实施例提供一种信息匹配方法及装置,用于解决上述问题。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的信息匹配方法的一种流程图,可以包括以下步骤:
101:对用户输入的关键词以及基于搜索关键词选取的筛选词进行组合,得到搜索词组。其中关键词是用户在对某种对象进行搜索时手动输入的与该对象相关的关键词,筛选词则是在搜索界面展示的与对象相关的其他信息。
例如当用户搜索“裙子”时,手动输入的关键词可以为“裙子”,则展示下的相关信息可以包括:裙长、风格、腰型和尺码等,用户可以从这些相关信息中选取筛选词,关键词和所选取的筛选词组合得到搜索词组。
102:基于搜索词组,与客户端的内存中存储的每条第一摘要信息进行匹配,得到第一匹配结果。
在本发明实施例中,第一摘要信息是对内存中存储的每条原始信息进行语义分析后分词重组的信息,即第一摘要信息是每条原始信息的概括信息,这样可以使搜索词组与较少的第一摘要信息进行匹配,提高匹配速度。其中内存可以采用Memcached来存储第一摘要信息,Memcached是一个高性能的分布式内存对象缓存系统,其可以提高匹配速度。
在对原始信息进行分词时将连续的字序列按照一定的规范重新组合成词序列,组合到的词序列即是第一摘要信息,也就是说第一摘要信息中可以包括多个单独的词序列,这样在匹配时可以将搜索词组与多个单独的词序列进行一一匹配。在进行重组时要按照现有的汉字语法和英文语法规范,使得组合后的第一摘要信息符合语法要求。
在本发明实施例中,可以采用HTTPCWS进行分词,其中HTTPCWS是一款基于HTTP协议的开源中文分词系统,其使用“ICTCLAS中文分词算法”进行分词处理,得出第一摘要信息。这种分词方式可以精确对语义进行分析,使得到的分词结果更加准确,从而在将搜索词组与第一摘要信息进行匹配时得到的第一匹配结果更加准确,从而提高匹配准确度和召回率。
103:当第一匹配结果表明内存中存在与搜索词组匹配的第一摘要信息时,将第一摘要信息对应的原始信息进行展示。在展示原始信息时除展示文字信息之外,还可以将原始信息对应的图片信息展示,这样可以使用户更加全面的理解原始信息对应的产品。
104:当第一匹配结果表明内存中不存在与搜索词组匹配的第一摘要信息时,基于搜索词组与客户端的磁盘中存储的每条第二摘要信息进行匹配,得到第二匹配结果。
在本发明实施例中,当第一匹配结果表明内存中不存在与搜索词组匹配的第一摘要信息时,需要再次与客户端的磁盘中存储的第二摘要信息进行匹配。其中第二摘要信息是对磁盘中存储的每条原始信息进行语义分析后分词重组的信息,且第一摘要信息为从磁盘中提取出的匹配次数大于第一预设次数的第二摘要信息。
比如磁盘可以采用SSDB(高性能的支持丰富数据结构的NoSQL数据库)来存储100条第二摘要信息,每条第二摘要信息按照匹配次数在磁盘中存储,且从排序的第一位开始到第10位为匹配次数大于第一预设次数的第二摘要信息,则将这些第二摘要信息作为第一摘要信息。也就是说内存中的第一摘要信息为磁盘中第二摘要信息的子集。在本发明实施例中第一预设次数为预先设置的某个阈值,其在不同应用场景下可以设置不同取值,并且可以基于应用场景的变化而更新。
在此需要说明的一点是:在得到搜索词组后从客户端的内存和磁盘中搜索可以提高匹配速度并降低成本。因为内存的数据读取速度要高于磁盘的数据读取速度,而其成本明显高于磁盘的成本,所以在得到搜索词组后优先从内存中查找可以提高匹配速度,并且内存中存储的部分第二摘要信息是匹配次数大于第一预设次数的信息,即将多数用户经常匹配的信息存储于内存中可以提高一次匹配成功的几率,从而提高匹配速度和匹配准确度。当内存和磁盘采用Memcahed和SSDB配合的方式进行匹配时可以达到0.00x秒级的访问速度,其中x为一自然数。进一步因为磁盘的存储空间大于内存的存储空间,且其成本低于内存,所以采用内存和磁盘分担存储第二摘要信息的方式可以降低成本。
105:当第二匹配结果表明磁盘中存在与搜索词组匹配的第二摘要信息时,展示第二摘要信息对应的原始信息。当然在展示原始信息时除展示文字信息之外,还可以将原始信息对应的图片信息展示,这样可以使用户更加全面的理解原始信息对应的产品。
106:当第二匹配结果表明磁盘中不存在与搜索词组匹配的第二摘要信息时,向与客户端通信的服务器发送搜索请求,由服务器基于搜索词组与服务器内的多个分区中存储的每条第三摘要信息进行并行匹配,这种由服务器并行匹配的方式可以使服务器从多个分区中同时进行匹配,以提高匹配速度。
以产品为例,产品数据大概有2个亿,每一个产品都会归属一个企业,若想将这2亿的数据分成16个分区,这时要将企业ID(Identity,标识符)进行对16取模,所得余数就是其产品数据应该多在区块,这样就可以把2亿数据近似均匀的规划到16个分区中,并将这16个分区分布到4台物理机上。服务器在接收到搜索请求后,可以基于搜索请求同时对4台物理机的分区上存储的第三摘要信息进行并行匹配。
其中第三摘要信息是对分区中存储的每条原始信息进行语义分析后分词重组的信息,且第二摘要信息为从服务器中提取出的匹配次数大于第二预设次数的第三摘要信息。也就是说磁盘中的第二摘要信息为磁盘中第三摘要信息的子集。在本发明实施例中第二预设次数为预先设置的某个阈值,其在不同应用场景下可以设置不同取值,并且可以基于应用场景的变化而更新。
从上述技术方案可以看出,本发明实施例提供的信息匹配方法可以基于语义进行分词得到各个摘要信息,从而能够基于原始信息建立适当的摘要信息,提高匹配准确度和召回率。对于历史的匹配结果如第一摘要信息和第二摘要信息采用了基于内存和磁盘的分布式存储方式,这样在匹配时可以优先从内存再到磁盘进行匹配以提高匹配速度,并且服务器侧也可以基于搜索请求进行多分区的并行匹配,使得服务器侧可以处理近1000倍的并发请求量,进一步提高匹配速度。
此外本发明实施例可以将基于搜索词组的匹配进行封装以提供一个外部业务接口,该外部业务接口则是用于基于搜索词组进行匹配的接口,这样可以使接口对业务高度透明化,真正将匹配服务做到服务化,而使业务开发可以不关心内部具体实现细节,做到业务与服务的低耦合。
在本发明实施例中可以使用YAR对基于搜索词组的匹配进行封装,例如可以使用Yar_Server方法在服务器侧进行匹配服务的封装,而在客户端侧通过Yar_Client方法进行调用。
上述图1所示的信息匹配方法采用的是先内存再磁盘最后到服务器的这种依次匹配的方式,当然本发明实施例提供的信息匹配方法还可以采用内存、磁盘和服务器同时进行匹配的方式,其具体过程如下:
首先对用户输入的关键词以及基于搜索关键词选取的筛选词进行组合,得到搜索词组;其次基于搜索词组同时与内存中的每条第一摘要信息以及磁盘中的每条第二摘要信息进行匹配。在与客户端的内存和磁盘进行匹配的同时,向服务器发送搜索请求,由服务器基于搜索词组与服务器内的多个分区中存储的每条第三摘要信息进行并行匹配。服务器在得到匹配结果后,将匹配结果中的原始信息进行合并并删除重复的原始信息,并将最终的匹配结果返回客户端,由客户端对内存、磁盘以及服务器反馈的匹配结果进行展示。
上述这种采用内存、磁盘和服务器同时进行匹配的方式,客户端可以使用SOCKET协议连接到代理服务器,并且每个匹配过程与上述图1采用的过程相同,对此本发明实施例不再进行阐述。
请参阅图2,其示出了本发明实施例提供的信息匹配方法的另一种流程图,在图1基础上还可以包括:
107:当第一匹配结果表明内存中存在搜索词组匹配的第一摘要信息时,对第一摘要信息的匹配次数进行更新,这样内存可以基于更新后的匹配次数对内存中存储的第一摘要信息的排序进行调整。
108:当第二匹配结果表明磁盘中存在搜索词组匹配的第二摘要信息时,对第二摘要信息的匹配次数进行更新。
109:基于更新后的每条第二摘要信息的匹配次数,将匹配次数大于第一预设次数的第二摘要信息标识为第一摘要信息添加至内存中。
110:获取添加至内存中的第一摘要信息的个数,基于个数从匹配次数排序的最后一位开始选取第一摘要信息为第二摘要信息添加至磁盘中,所选取的第一摘要信息的个数为添加至内存中的第二摘要信息的个数,这样内存中第一摘要信息的匹配次数都可以大于第一预设次数,即使内存中的第一摘要信息始终为经常被匹配的信息,当基于搜索词组在内存中匹配时提高一次从内存中匹配到第一摘要信息的概率。
例如内存中存储有10条第一摘要信息,磁盘中存储有100条第二摘要信息,第一预设次数为50次。在匹配之后磁盘中有一条第二摘要信息的匹配次数大于第一预设次数,则可以将其替换掉内存中排序为最后一位的第一摘要信息。
当然在进行替换时还可以将添加到内存中的第二摘要信息的匹配次数与被替换的第一摘要信息的匹配次数进行比对,当添加到内存中的第二摘要信息的匹配次数小于等于被替换的第一摘要信息的匹配次数,则保留两者的存储位置不变;当添加到内存中的第二摘要信息的匹配次数大于被替换的第一摘要信息的匹配次数,则将第二摘要信息添加到内存中,并同时在磁盘中也保留该第二摘要信息。
此外服务器在对每个分区进行匹配时也可以对第三摘要信息的匹配次数进行更新,这样当服务器中某个第三摘要信息的匹配次数大于第二预设次数时,也可以将大于第二预设次数的第三摘要信息替换掉磁盘中排序为最后一位的第二摘要信息。当匹配次数大于第二预设次数的第三摘要信息的个数大于一个时,则可以从磁盘中匹配次数排序的最后一位开始,将磁盘中的第二摘要信息替换为服务器中匹配次数大于第二预设次数的第三摘要信息。在第三摘要信息替换磁盘中的第二摘要信息时,第三摘要信息同时也会保留在服务器相应的分区中。
如果某一原始信息更新后,对其进行分词重组的第三摘要信息也需要更新,具体过程可以是:预先为每条第三摘要信息分配一标识符,在某个原始信息更新后可以基于标识符确定更新的第三摘要信息,并将服务器中标识符对应的第三摘要信息进行替换。并且与替换后的第三摘要信息对应的第二摘要信息和第一摘要信息也需要更新。
在本发明实施例中,信息的更新可以通过消息中间件来完成,消息中间件可以利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。消息中间件在业务应用被触发后可以确定信息被更新,比如某用户更新了自己的产品标题,此时消息中间件可以接收到应用脚本提交的信息更新指令来确定某个第三摘要信息被更新。
更新后的第三摘要信息会立即写入到服务器中,并在写入到服务器的同时检测到更新的第三摘要信息与磁盘和内存中的某个第二摘要信息和第一摘要信息相同,则立即更新相同的第二摘要信息和第一摘要信息。如果此刻出现异常比如掉电等,磁盘中的信息不会丢失,只是恢复到修改之前的状态。服务器中其他未更新的第三摘要信息会在分区正常关闭时写入到磁盘,并在启动时再次载入。并且服务器中每个分区的容量有限,当其存储的信息量大于分区的容量时,则会在服务器中增加新的分区,并对每个分区存储的信息进行重分配。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
与上述方法实施例相对应,本发明实施例还提供一种信息匹配装置,其结构示意图如图3所示,可以包括:组合单元11、第一匹配单元12、第一展示单元13、第二匹配单元14、第二展示单元15和发送单元16。
组合单元11,用于对用户输入的关键词以及基于搜索关键词选取的筛选词进行组合,得到搜索词组。其中关键词是用户在对某种对象进行搜索时手动输入的与该对象相关的关键词,筛选词则是在搜索界面展示的与对象相关的其他信息。
例如当用户搜索“裙子”时,手动输入的关键词可以为“裙子”,则展示下的相关信息可以包括:裙长、风格、腰型和尺码等,用户可以从这些相关信息中选取筛选词,关键词和所选取的筛选词组合得到搜索词组。
第一匹配单元12,用于基于搜索词组,与客户端的内存中存储的每条第一摘要信息进行匹配,得到第一匹配结果,其中第一摘要信息是对内存中存储的每条原始信息进行语义分析后分词重组的信息。
在本发明实施例中,可以采用HTTPCWS进行分词,其中HTTPCWS是一款基于HTTP协议的开源中文分词系统,其使用“ICTCLAS中文分词算法”进行分词处理,得出第一摘要信息。这种分词方式可以精确对语义进行分析,使得到的分词结果更加准确,从而在将搜索词组与第一摘要信息进行匹配时得到的第一匹配结果更加准确,从而提高匹配准确度和召回率。
第一展示单元13,用于当第一匹配结果表明内存中存在与搜索词组匹配的第一摘要信息时,将第一摘要信息对应的原始信息进行展示。在展示原始信息时除展示文字信息之外,还可以将原始信息对应的图片信息展示,这样可以使用户更加全面的理解原始信息对应的产品。
第二匹配单元14,用于当第一匹配结果表明内存中不存在与搜索词组匹配的第一摘要信息时,基于搜索词组与客户端的磁盘中存储的每条第二摘要信息进行匹配,得到第二匹配结果,其中第二摘要信息是对磁盘中存储的每条原始信息进行语义分析后分词重组的信息,且第一摘要信息为从磁盘中提取出的匹配次数大于第一预设次数的第二摘要信息。
比如磁盘可以采用SSDB(高性能的支持丰富数据结构的NoSQL数据库)来存储100条第二摘要信息,每条第二摘要信息按照匹配次数在磁盘中存储,且从排序的第一位开始到第10位为匹配次数大于第一预设次数的第二摘要信息,则将这些第二摘要信息作为第一摘要信息。也就是说内存中的第一摘要信息为磁盘中第二摘要信息的子集。在本发明实施例中第一预设次数为预先设置的某个阈值,其在不同应用场景下可以设置不同取值,并且可以基于应用场景的变化而更新。
在此需要说明的一点是:在得到搜索词组后从客户端的内存和磁盘中搜索可以提高匹配速度并降低成本。因为内存的数据读取速度要高于磁盘的数据读取速度,而其成本明显高于磁盘的成本,所以在得到搜索词组后优先从内存中查找可以提高匹配速度,并且内存中存储的部分第二摘要信息是匹配次数大于第一预设次数的信息,即将多数用户经常匹配的信息存储于内存中可以提高一次匹配成功的几率,从而提高匹配速度和匹配准确度。当内存和磁盘采用Memcahed和SSDB配合的方式进行匹配时可以达到0.00x秒级的访问速度,其中x为一自然数。进一步因为磁盘的存储空间大于内存的存储空间,且其成本低于内存,所以采用内存和磁盘分担存储第二摘要信息的方式可以降低成本。
第二展示单元15,用于当第二匹配结果表明磁盘中存在与搜索词组匹配的第二摘要信息时,展示第二摘要信息对应的原始信息。当然在展示原始信息时除展示文字信息之外,还可以将原始信息对应的图片信息展示,这样可以使用户更加全面的理解原始信息对应的产品。
发送单元16,用于当第二匹配结果表明磁盘中不存在与搜索词组匹配的第二摘要信息时,向与客户端通信的服务器发送搜索请求,由服务器基于搜索词组与服务器内的多个分区中存储的每条第三摘要信息进行并行匹配,其中第三摘要信息是对分区中存储的每条原始信息进行语义分析后分词重组的信息,且第二摘要信息为从服务器中提取出的匹配次数大于第二预设次数的第三摘要信息。也就是说磁盘中的第二摘要信息为磁盘中第三摘要信息的子集。在本发明实施例中第二预设次数为预先设置的某个阈值,其在不同应用场景下可以设置不同取值,并且可以基于应用场景的变化而更新。
从上述技术方案可以看出,本发明实施例提供的信息匹配装置可以基于语义进行分词得到各个摘要信息,从而能够基于原始信息建立适当的摘要信息,提高匹配准确度和召回率。对于历史的匹配结果如第一摘要信息和第二摘要信息采用了基于内存和磁盘的分布式存储方式,这样在匹配时可以优先从内存再到磁盘进行匹配以提高匹配速度,并且服务器侧也可以基于搜索请求进行多分区的并行匹配,使得服务器侧可以处理近1000倍的并发请求量,进一步提高匹配速度。
此外本发明实施例可以将基于搜索词组的匹配进行封装以提供一个外部业务接口,该外部业务接口则是用于基于搜索词组进行匹配的接口,这样可以使接口对业务高度透明化,真正将匹配服务做到服务化,而使业务开发可以不关心内部具体实现细节,做到业务与服务的低耦合。
在本发明实施例中可以使用YAR对基于搜索词组的匹配进行封装,例如可以使用Yar_Server方法在服务器侧进行匹配服务的封装,而在客户端侧通过Yar_Client方法进行调用。
上述图3所示的信息匹配装置采用的是先内存再磁盘最后到服务器的这种依次匹配的方式,当然本发明实施例提供的信息匹配装置还可以采用内存、磁盘和服务器同时进行匹配的方式,其具体过程如下:
首先组合单元11对用户输入的关键词以及基于搜索关键词选取的筛选词进行组合,得到搜索词组;其次基于搜索词组第一匹配单元12和第二匹配单元14同时与内存中的每条第一摘要信息以及磁盘中的每条第二摘要信息进行匹配。在与客户端的内存和磁盘进行匹配的同时,发送单元16向服务器发送搜索请求,由服务器基于搜索词组与服务器内的多个分区中存储的每条第三摘要信息进行并行匹配。服务器在得到匹配结果后,将匹配结果中的原始信息进行合并并删除重复的原始信息,并将最终的匹配结果返回客户端,由客户端对内存、磁盘以及服务器反馈的匹配结果进行展示。
上述这种采用内存、磁盘和服务器同时进行匹配的方式,客户端可以使用SOCKET协议连接到代理服务器,并且每个匹配过程与上述图1采用的过程相同,对此本发明实施例不再进行阐述。
请参阅图4,其示出了本发明实施例提供的信息匹配装置的另一种结构示意图,在图3基础上,还可以包括:第一更新单元17、第二更新单元18、第一添加单元19和第二添加单元20。
第一更新单元17,用于当第一匹配结果表明内存中存在搜索词组匹配的第一摘要信息时,对第一摘要信息的匹配次数进行更新,这样内存可以基于更新后的匹配次数对内存中存储的第一摘要信息的排序进行调整。
第二更新单元18,用于当第二匹配结果表明磁盘中存在搜索词组匹配的第二摘要信息时,对第二摘要信息的匹配次数进行更新。
第一添加单元19,用于基于更新后的每条第二摘要信息的匹配次数,将匹配次数大于第一预设次数的第二摘要信息标识为第一摘要信息添加至内存中。
第二添加单元20,用于获取添加至内存中的第一摘要信息的个数,基于个数从匹配次数排序的最后一位开始选取第一摘要信息为第二摘要信息添加至磁盘中,所选取的第一摘要信息的个数为添加至内存中的第二摘要信息的个数,这样内存中第一摘要信息的匹配次数都可以大于第一预设次数,即使内存中的第一摘要信息始终为经常被匹配的信息,当基于搜索词组在内存中匹配时提高一次从内存中匹配到第一摘要信息的概率。
例如内存中存储有10条第一摘要信息,磁盘中存储有100条第二摘要信息,第一预设次数为50次。在匹配之后磁盘中有一条第二摘要信息的匹配次数大于第一预设次数,则可以将其替换掉内存中排序为最后一位的第一摘要信息。
当然在进行替换时还可以将添加到内存中的第二摘要信息的匹配次数与被替换的第一摘要信息的匹配次数进行比对,当添加到内存中的第二摘要信息的匹配次数小于等于被替换的第一摘要信息的匹配次数,则保留两者的存储位置不变;当添加到内存中的第二摘要信息的匹配次数大于被替换的第一摘要信息的匹配次数,则将第二摘要信息添加到内存中,并同时在磁盘中也保留该第二摘要信息。
此外服务器在对每个分区进行匹配时也可以对第三摘要信息的匹配次数进行更新,这样当服务器中某个第三摘要信息的匹配次数大于第二预设次数时,也可以将大于第二预设次数的第三摘要信息替换掉磁盘中排序为最后一位的第二摘要信息。当匹配次数大于第二预设次数的第三摘要信息的个数大于一个时,则信息匹配装置中的替换单元可以从磁盘中匹配次数排序的最后一位开始,将磁盘中的第二摘要信息替换为服务器中匹配次数大于第二预设次数的第三摘要信息。在第三摘要信息替换磁盘中的第二摘要信息时,第三摘要信息同时也会保留在服务器相应的分区中。
如果某一原始信息更新后,对其进行分词重组的第三摘要信息也需要更新,具体过程可以是:信息匹配装置中的分配单元预先为每条第三摘要信息分配一标识符,在某个原始信息更新后信息匹配装置中的更新单元可以基于标识符确定更新的第三摘要信息,并将服务器中标识符对应的第三摘要信息进行替换。进一步与替换后的第三摘要信息对应的第二摘要信息和第一摘要信息也需要更新。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种信息匹配方法,其特征在于,所述方法包括:
对用户输入的关键词以及基于搜索关键词选取的筛选词进行组合,得到搜索词组;
基于所述搜索词组,与客户端的内存中存储的每条第一摘要信息进行匹配,得到第一匹配结果,其中所述第一摘要信息是对内存中存储的每条原始信息进行语义分析后分词重组的信息;
当所述第一匹配结果表明所述内存中存在与所述搜索词组匹配的第一摘要信息时,将所述第一摘要信息对应的原始信息进行展示;
当所述第一匹配结果表明所述内存中不存在与所述搜索词组匹配的第一摘要信息时,基于所述搜索词组与客户端的磁盘中存储的每条第二摘要信息进行匹配,得到第二匹配结果,其中所述第二摘要信息是对磁盘中存储的每条原始信息进行语义分析后分词重组的信息,且所述第一摘要信息为从所述磁盘中提取出的匹配次数大于第一预设次数的第二摘要信息;
当所述第二匹配结果表明所述磁盘中存在与所述搜索词组匹配的第二摘要信息时,展示所述第二摘要信息对应的所述原始信息;
当所述第二匹配结果表明所述磁盘中不存在与所述搜索词组匹配的第二摘要信息时,向与所述客户端通信的服务器发送搜索请求,由所述服务器基于所述搜索词组与所述服务器内的多个分区中存储的每条第三摘要信息进行并行匹配,其中所述第三摘要信息是对分区中存储的每条原始信息进行语义分析后分词重组的信息,且所述第二摘要信息为从所述服务器中提取出的匹配次数大于第二预设次数的第三摘要信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述第一匹配结果表明所述内存中存在所述搜索词组匹配的第一摘要信息时,对所述第一摘要信息的匹配次数进行更新。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述第二匹配结果表明所述磁盘中存在所述搜索词组匹配的第二摘要信息时,对所述第二摘要信息的匹配次数进行更新;
基于更新后的每条第二摘要信息的匹配次数,将匹配次数大于第一预设次数的第二摘要信息标识为所述第一摘要信息添加至所述内存中;
获取添加至所述内存中的所述第一摘要信息的个数,基于所述个数从所述匹配次数排序的最后一位开始选取第一摘要信息为第二摘要信息添加至所述磁盘中,所选取的所述第一摘要信息的个数为添加至内存中的第二摘要信息的个数。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:从所述磁盘中匹配次数排序的最后一位开始,将所述磁盘中的第二摘要信息替换为所述服务器中匹配次数大于所述第二预设次数的第三摘要信息。
5.根据权利要求1所述的方法,其特征在于,预先为每条第三摘要信息分配一标识符,所述方法还包括:基于所述标识符确定更新的第三摘要信息,并将所述服务器中所述标识符对应的所述第三摘要信息进行替换。
6.一种信息匹配装置,其特征在于,所述装置包括:
组合单元,用于对用户输入的关键词以及基于搜索关键词选取的筛选词进行组合,得到搜索词组;
第一匹配单元,用于基于所述搜索词组,与客户端的内存中存储的每条第一摘要信息进行匹配,得到第一匹配结果,其中所述第一摘要信息是对内存中存储的每条原始信息进行语义分析后分词重组的信息;
第一展示单元,用于当所述第一匹配结果表明所述内存中存在与所述搜索词组匹配的第一摘要信息时,将所述第一摘要信息对应的原始信息进行展示;
第二匹配单元,用于当所述第一匹配结果表明所述内存中不存在与所述搜索词组匹配的第一摘要信息时,基于所述搜索词组与客户端的磁盘中存储的每条第二摘要信息进行匹配,得到第二匹配结果,其中所述第二摘要信息是对磁盘中存储的每条原始信息进行语义分析后分词重组的信息,且所述第一摘要信息为从所述磁盘中提取出的匹配次数大于第一预设次数的第二摘要信息;
第二展示单元,用于当所述第二匹配结果表明所述磁盘中存在与所述搜索词组匹配的第二摘要信息时,展示所述第二摘要信息对应的所述原始信息;
发送单元,用于当所述第二匹配结果表明所述磁盘中不存在与所述搜索词组匹配的第二摘要信息时,向与所述客户端通信的服务器发送搜索请求,由所述服务器基于所述搜索词组与所述服务器内的多个分区中存储的每条第三摘要信息进行并行匹配,其中所述第三摘要信息是对分区中存储的每条原始信息进行语义分析后分词重组的信息,且所述第二摘要信息为从所述服务器中提取出的匹配次数大于第二预设次数的第三摘要信息。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:第一更新单元,用于当所述第一匹配结果表明所述内存中存在所述搜索词组匹配的第一摘要信息时,对所述第一摘要信息的匹配次数进行更新。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:第二更新单元,用于当所述第二匹配结果表明所述磁盘中存在所述搜索词组匹配的第二摘要信息时,对所述第二摘要信息的匹配次数进行更新;
第一添加单元,用于基于更新后的每条第二摘要信息的匹配次数,将匹配次数大于第一预设次数的第二摘要信息标识为所述第一摘要信息添加至所述内存中;
第二添加单元,用于获取添加至所述内存中的所述第一摘要信息的个数,基于所述个数从所述匹配次数排序的最后一位开始选取第一摘要信息为第二摘要信息添加至所述磁盘中,所选取的所述第一摘要信息的个数为添加至内存中的第二摘要信息的个数。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:替换单元,用于从所述磁盘中匹配次数排序的最后一位开始,将所述磁盘中的第二摘要信息替换为所述服务器中匹配次数大于所述第二预设次数的第三摘要信息。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:分配单元,用于预先为每条第三摘要信息分配一标识符;
确定单元,用于基于所述标识符确定更新的第三摘要信息,并将所述服务器中所述标识符对应的所述第三摘要信息进行替换。
CN201510219260.2A 2015-05-04 2015-05-04 一种信息匹配方法及装置 Active CN104794227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510219260.2A CN104794227B (zh) 2015-05-04 2015-05-04 一种信息匹配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510219260.2A CN104794227B (zh) 2015-05-04 2015-05-04 一种信息匹配方法及装置

Publications (2)

Publication Number Publication Date
CN104794227A CN104794227A (zh) 2015-07-22
CN104794227B true CN104794227B (zh) 2018-01-02

Family

ID=53559019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510219260.2A Active CN104794227B (zh) 2015-05-04 2015-05-04 一种信息匹配方法及装置

Country Status (1)

Country Link
CN (1) CN104794227B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138511B (zh) * 2015-08-10 2017-12-12 北京思特奇信息技术股份有限公司 一种对搜索关键词进行语义分析的方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479207B (zh) * 2010-11-29 2013-07-03 阿里巴巴集团控股有限公司 一种信息搜索的方法、系统及信息搜索设备
CN102682037B (zh) * 2011-03-18 2016-09-28 阿里巴巴集团控股有限公司 一种数据获取方法、系统及装置
CN102930054A (zh) * 2012-11-19 2013-02-13 北京奇虎科技有限公司 数据搜索方法及系统
CN103885990B (zh) * 2012-12-24 2019-07-05 腾讯科技(武汉)有限公司 搜索方法及系统
CN104424199B (zh) * 2013-08-21 2018-07-24 阿里巴巴集团控股有限公司 搜索方法和装置

Also Published As

Publication number Publication date
CN104794227A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
CN107145496B (zh) 基于关键词将图像与内容项目匹配的方法
RU2696230C2 (ru) Поиск, основанный на комбинировании пользовательских данных отношений
CN110427563B (zh) 一种基于知识图谱的专业领域系统冷启动推荐方法
CN105893609B (zh) 一种基于加权混合的移动app推荐方法
WO2018050022A1 (zh) 应用程序的推荐方法及服务器
CN108334632B (zh) 实体推荐方法、装置、计算机设备和计算机可读存储介质
CN107391509B (zh) 标签推荐方法及装置
CN107766399B (zh) 用于使图像与内容项目匹配的方法和系统及机器可读介质
TW201322021A (zh) 圖片搜索方法以及圖片搜索裝置
CN106528894B (zh) 设置标签信息的方法及装置
US20200294071A1 (en) Determining user intents related to websites based on site search user behavior
CN105224554A (zh) 推荐搜索词进行搜索的方法、系统、服务器和智能终端
CN107168991A (zh) 一种搜索结果展示方法和装置
CN103020123B (zh) 一种搜索不良视频网站的方法
CN105574162B (zh) 关键字自动超级链接的方法
CN107145497B (zh) 基于图像和内容的元数据选择与内容匹配的图像的方法
CN104778283B (zh) 一种基于微博的用户职业分类方法及系统
JP6728178B2 (ja) 検索データを処理するための方法及び装置
US11232156B1 (en) Seed expansion in social network using graph neural network
CN106919703A (zh) 电影信息搜索方法及装置
CN104123321B (zh) 一种确定推荐图片的方法及装置
CN105159898A (zh) 一种搜索的方法和装置
US10459959B2 (en) Top-k query processing with conditional skips
CN104794227B (zh) 一种信息匹配方法及装置
CN111125543B (zh) 书籍推荐排序模型的训练方法、计算设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 450000 Zhengzhou science and technology zone, Henan high tech Road, building 169, building 1, No. 1

Applicant after: ZHENGZHOU XIZHI INFORMATION TECHNOLOGY CO., LTD.

Address before: 450000 Zhengzhou science and technology zone, Henan high tech Road, building 169, building 1, No. 1

Applicant before: ZHENGZHOU XIZHI INFORMATION TECHNOLOGY CO., LTD.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant