图片索引构建方法、装置、电子设备以及存储介质

文档序号:7751 发布日期:2021-09-17 浏览:31次 英文

图片索引构建方法、装置、电子设备以及存储介质

技术领域

本公开涉及计算机

技术领域

,尤其涉及智能搜索领域。

背景技术

信息检索(Information Retrieval)是指信息按一定的方式组织起来,并根据信息用户的需要找出有关的信息的过程和技术。信息检索有广义和狭义的之分。广义的信息检索全称为“信息存储与检索”,是指将信息按一定的方式组织和存储起来,并根据用户的需要找出有关信息的过程。狭义的信息检索为“信息存储与检索”的后半部分,通常称为“信息查找”或“信息搜索”,是指从信息集合中找出用户所需要的有关信息的过程。

由信息检索的原理可知,信息的存储是实现信息检索的基础,其中,要存储的信息不仅包括文字数据,而且还包括图片数据等。

发明内容

本公开提供了一种图片索引构建方法、装置、电子设备以及存储介质。

根据本公开的一方面,提供了一种图片索引构建方法,包括:将用于表征图片的内容的文本数据和与所述图片相关的属性信息进行组合,得到所述图片的格式化数据;将多个所述格式化数据进行分桶,得到多个数据集,其中,每个所述数据集包括多个所述格式化数据;以及针对每个所述数据集构建倒排索引,得到多个图片索引集。

根据本公开的另一方面,提供了一种图片数据检索方法,包括:响应于来自用户的检索请求,生成检索语句;以及利用图片索引集确定对应于所述检索语句的图片检索结果,其中,所述图片索引集为根据如上所述的图片索引构建方法构建的图片索引集。

根据本公开的另一方面,提供了一种图片索引构建装置,包括:组合模块,用于将用于表征图片的内容的文本数据和与所述图片相关的属性信息进行组合,得到所述图片的格式化数据;分桶模块,用于将多个所述格式化数据进行分桶,得到多个数据集,其中,每个所述数据集包括多个所述格式化数据;以及第一构建模块,用于针对每个所述数据集构建倒排索引,得到多个图片索引集。

根据本公开的另一方面,提供了一种图片数据检索装置,包括:生成模块,用于响应于来自用户的检索请求,生成检索语句;以及第二确定模块,用于利用图片索引集确定对应于所述检索语句的图片检索结果,其中,所述图片索引集为根据如上所述的图片索引构建方法构建的图片索引集。

根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1示意性示出了根据本公开实施例的可以应用图片索引构建方法及装置、或图片数据检索方法及装置的示例性系统架构;

图2示意性示出了根据本公开实施例的图片索引构建方法的流程图;

图3示意性示出了根据本公开实施例的图片转文字服务过程的示意图;

图4示意性示出了根据本公开实施例的图片索引构建服务过程的示意图;

图5示意性示出了根据本公开实施例的图片转文字服务和图片索引构建服务的交互操作的示意图;

图6示意性示出了根据本公开实施例的图片数据检索方法的流程图;

图7示意性示出了根据本公开实施例的图片检索结果的示意图;

图8示意性示出了根据本公开实施例的图片索引构建装置的框图;

图9示意性示出了根据本公开实施例的图片索引构建装置的框图;以及

图10示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。

在当今即时通讯软件中,用户对历史消息的搜索具有较强烈的需求。

发明人在实现本公开构思的过程中发现,当前的即时通讯软件一般仅支持对文字信息的检索,对于以图片形式展现的消息数据进行检索时有些无能为力。

图1示意性示出了根据本公开实施例的可以应用图片索引构建方法及装置、或图片数据检索方法及装置的示例性系统架构。

需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。例如,在另一实施例中,可以应用图片索引构建方法及装置、或图片数据检索方法及装置的示例性系统架构可以包括终端设备,但终端设备可以无需与服务器进行交互,即可实现本公开实施例提供的内容处理方法及装置。

如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如知识阅读类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的内容提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual PrivateServer″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

需要说明的是,本公开实施例所提供的图片索引构建方法一般可以由服务器105执行。相应地,本公开实施例所提供的图片索引构建装置一般可以设置于服务器105中。本公开实施例所提供的图片索引构建方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的图片索引构建装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。

或者,本公开实施例所提供的图片索引构建方法一般也可以由终端设备101、102、或103执行。相应地,本公开实施例所提供的图片索引构建装置也可以设置于终端设备101、102、或103中。

例如,在需要构建图片索引集时,服务器105可以将用于表征图片的内容的文本数据和与该图片相关的属性信息进行组合,得到该图片的格式化数据。然后将多个该格式化数据进行分桶,得到多个数据集。之后,针对每个数据集构建倒排索引,得到多个图片索引集。或者由能够与服务器105通信的服务器或服务器集群对图片进行处理,并最终实现构建图片索引集。

需要说明的是,本公开实施例所提供的图片数据检索方法一般可以由终端设备101、102、或103执行。相应地,本公开实施例所提供的图片数据检索装置也可以设置于终端设备101、102、或103中。

或者,本公开实施例所提供的图片数据检索方法一般也可以由服务器105执行。相应地,本公开实施例所提供的图片数据检索装置一般可以设置于服务器105中。本公开实施例所提供的图片数据检索方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的图片数据检索装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。

例如,在需要检索图片数据时,终端设备101、102、103可以响应于来自用户的检索请求,生成检索语句。然后将该检索语句发送给服务器105,由服务器105利用图片索引集确定对应于该检索语句的图片检索结果。或者由能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群对检索语句进行处理,并最终实现确定对应于该检索语句的图片检索结果。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2示意性示出了根据本公开实施例的图片索引构建方法的流程图。

如图2所示,该方法包括操作S210~S230。

在操作S210,将用于表征图片的内容的文本数据和与图片相关的属性信息进行组合,得到图片的格式化数据。

在操作S220,将多个格式化数据进行分桶,得到多个数据集。其中,每个数据集包括多个格式化数据。

在操作S230,针对每个数据集构建倒排索引,得到多个图片索引集。

根据本公开的实施例,图片例如为由即时通讯软件中的用户会话产生的图片,例如包括IM(即时信息)业务方推送的在各个用户会话期间发送或接收的图片等。文本数据例如包括图片中本身包含的文字信息、图片自身所表征的信息和图片上下文所表征的信息等其中至少之一。属性信息例如包括图片的发送者信息、接收者信息、发送时间信息及业务类型信息等,此处的业务类型例如为图片类型。

根据本公开的实施例,通过首先确定一个图片的文本数据和属性信息,然后将其进行组合,例如可以得到该图片的格式化数据。组合方式例如包括设计预设字段,将文本数据和属性信息对应的属性数据添加至该预设字段中;例如还包括以文本数据为基础增加预设字段,在该预设字段中添加该属性信息对应的属性数据;例如还包括以属性信息为基础增加预设字段,在该预设字段中添加文本数据。格式化数据例如为符合系统通用数据传输格式的数据。

根据本公开的实施例,对于会话中产生的多个图片,例如可以表示为多个格式化数据,图片索引集例如即为根据该多个格式化数据构建。为降低单个索引集的数据量,例如可以通过数据分桶的方式,将该多个格式化数据首先划分至多个桶中,得到多个数据集。然后针对每个数据集分别构建倒排索引,得到多个索引数据集,即图片索引集。

通过本公开的上述实施例,由于结合分桶操作构建图片索引集,在降低了单个索引集的数据量的基础上,还可有效提高检索性能。得到的多个图片索引集,能够解决用户对图片数据的检索需求。

下面结合具体实施例,并参考图3~图5,对图2所示的方法做进一步说明。

首先需要说明的是,图2所示的图片索引构建方法的整个过程例如可以分为图片转文字服务和图片索引构建服务两个过程。图片转文字服务例如可以对应至操作S210,图片索引构建服务例如可以对应至操作S220~S230。

下面结合具体实施例,并参考图3,对图片转文字服务的过程做进一步说明。

根据本公开的实施例,图片包括具有文字内容的图片。图片索引构建方法还包括:利用光学字符识别技术对图片进行识别,以提取该图片中的文字信息。将文字信息作为用于表征图片的内容的文本数据。

根据本公开的实施例,以会话消息中的带有文字信息的图片为例,用于表征图片的内容的文本数据例如可以通过调用OCR(光学字符识别)技术进行文字识别来确定。通过识别图片中的文字并记录,例如即可得到每个图片对应的文本数据的表示结果。

需要说明的是,利用OCR技术提取图片中的文字信息仅是示例性实施例,但不限于此。还可以包括本领域已知的其他图片转文字的方法,只要能够获取到用于表征图片的内容的文本数据即可。

通过本公开的上述实施例,提供了一种文本数据的确定方式,为图片索引集的构建提供了数据基础。

根据本公开的实施例,将用于表征图片的内容的文本数据和与该图片相关的属性信息进行组合,得到图片的格式化数据包括:根据文本数据和属性信息,确定具有固定属性字段的数据存储格式。将以该数据存储格式存储的文本数据和属性信息作为该格式化数据。

根据本公开的实施例,固定属性字段例如包括由用于存储文本数据的数据信息和用于存储图片的其他属性的属性信息确定的多个属性字段。数据存储格式例如包括JSON(一种轻量级的数据交换格式)存储格式,或其他预设存储格式。例如,对应于会话中的一个图片,可以表示为如下以JSON存储格式存储的格式化数据:

根据本公开的实施例,type的取值可以根据业务对象来确定。例如,type还可以取值为文字、链接或文件等。

需要说明的是,JSON存储格式仅是示例性实施例,但不限于此。还可以包括本领域已知的其他数据存储格式,只要能够实现通用的数据传输即可。

通过本公开的上述实施例,由于将图片转化为格式化数据,可以通过对格式化数据构建索引的方式来实现针对图片构建图片索引的目的,从而基于图片索引缓解对以图片形式展现的消息数据进行检索时存在困难的问题。

图3示意性示出了根据本公开实施例的图片转文字服务过程的示意图。

如图3所示,图片转文字服务300用于将图片转换为格式化数据。业务方310用于提供用户会话中的相关消息及消息属性信息。例如,业务方310可以提供图片,图片经MQ(消息队列)320进入图片转文字模块340后,图片转文字模块340可以通过调用OCR 330来提取该图片中的文字信息,得到用于表征该图片的内容的文本数据。之后,例如还可以从业务方310中获取与该图片相关的业务关联数据,如包括发送方、接收方、发送时间等属性信息。从而,数据格式化模块350可以将前述得到的文本数据和属性信息进行组合,封装为系统通用数据传输格式,即得到该图片的格式化数据。

下面结合具体实施例,并参考图4,对图片索引构建服务的过程做进一步说明。

根据本公开的实施例,图片索引构建方法还包括:从格式化数据中获取目标格式化数据。在目标格式化数据中的属性信息和文本数据其中至少之一为空的情况下,将目标格式化数据滤除。

根据本公开的实施例,为实现准确的索引构建,对于获取到的格式化数据,例如可以先进行过滤处理。过滤处理主要用于将信息不完整的格式化数据滤除。例如,以前述JSON存储格式存储的格式化数据为例,如果某一格式化数据中,存在“from”、“to”、“message”、“time stamp”、“type”、“message id”等其中至少之一的属性值为空,则可以将该格式化数据滤除。

通过本公开的上述实施例,通过清理无效数据,可有效保证索引构建的完整性。

根据本公开的实施例,图片包括在双人会话中产生的第一图片或在多人会话中产生的第二图片。将多个格式化数据进行分桶,得到多个数据集包括:将第一图片的第一格式化数据进行分桶,得到多个第一数据集;和/或,将第二图片的第二格式化数据进行分桶,得到多个第二数据集。其中,第一格式化数据和第二格式化数据被划分至不同的桶中。

根据本公开的实施例,对于IM通讯软件中的用户会话,例如通常可以分为双人会话和多人会话(即群组会话)。对于来自不同的双人会话和多人会话的图片,其业务处理逻辑有所不同,主要表现在图片的格式化数据中的接收方信息不同。例如,双人会话的接收方为用户标识信息,多人会话的接收方为群标识信息。为了减小这种差异,对于来自双人会话的第一图片所对应的第一格式化数据和来自多人会话的第二图片所对应的第二格式化数据可以被划分至不同的桶中,分别进行处理。

根据本公开的实施例,对于双人会话或多人会话产生的图片,在图片数据量过大的情况下,可以进一步分桶,使得每个桶中均包含合适数据量的数据集,以便于进一步的索引构建。分桶的过程可以通过对会话id(标识)进行hash(哈希)处理来实现。

根据本公开的实施例,具体分至多少个桶可以根据单次处理时最优的数据量的大小进行确定。例如,多人会话或双人会话产生了8000G数据,索引构建时以每40G数据进行一次构建为最优,则可以确定该8000G数据可以被划分至200个桶中,得到200个数据集。从而通过对该200个数据集分别构建索引,可以得到效果最优的200个索引集。

根据本公开的实施例,会话类型可以不仅限于如上所述的两种,例如还可以包括单人会话,单人会话可以不同于双人会话和多人会话,而被划分至另外的桶中。

需要说明的是,只要同一类型的会话产生的数据量超过了索引构建时的最优数据量的大小,均可实施分桶操作。

通过本公开的上述实施例,通过执行分桶操作,可降低单个索引集的数据流,同时有效提升检索性能。

根据本公开的实施例,图片索引构建方法还包括:确定构建倒排索引的过程出现失败的目标数据集。针对该目标数据集重新构建倒排索引。

根据本公开的实施例,数据在构建倒排索引环节,若构建失败,可以自动进行重试。例如,由于网络波动导致某一个桶内的数据集未能成功构建索引,则可以对该桶内的数据集重新执行构建索引的过程。

通过本公开的上述实施例,可以保证数据不丢失,提高索引构建的完整度。

图4示意性示出了根据本公开实施例的图片索引构建服务过程的示意图。

如图4所示,图片索引构建服务400包括操作S410~S450。

在操作S410,消费。用于消费图片转文字服务中生成的格式化数据。

在操作S420,过滤。用于滤除无效的格式化数据,如,滤除信息不完整的格式化数据等。

在操作S430,数据分桶。例如,存在双人会话和多人会话两种会话类型产生的图片数据,则首先将双人会话产生的图片数据和多人会话产生的图片数据分离成两个数据集。再如,双人会话产生的图片的数据量较少,多人会话产生的图片的数据量较多,则可以进一步对多人会话产生的图片数据进行分桶,此处例如可以确定将多人会话产生的数据均匀分配至72个桶中,而双人会话产生的图片数据可以作为一个数据集,存储于一个单独的桶中。即,本实施例中的图片数据最终被划分为73个数据集。

在操作S440,索引构建。根据数据分桶结果进行索引构建。例如,可以对73个数据集分别构建solr(一种全文搜索服务器)倒排索引,将数据均匀得分配到73个不同的solr索引集上,包括double、group1、group2、group3、...、group72。其中,double例如为针对双人会话产生的图片数据的数据集构建的solr索引集,group1例如为针对多人会话产生的图片数据的数据集1构建的solr索引集。

在操作S450,失败重试。用于在操作S440执行失败的情况下执行。

需要说明的是,在索引构建阶段对图片文字构建倒排索引时,不保留明文数据,以保障隐私安全。明文数据可以仅保存消息id、消息发送者、消息接收者、消息类别等不敏感的数据。

根据本公开的实施例,在存在失败重试的过程的基础上,图片索引构建方法还包括:在针对目标数据集构建倒排索的过程出现失败的次数大于预设阈值的情况下,将该目标数据集中的格式化数据推送至第二消息队列。

根据本公开的实施例,若在针对同一目标数据集的索引构建过程中,失败重试的次数超过系统阈值,可以向管理员发送报警邮件,并将该目标数据集中的格式化数据推送到异常数据消息中间件,以保证数据不丢失。

根据本公开的实施例,若格式化数据在图片所以构建服务的整个处理流程中产生异常,该服务可以捕获到该异常,并将异常数据收集,重新推送到异常数据消息中间件,进行二次处理。

通过本公开的上述实施例,可进一步保证数据的完整性,保证索引构建的高效性。

根据本公开的实施例,图片索引构建方法还包括:将图片转文字服务过程生成的格式化数据首先存储至第一消息队列中,在图片索引构建服务过程需要拉取图片业务数据进行索引构建时,可以从该第一消息队列中持续拉取格式化数据,然后进行过滤、分桶、索引构建等一系列操作。

通过本公开的上述实施例,由于设置了消息队列,可以为格式化数据的产生与消费过程提供一个缓冲空间,在保证数据稳定传输的基础上,提升索引构建的成功率。同时,设置消息队列可以将图片转文字服务和图片索引构建服务平稳的部署在不同的系统中,适配更多种业务系统。

根据本公开的实施例,上述消息队列例如可以直接作为异常数据消息中间件。即,第一消息队列和第二消息队列可以一体化实现。

图5示意性示出了根据本公开实施例的图片转文字服务和图片索引构建服务的交互操作的示意图。

如图5所示,其中,图片转文字服务300和图片索引构建服务400中仅绘示了本实施例需要用到的一些主要模块及操作,多余的操作未在图5中详细绘示。

根据本公开的实施例,参见图5所示,图片转文字服务300中经数据格式化模块350处理得到的图片的格式化数据首先传输至MQ 500,以通过MQ 500为图片索引构建服务400提供索引构建时消费的格式化数据。

根据本公开的实施例,参见图5所示,在针对某一数据集进行索引构建的过程出现失败的情况下,例如还可以执行操作S510。

在操作S510,err<3?若是,则执行操作S440;若否,则执行操作S510。其中,err为失败重试的次数。

在操作S440,对索引构建的过程出现失败的数据集重新执行索引构建的过程。

在操作S510,将索引构建的过程出现失败的数据集中的格式化数据推送回MQ500,进而重复图片索引构建服务400中的操作流程。

通过本公开的上述实施例,提供了一种图片索引构建方法,具有良好的扩展性,并可满足大多数业务场景下的业务数据倒排索引的构建需求。同时,还可极大限度得保证数据入库的准确性与稳定性,极大地减低数据丢失率。

图6示意性示出了根据本公开实施例的图片数据检索方法的流程图。

如图6所示,该方法包括操作S610~S620。

在操作S610,响应于来自用户的检索请求,生成检索语句。

在操作S620,利用图片索引集确定对应于该检索语句的图片检索结果。其中,图片索引集为根据上述图片索引构建方法构建的图片索引集。

根据本公开的实施例,用户的检索请求例如包括用户在搜索框中输入检索词、用户在检索页面选择检索条件等。对应于用户的每一步操作,均可生成相应的检索语句,用于从图片检索集中确定符合用户检索需求的检索结果。例如,用户在检索课中输入了检索词“信息”,则图片检索结果可以包括属于该用户历史会话消息的所有包含“信息”两个字的图片。

通过本公开的上述实施例,由于构建了图片索引集,可以满足用户针对图片数据的检索需求,提高检索性能。

下面结合具体实施例,并参考图7,对图6所示的方法做进一步说明。

根据本公开的实施例,响应于来自用户的检索请求,生成检索语句包括:根据与用户相关会话的会话信息生成第一查询语句。根据检索请求所表征的检索条件生成第二查询语句。将第一查询语句和第二查询语句进行组合,生成检索语句。

根据本公开的实施例,由于图片索引集是根据使用IM通讯软件的所有用户的会话消息构建的,因此,在一个用户发出检索请求时,可以首先根据该用户的通讯权限,从IM业务方中确定该用户所拥有的所有会话信息,然后根据该会话信息确定第一查询语句。例如,在根据IM业务方确定发出检索请求的用户所拥有的所有会话信息后,可以根据会话id计算出存储不同会话信息的solr索引集,然后即可根据solr索引集的名称生成基于该solr索引集进行查询的第一查询语句。

根据本公开的实施例,例如,检索请求可以为通过输入检索词进行检索,则第二查询语句可以为基于该检索词生成的solr过滤语句。再如,检索请求可以为用户选择检索条件,如用户选定检索对象需要为图片、文字、链接、文件等中的任意一个或多个类型,则第二查询语句可以为基于该检索条件生成的solr过滤语句。再如,检索请求还可以为用户选定时间范围,则第二查询语句可以为根据用户选定的该时间范围生成的solr时间过滤语句。

根据本公开的实施例,响应于来自用户的检索请求,可以得到包含上述第一查询语句和第二查询语句在内的solr检索语句。在得到该solr检索语句之后,例如即可对solr图片索引集发起请求,以最终根据solr图片索引集获取到满足用户检索需求的数据。Solr图片索引集例如为上述构建的由double、group1、group2、group3、...、group72等构成的索引集。

根据本公开的实施例,在获取到所有满足用户检索需求的数据之后,例如可以进一步将该数据按照会话id聚合在一起,并经格式化处理后返回给上游。

通过本公开的上述实施例,可以生成符合本公开实施例中所构建的图片索引集的检索语句,进而有效完成对图片数据的检索。

根据本公开的实施例,图片数据检索方法还包括:将图片检索结果中的图片进行可视化展示。将用于检索图片的检索词进行高亮展示。

根据本公开的实施例,由于对应于检索语句返回给上游的所有数据都是加密的,根据该些数据没有办法直接获取到对应的明文数据。所以在获取到返回给上游的该些数据后,可以通过会话id调用IM业务方服务来获取到相应的明文数据,以便进行展示。同时,还可以利用获取到的上游数据调用solr的高亮生成服务,生成对应于该上游数据的高亮显示结果,同相应的明文数据一并展示给用户。

通过本公开的上述实施例,能够对图片检索结果进行可视化展示,进一步满足用户对图片数据的检索需求。

根据本公开的实施例,检索条件包括检索词、检索约束类型和检索约束时间其中至少之一。

根据本公开的实施例,检索条件也可以不仅限于以上所列,所有能够满足用户需求的帅选条件均可作为本公开实施的检索条件。

通过本公开的上述实施例,由于设计了多样化的检索条件,可以更大程度的满足用户的检索需求,提升用户满意度。

图7示意性示出了根据本公开实施例的图片检索结果的示意图。

如图7所示,710为用户输入的检索词,本实施例中,输入的检索词例如为“图片”。720为针对该检索词的检索结果,该结果显示与用户A和用户B相关的会话中提到了“图片”这个内容,检索结果包括包含响应检索词的图片,以及相应检索词的高亮化展示,如图中721和722为高亮化展示的检索词。730和740可以用于选择额外的检索条件。例如,图中730对应的可想想包括731所示的结果,可以选择检索对象的类型。例如,图中740对应的可选项包括741所示的结果,可以选择检索的时间范围等。

通过本公开的上述实施例,提供了一种可用于实现智能搜图检索的图片索引构建方法和图片数据检索方法,该方法可推广使用于所有IM通讯软件的检索场景,有效解决了用户对图片数据的检索需求。

图8示意性示出了根据本公开实施例的图片索引构建装置的框图。

如图8所示,图片索引构建装置800包括组合模块810、分桶模块820和第一构建模块830。

组合模块810,用于将用于表征图片的内容的文本数据和与图片相关的属性信息进行组合,得到图片的格式化数据。

分桶模块820,用于将多个格式化数据进行分桶,得到多个数据集。其中,每个数据集包括多个格式化数据。

第一构建模块830,用于针对每个数据集构建倒排索引,得到多个图片索引集。

根据本公开的实施例,图片包括具有文字内容的图片。图片索引构建装置还包括识别模块和定义模块。

识别模块,用于利用光学字符识别技术对图片进行识别,以提取图片中的文字信息。

定义模块,用于将文字信息作为用于表征图片的内容的文本数据。

根据本公开的实施例,组合模块包括确定单元和定义单元。

确定单元,用于根据文本数据和属性信息,确定具有固定属性字段的数据存储格式。

定义单元,用于将以数据存储格式存储的文本数据和属性信息作为格式化数据。

根据本公开的实施例,图片索引构建装置还包括存储模块和第一获取模块。

存储模块,用于将格式化数据存储至第一消息队列。

第一获取模块,用于从第一消息队列中获取多个格式化数据。

根据本公开的实施例,图片索引构建装置还包括第二获取模块和滤除模块。

第二获取模块,用于从格式化数据中获取目标格式化数据。

滤除模块,用于在目标格式化数据中的属性信息和文本数据其中至少之一为空的情况下,将目标格式化数据滤除。

根据本公开的实施例,图片包括在双人会话中产生的第一图片或在多人会话中产生的第二图片。

根据本公开的实施例,分桶模块包括第一分桶单元和/或第二分桶单元。

第一分桶单元,用于将第一图片的第一格式化数据进行分桶,得到多个第一数据集。

第二分桶单元,用于将第二图片的第二格式化数据进行分桶,得到多个第二数据集。

其中,第一格式化数据和第二格式化数据被划分至不同的桶中。

根据本公开的实施例,图片索引构建装置还包括第一确定模块和第二构建模块。

第一确定模块,用于确定构建倒排索引的过程出现失败的目标数据集。

第二构建模块,用于针对目标数据集重新构建倒排索引。

根据本公开的实施例,图片索引构建装置还包括推送模块。

推送模块,用于在针对目标数据集构建倒排索的过程出现失败的次数大于预设阈值的情况下,将目标数据集中的格式化数据推送至第二消息队列。

图9示意性示出了根据本公开实施例的图片索引构建装置的框图。

如图9所示,图片数据检索装置900包括生成模块910和第二确定模块920。

生成模块910,用于响应于来自用户的检索请求,生成检索语句。

第二确定模块920,用于利用图片索引集确定对应于检索语句的图片检索结果。其中,图片索引集为根据如上所述的图片索引构建方法构建的图片索引集。

根据本公开的实施例,生成模块包括第一生成单元、第二生成单元和组合单元。

第一生成单元,用于根据与用户相关会话的会话信息生成第一查询语句。

第二生成单元,用于根据检索请求所表征的检索条件生成第二查询语句。

组合单元,用于将第一查询语句和第二查询语句进行组合,生成检索语句。

根据本公开的实施例,图片数据检索装置还包括第一展示模块和第二展示模块。

第一展示模块,用于将图片检索结果中的图片进行可视化展示。

第二展示模块,用于将用于检索图片的检索词进行高亮展示。

根据本公开的实施例,检索条件包括检索词、检索约束类型和检索约束时间其中至少之一。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

根据本公开的实施例,一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上所述的方法。

根据本公开的实施例,一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行如上所述的方法。

根据本公开的实施例,一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上所述的方法。

图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。

设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如图片索引构建方法或图片数据检索方法。例如,在一些实施例中,图片索引构建方法或图片数据检索方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的图片索引构建方法或图片数据检索方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图片索引构建方法或图片数据检索方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以是分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种图像分布式存储方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!