CN115905653A - 特征数据存储方法和基于特征数据的目标对象分析方法 - Google Patents
特征数据存储方法和基于特征数据的目标对象分析方法 Download PDFInfo
- Publication number
- CN115905653A CN115905653A CN202111163522.XA CN202111163522A CN115905653A CN 115905653 A CN115905653 A CN 115905653A CN 202111163522 A CN202111163522 A CN 202111163522A CN 115905653 A CN115905653 A CN 115905653A
- Authority
- CN
- China
- Prior art keywords
- data
- feature
- container
- target
- memory
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及智慧城市、智慧出行等技术领域,提供了一种特征数据存储方法和基于特征数据的目标对象分析方法。所述特征数据存储方法包括:针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;基于对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。以使得在针对目标对象进行数据处理时,可以直接基于内存容器读取到目标对象的特征数据,避免了线上的数据解析,提高了特征数据的获取效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种特征数据存储方法、装置、计算机设备、存储介质和计算机程序产品,以及一种基于特征数据的目标对象分析方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,数据存储已成为数据分析的重要部分。例如在微信的搜一搜业务中,需要用到大量的特征数据来对文章进行打分,而文章的特征数据一般需要预先进行存储。针对特征数据的存储,常用的存储格式主要有Json(JavaScript ObjectNotation,一种轻量级的数据交换格式)、Protocol Buffers(一种数据描述语言)以及原始数据存储,并通过线上解析的方式得到用于进行数据分析的特征数据。
但目前常用的特征数据存储方式,在实际进行数据分析的应用场景下,需要将原始数据解析成为便于进行检索查询的特定格式。在对数据进行解析处理的过程中,需要消耗较多的数据处理资源,导致特征数据的获取效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高特征数据的获取效率的特征数据存储方法、装置、计算机设备、存储介质和计算机程序产品以及基于特征数据的目标对象分析方法、装置、计算机设备、存储介质和计算机程序产品。
一种特征数据存储方法,所述方法包括:
针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;
分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;
确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;
基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
一种特征数据存储装置,所述装置包括:
类别确定模块,用于针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;
结构条件确定模块,用于分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;
容器类型确定模块,用于确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;
数据存储模块,用于基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;
分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;
确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;
基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;
分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;
确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;
基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;
分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;
确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;
基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
上述特征数据存储方法、装置、计算机设备、存储介质和计算机程序产品,通过针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别,分别确定每一特征类别在目标数据处理场景下各自对应的数据结构条件,确定每一数据结构条件各自匹配的内存容器类型,得到特征类别与内存容器类型的对应关系,基于对应关系,将目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中,基于特征数据在目标数据处理场景下的数据结构条件,直接按照与数据结构条件的内存容器进行特征数据的存储,以使得在针对目标对象进行数据处理时,可以直接基于内存容器读取到目标对象的特征数据,避免了线上的数据解析,提高了特征数据的获取效率。
一种基于特征数据的目标对象分析方法,所述方法包括:
基于目标数据处理场景下所需特征数据的特征类别,按照所述特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器;
从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据;
基于所述特征数据对所述目标对象进行分析,得到所述目标对象在所述目标数据处理场景下的数据分析结果。
一种基于特征数据的目标对象分析装置,所述装置包括:
容器查找模块,用于基于目标数据处理场景下所需特征数据的特征类别,按照所述特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器;
特征读取模块,用于从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据;
数据分析模块,用于基于所述特征数据对所述目标对象进行分析,得到所述目标对象在所述目标数据处理场景下的数据分析结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
基于目标数据处理场景下所需特征数据的特征类别,按照所述特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器;
从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据;
基于所述特征数据对所述目标对象进行分析,得到所述目标对象在所述目标数据处理场景下的数据分析结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
基于目标数据处理场景下所需特征数据的特征类别,按照所述特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器;
从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据;
基于所述特征数据对所述目标对象进行分析,得到所述目标对象在所述目标数据处理场景下的数据分析结果。
一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
基于目标数据处理场景下所需特征数据的特征类别,按照所述特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器;
从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据;
基于所述特征数据对所述目标对象进行分析,得到所述目标对象在所述目标数据处理场景下的数据分析结果。
上述基于特征数据的目标对象分析方法、装置、计算机设备、存储介质和计算机程序产品,基于目标数据处理场景下所需特征数据的特征类别,按照特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器,从每一目标内存容器中,分别读取符合目标数据处理场景对应数据结构条件的特征数据,基于特征数据对目标对象进行分析,得到目标对象在目标数据处理场景下的数据分析结果,在目标内存容器中,按照特征类别存储符合目标数据处理场景对应数据结构条件的特征数据,以使得在针对目标对象进行数据处理时,可以直接从目标内存容器读取到各特征类别对应且符合数据结构条件的特征数据,无需进行线上的数据解析,提高了特征数据的获取效率。
附图说明
图1为一个实施例中特征数据存储方法和基于特征数据的目标对象分析方法的应用环境图;
图2为一个实施例中特征数据存储方法的流程示意图;
图3为一个实施例中map容器的结构示意图;
图4为一个实施例中vector容器的结构示意图;
图5为一个实施例中基于特征数据的目标对象分析方法的流程示意图;
图6为另一个实施例中特征数据存储方法的流程示意图;
图7为一个实施例中基于特征数据的目标对象分析方法的流程示意图;
图8为一个实施例中特征数据存储装置的结构框图;
图9为一个实施例中基于特征数据的目标对象分析装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的特征数据存储方法和基于特征数据的目标对象分析方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。在特征数据的存储过程中,服务器104基于终端102所对应的目标数据处理场景,确定目标对象所需的特征数据所属的特征类别,服务器104分别确定每一特征类别在目标数据处理场景下各自对应的数据结构条件,确定每一数据结构条件各自匹配的内存容器类型,得到特征类别与内存容器类型的对应关系,基于对应关系,将目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
在基于特征数据的目标对象分析的过程中,服务器104基于终端102触发的数据处理请求,确定待查找的目标对象,服务器104基于目标数据处理场景下所需特征数据的特征类别,按照特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器,从每一目标内存容器中,分别读取符合目标数据处理场景对应数据结构条件的特征数据,基于特征数据对目标对象进行分析,得到目标对象在目标数据处理场景下的数据分析结果。
例如,用户在出行之前,通过移动终端102或是车载终端102进行天气查询,服务器104响应于用户通过终端102的搜一搜栏位的搜索操作,从天气相关文章所对应的目标内存容器中,分别读取符合每一文章各特征类别的特征数据,从而基于特征数据进行分析,筛选出推荐的文章,并将推荐的文章显示在移动终端102或是车载终端102。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备、智能语音交互设备、智能家电和车载终端,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种特征数据存储方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别。
其中,目标对象是需要进行数据处理的对象,目标数据处理场景用于区分对目标对象进行的不同数据处理过程。在目标数据处理场景下,需要进行相应数据处理的目标对象可以是单独的一个对象,也可以是属于相同类型的多个对象,还可以是属于不同类型的多个对象。例如,在进行对象搜索并进行推荐显示的场景下,搜索的目标对象可以是一篇文章、可以是同一关键字匹配的多篇文章,还可以是同一关键字匹配的文章、图像、视频等。目标数据处理场景可以是根据具体的业务需求来确定,如通过输入关键字进行对象搜索并进行推荐显示的场景。在一个具体的应用中,在搜索推荐场景下,目标对象可以是与关键字匹配的所有对象,针对目标对象进行的数据处理包括基于目标对象的特征数据进行分析,并基于分析结果筛选出推荐的对象。
特征数据是进行数据处理所需要的数据,特征类别用于表征特征数据的数据类别,对目标对象进行数据处理所需的特征数据所属的特征类别与目标数据处理场景对应。具体来说,针对同一数据处理场景,若对应的目标对象的包括多个种类,每一类目标对象的特征数据的特征类别可以是不同的。针对同一目标对象,在不同的数据处理场景下,所需要的特征数据的特征类别也可以不同。以搜索文章对文章进行打分来筛选出推荐文章为例,对文章进行打分需要使用到的文章特征数据的特征类别包括实体词、词权重、标签、类别、标题、嵌入特征等。以搜索图像对图像进行打分来筛选出推荐图像为例,对图像进行打分需要使用到的图像特征数据的特征类别包括颜色特征、纹理特征、形状特征、空间关系特征等。
具体地,服务器针对每一种数据处理场景可以进行相应的特征数据存储,存储的特征数据用于实现特定的数据处理场景的数据分析。例如,针对搜索推荐场景,搜索的内容可以包括文章、视频、图像、音频等。在搜索推荐场景下,由于需要对搜索的结果进行筛选推荐,一般采用分层的筛选方式实现,例如,第一层搜索10000篇文章作为目标对象,获取每一目标对象相应的特征数据,并按照第一层对应的规则来进行评分和筛选,筛选出3000篇文章作为第二层的目标对象,按照第二层对应的规则来进行评分和筛选,筛选出500篇文章作为第三层的目标对象,按照第三层对应的规则来进行评分和筛选,筛选出100篇文章作为第四层的目标对象,按照第四层对应的规则来进行评分和筛选,筛选出200篇文章作为第五层的目标对象并推荐给用户。
步骤204,分别确定每一特征类别在目标数据处理场景下各自对应的数据结构条件。
其中,数据结构条件是在目标数据处理场景下进行数据处理的特征数据所需要满足的格式条件,数据结构条件既能限定数据的存储方式又能限定存储数据的数据类型。在目标数据处理场景下对目标对象进行数据处理时,能够从满足数据结构条件的存储数据中快速便捷地获取的所需的特征数据,以便进行相应的数据处理。数据格式条件与特征类别相对应,不同的特征类别所对应的数据格式条件可以相同,也可以不同。
数据结构条件包括数据存储类型条件以及数据格式条件。以文章为目标对象为例,文章的词权重和文章的标签这两类特征类别所对应的数据结构条件均为map<string,uint32_t>,其中,数据存储类型条件为map,数据格式条件为,<string,uint32_t>。其中,map用于表征数据存储方式为键值对存储,string表示键值对中关键字的数据类型,uint32_t表示键值对中值的数据类型(u代表unsigned即无符号,即定义的变量不能为负数;int代表类型为int整形;32代表四个字节,即为int类型;_t代表用typedef定义的;uint32_t代表用typedef定义的无符号int型宏定义)。文章的嵌入特征这一特征类别所对应的数据结构条件为vector<uint32_t>,其中,vector用于表征数据存储方式为元素值存储,uint32_t表示元素值的数据类型。
具体地,服务器针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别后,分别确定每一特征类别在目标数据处理场景下各自对应的数据结构条件。进一步地,每一特征类别所对应的数据结构条件可以基于数据处理场景的需要进行相应的配置。服务器通过查找与目标数据处理场景相匹配的数据结构条件配置数据,得到目标数据处理场景对应的每一特征类别各自对应的数据结构条件。
步骤206,确定每一数据结构条件各自匹配的内存容器类型,得到特征类别与内存容器类型的对应关系。
其中,内存容器类型用于区分具有不同内存空间结构的内存容器,内存容器类型与数据结构条件相匹配。数据结构条件是与特征类型相对应且与内存容器类型相匹配的,以数据结构条件为中间数据,能够得到特征类型与内容容器类型的对应关系。
具体地,服务器基于每一特征类别在目标数据处理场景下各自对应的数据结构条件,以及每一数据结构条件各自匹配的内存容器类型,构建得到特征类别与内存容器类型的对应关系,以确定每一类特征类别的特征数据需要存储至哪一种内存容器类型对应的内存容器中,从而便于在目标数据处理场景下实现特征数据的快速便捷获取。
在一个具体的应用中,服务器基于数据结构条件中的数据存储类型条件和数据格式条件,确定满足数据存储类型条件的内存容器类型,并建立特征类别与内存容器类型的对应关系。例如,数据结构条件map<string,uint32_t>,其中的数据存储类型条件为map,则内存容器类型为map内存容器。再例如,数据结构条件为vector<uint32_t>,其中的数据存储类型条件为vector,则内存容器类型为vector内存容器。
步骤208,基于对应关系,将目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
其中,目标内存容器是一种容纳特定类型对象的集合,用于按照数据结构条件进行特征数据存储的存储空间。目标内存容器为平面存储器模式的只读容器。平面存储器模式是一种存储器地址空间管理方式,在这种模式下,应用程序看到的内存是一个单独的连续地址空间。CPU(central processing unit,中央处理器)可以直接寻址所有可利用的内存位置,无需诉诸任何内存分段或分页机制。只读容器是指存储的特征数据只能读取,不能修改特征数据的容器。将平面存储器模式的只读容器作为目标内存容器,能够确保存储数据在内存空间是连续紧凑存储的,从而能够有效提高存储空间的利用率,减小对存储空间的占用。内存容器可以分为两类:顺序容器和关联容器。
进一步地,服务器基于特征类别与内存容器类型之间的对应关系,按照特征类别提取目标对象的特征数据,将提取的特征数据按照所属的特征类别分别存储至与该特征类别相应内存容器类型的目标内存容器中,实现针对特征数据的分类存储,在目标数据处理场景下,能够基于所需的特征数据所属的特征类别,实现特征数据的准确快速获取。
在上述实施例中,通过针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别,分别确定每一特征类别在目标数据处理场景下各自对应的数据结构条件,确定每一数据结构条件各自匹配的内存容器类型,得到特征类别与内存容器类型的对应关系,基于对应关系,将目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中,基于特征数据在目标数据处理场景下的数据结构条件,直接按照与数据结构条件的内存容器进行特征数据的存储,以使得在针对目标对象进行数据处理时,可以直接基于内存容器读取到目标对象的特征数据,避免了线上的数据解析,提高了特征数据的获取效率。
在一个实施例中,基于对应关系,将目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中,包括:针对目标对象的每一特征类别的特征数据,基于特征类别对应的内存容器类型,确定属于内存容器类型的目标内存容器;按照目标内存容器的内存空间结构,将所针对的特征类别的特征数据存储至目标内存容器中。
其中,内存空间结构是内存容器中的数据存储空间组成,内存容器所对应的内存空间结构与内存容器类型相对应,且符合内存容器类型对应的数据结构条件。不同内存容器类型的内存容器所对应的内存空间结构组成可以不同,且相同内存空间结构的数据存储方式也可以不同。例如,内存容器类型包括关联容器和顺序容器,其中,顺序容器通过元素在容器中的位置顺序存储和访问元素,而关联容器则是通过关键字存储和读取元素。以关联容器为map容器为例,map容器提供一种“键-值”关系的一对一的数据存储能力,其“键”在map容器中不可重复,且按一定顺序排列。顺序容器是一种各元素之间有顺序关系的线性表,是一种线性结构的可序群集。关联容器的内存空间结构包括数据存储区、索引信息区、元数据区以及页脚信息区,顺序容器的内存空间结构包括数据存储区、元数据区以及页脚信息区,其中,关联容器的数据存储区与顺序容器的数据存储区中存储数据的数据格式不同。
具体地,服务器按照特征类别,提取每一目标对象的各特征类别的特征数据,针对同一目标对象的每一特征类别的特征数据,基于特征类别对应的内存容器类型,确定属于内存容器类型的目标内存容器,按照目标内存容器的内存空间结构,将特征数据存储至目标内存容器中,一个目标内存容器用于存储一个目标对象的一个特征类别的特征数据。例如,当存在100个目标对象,每一个目标对象有5种不同特征类别的特征数据,则用于存储该100个目标对象的特征数据所需的目标内存容器的数量为500。
在本实施例中,通过按照目标内存容器的内存空间结构,对同一特征类别的特征数据进行存储,内存空间结构符合内存容器类型对应的数据结构条件,使得能够在目标数据处理场景下,实现按照特征类别快速准确地获取到目标对象的特征数据。
在一个实施例中,按照目标内存容器的内存空间结构,将所针对的特征类别的特征数据存储至目标内存容器中,包括:基于同一特征类别的特征数据,按照目标内存容器的内存空间结构中每一区块各自对应的数据条件,分别构造每一区块的待存储数据;将待存储数据分别写入目标内存容器的各区块。
其中,内存空间结构包括多个连续的区块,每一区块用于存储不同内容的数据。内存空间结构的具体区块组成与目标内存容器所属的内存容器类型相关。同一类型的目标内存容器的内存空间结构的具体区块组成相同。
待存储数据是基于目标对象的特征数据所确定的用于存储至相应区块的数据,内存空间结构中的区块包括用于存储特征数据的区块,还包括用于存储特征数据的关联数据的区块。其中,特征数据的关联数据包括特征数据的元数据等。
具体地,服务器获取目标内存容器的内存空间结构中每一区块各自对应的数据条件,基于同一特征类别的特征数据,按照每一区块各自对应的数据条件,分别构造每一区块的待存储数据,然后按照待存储数据对应的区块,将待存储数据分别写入目标内存容器的各区块。
在一个具体的应用中,以目标对象的第一特征类型所对应的目标内存容器为关联容器为例,关联容器的内存空间结构包括数据存储区、索引信息区、元数据区以及页脚信息区,服务器基于目标对象的第一特征类型的特征数据,分别构造数据存储区、索引信息区、元数据区以及页脚信息区的待存储数据,然后按照待存储数据对应的区块,将构造的待存储数据分别写入目标内存容器的各区块。以目标对象的第二特征类型所对应的目标内存容器为顺序容器为例,顺序容器的内存空间结构包括数据存储区、元数据区以及页脚信息区,服务器基于目标对象的第一特征类型的特征数据,分别构造数据存储区、元数据区以及页脚信息区的待存储数据,然后按照待存储数据对应的区块,将构造的待存储数据分别写入目标内存容器的各区块。
在本实施例中,服务器按照不同区块对应的数据条件,分别构造每一区块的待存储数据,一方面能够确保特征数据在内存空间为连续紧凑存储。另一方面,能够实现对特征数据按照数据结构条件进行存储,便于后续进行数据的检索和获取。
在一个实施例中,确定每一数据结构条件各自匹配的内存容器类型,包括:确定数据结构条件所表征的特征数据查找方式;当特征数据查找方式为二分查找时,确定与数据结构条件匹配的内存容器类型为按照键值对进行特征数据存储的关联容器。
其中,关联容器是按照键值对进行特征数据存储的内存容器。关联容器提供了通过关键字快速存储和访问数据元素的能力。具体地,关联容器包括set、multiset、map和multimap等,以map容器为例,其实现的原理为:map内部自建一颗红黑树,红黑树是一种严格意义上的平衡二叉树,红黑树具有对数据自动排序的功能,在map内部所有的特征数据都是有序的,从而能够实现对特征数据的二分查找,以提高特征数据的查找效率。
具体地,当服务器基于数据结构条件中的数据存储类型条件,确定数据结构条件所表征的特征数据查找方式为二分查找时,确定与数据结构条件匹配的内存容器类型为按照键值对进行特征数据存储的关联容器。
在一个具体的应用中,当数据结构条件中的数据存储类型条件为map存储,即可确定数据结构条件所表征的特征数据查找方式为二分查找,与数据结构条件匹配的内存容器类型为map容器。
在本实施例中,服务器通过数据结构条件所表征的数据查找方式,来确定数据与数据结构条件匹配的内存容器类型来进行特征数据的存储,以便能够在后续的数据处理过程中,按照指定的数据查找方式,快速准确地获取指定特征类别的特征数据,提高特征数据的获取效率。
在一个实施例中,目标内存容器为关联容器,内存空间结构包括数据存储区、索引信息区、元数据区以及页脚信息区;基于同一特征类别的特征数据,按照目标内存容器的内存空间结构中每一区块各自对应的数据条件,分别构造每一区块的待存储数据,包括:将属于同一特征类别的每一特征数据作为键值对中的值,构造键值对作为数据存储区的待存储数据;基于每一键值对中的关键字和每一关键字对应存储位置信息,构造索引信息作为索引信息区的待存储数据;基于键值对的数据类型信息,构造元数据作为元数据区的待存储数据;基于关联容器的合法标识信息、元数据区对应的第一存储位置信息以及索引信息区对应的第二存储位置信息,构造页脚信息作为页脚信息区的待存储数据。
其中,如图3所示,关联容器的内存空间结构包括数据存储区data block、索引信息区index block、元数据区以及页脚信息区footer。其中关联容器的页脚信息区footer是用于存储页脚信息的存储区域,页脚信息由一个幻数magic number及两个handle组成。其中幻数magic number是固定的,用于从内存加载时判断此关联容器对应的内存区域是否合法;两个handle包括mata info handle及index info handle,mata info handle指向元数据区meta block的原始位置,index info handle指向索引信息区index block的原始位置,索引信息区和元数据区的原始位置均可以通过offset和size来表示。
关联容器的索引信息区index block,是用于存储每一键值对中的关键字和每一关键字对应存储位置信息的存储区域。index block是由一系列的fixed16位的key_id及fixed16位的key_pos组成,其中key_id=hash(key);key_pos指向原始key的位置;indexblock还有的特点是按照key_id从小到大排列,以便可以通过二分查找来找到对应的key。
关联容器的元数据区meta block,是用于存储元数据的存储区域,在元数据区存放数据存储区中的键值对的数据类型信息等元数据。键值对的数据类型信息包括string→string,string→int,int→int,用于表示键值对中关键字和值分别对应的数据类型。参照图3,若元数据中记录的键值对的数据类型信息为string→string,则数据存储区中的键值对包括关键字、关键字的长度、值以及值的长度,若元数据中记录的键值对的数据类型信息为string→int,则数据存储区中的键值对包括关键字、关键字的长度以及值,若元数据中记录的键值对的数据类型信息包括int→int,则数据存储区中的键值对包括关键字和值。此外元数据区还可以存放目标对象的数据版本信息以及内存容器类型等元数据,在元数据区还预留有扩展空间,用于进行元数据的扩展。
关联容器的数据存储区data block,是以键值对的方式进行数据存储的存储区域,用于存放原始的键值对。在一个实施例中,数据存储区中的键值对中关键字和值所对应的存储方式均为变长存储,以节省空间。
具体地,关联容器使用上面的内存空间结构存储特征时,在获取特征数据进行数据处理时,既不需要任何编解码操作,也不需要把数据再额外放到符合数据格式条件的内存容器中,访问数据所需的唯一内存就是一个缓冲区,0个额外分配,并且支持二分查找,可以很好的解决现有的Protobuf格式等带来性能的问题。此内存空间结构以空间换时间,为每个key额外分配4字节(fixed16+fixed16)的空间,以便支持二分查找,但为key额外分配的空间是远小于将解码数据额外存放至符合数据格式条件的内存容器所需占用的空间的。
在本实施例中,通过基于数据存储区、索引信息区、元数据区以及页脚信息区构成的关联容器来对进行特征数据的存储,能够使得在获取特征数据进行数据处理时,基于二分查找的方式,快速便捷地获取到所需要的特征数据,提高数据获取效率。
在一个实施例中,确定每一数据结构条件各自匹配的内存容器类型,包括:确定数据结构条件所表征的特征数据查找方式;当特征数据查找方式为顺序遍历时,确定与数据结构条件匹配的内存容器类型为按照元素值进行特征数据存储的顺序容器。
其中,顺序容器的元素排列和元素值大小无关,而是由元素添加到容器中的次序决定的,顺序容器的类型包括vector、list和deque(双端队列)等,以顺序容器为vector容器为例,特征数据作为存储元素,在其中按照顺序存储,每个元素有唯一对应的位置编号,所有操作都是按编号或位置进行的。例如,遍历元素是按元素位置顺序逐一访问。
具体地,当服务器基于数据结构条件中的数据存储类型条件,确定数据结构条件所表征的特征数据查找方式为顺序遍历时,确定与数据结构条件匹配的内存容器类型为按照元素值进行特征数据存储的顺序容器。
在一个具体的应用中,当数据结构条件中的数据存储类型条件为vector存储,即可确定数据结构条件所表征的特征数据查找方式为顺序遍历,与数据结构条件匹配的内存容器类型为vector容器。
在本实施例中,服务器通过数据结构条件所表征的数据查找方式,来确定数据与数据结构条件匹配的内存容器类型来进行特征数据的存储,以便能够在后续的数据处理过程中,按照指定的数据查找方式,快速准确地获取指定特征类别的特征数据,提高特征数据的获取效率。
在一个实施例中,目标内存容器为顺序容器,内存空间结构包括数据存储区、元数据区以及页脚信息区;基于同一特征类别的特征数据,按照目标内存容器的内存空间结构中每一区块各自对应的数据条件,分别构造每一区块的待存储数据,包括:基于属于同一特征类别的每一特征数据,构造元素值作为数据存储区的待存储数据;基于元素值的数据类型信息,构造元数据作为元数据区的待存储数据;基于顺序容器的合法标识信息以及元数据区对应的存储位置信息,构造页脚信息作为页脚信息区的待存储数据。
其中,如图4所示,顺序容器的内存空间结构包括数据存储区data block、元数据区meta block以及页脚信息区footer。顺序容器的页脚信息区footer是用于存储页脚信息的存储区域,页脚信息由一个幻数magic number及一个mata info handle组成。其中幻数magic number是固定的,用于从内存加载时判断此顺序容器对应的内存区域是否合法,mata info handle指向元数据区meta block的原始位置。
顺序容器的元数据区meta block,是用于存储元数据的存储区域,在元数据区存放数据存储区中的元素值的数据类型信息等元数据。元素值的数据类型信息包括string,struct{int,int},int等。参照图4,若元数据中记录的元素值的数据类型信息为string,则数据存储区中的元素值包括元素值以及元素值的长度,若元数据中记录的元素值的数据类型信息为struct{int,int},则数据存储区中的键值对包括元素值组中的每一个元素值,若元数据中记录的键值对的数据类型信息为int,则数据存储区中的键值对包括元素值。此外,元数据区还可以存放目标对象的数据版本信息以及内存容器类型等元数据,在元数据区还预留有扩展空间,用于进行元数据的扩展。
顺序容器的数据存储区data block,是以元素值的方式进行数据存储的存储区域,用于存放原始的特征数据。在一个实施例中,数据存储区中的元素值所对应的存储方式为变长存储,以节省空间。
具体地,线上加载vector容器中的特征数据时,得到的是一个连续存储空间的String,之后解析器会解析尾部的footer部分,得到数据区实际的偏移位置,之后顺序遍历,得到相关的元素值内容,整个特征数据的过程中,无需进行解码,基于无需解码、ZeroCopy(零拷贝)的高性能及低内存占用的数据结构,以满足在线特征检索时高性能及低内存占用需求,快速便捷地获取到所需要的特征数据,提高数据获取效率。
在一个实施例中,如图5所示,提供了一种基于特征数据的目标对象分析方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤502,基于目标数据处理场景下所需特征数据的特征类别,按照特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器。
其中,目标数据处理场景用于区分对目标对象进行的不同数据处理过程,目标对象是需要进行数据处理的对象。在目标数据处理场景下,需要进行相应数据处理的目标对象可以是单独的一个对象,也可以是属于相同类型的多个对象,还可以是属于不同类型的多个对象。例如,在进行对象搜索并进行推荐显示的场景下,搜索的目标对象可以是一篇文章、可以是同一关键字匹配的多篇文章,还可以是同一关键字匹配的文章、图像、视频等。目标数据处理场景可以是根据具体的业务需求来确定,如通过输入关键字进行对象搜索并进行推荐显示的场景。在一个具体的应用中,在搜索推荐场景下,目标对象可以是与关键字匹配的所有对象,针对目标对象进行的数据处理包括基于目标对象的特征数据进行分析,并基于分析结果筛选出推荐的对象。
特征类别用于表征特征数据的数据类别,对目标对象进行数据处理所需的特征数据所属的特征类别与目标数据处理场景对应。特征数据与目标对象对应,是用于对目标对象进行数据处理所需要的数据。具体来说,针对同一数据处理场景,若对应的目标对象的包括多个种类,每一类目标对象的特征数据的特征类别可以是不同的。针对同一目标对象,在不同的数据处理场景下,所需要的特征数据的特征类别也可以不同。以搜索文章对文章进行打分来筛选出推荐文章为例,对文章进行打分需要使用到的文章特征数据的特征类别包括实体词、词权重、标签、类别、标题、嵌入特征等。以搜索图像对图像进行打分来筛选出推荐图像为例,对图像进行打分需要使用到的图像特征数据的特征类别包括颜色特征、纹理特征、形状特征、空间关系特征等。
内存容器类型用于区分具有不同内存空间结构的内存容器,内存容器类型与数据结构条件相匹配。数据结构条件是与特征类型相对应且与内存容器类型相匹配的,以数据结构条件为中间数据,能够得到特征类型与内容容器类型的对应关系。内存容器类型可以分为两类:顺序容器和关联容器。
目标内存容器是一种容纳特定类型对象的集合,用于按照数据结构条件进行特征数据存储的存储空间。目标内存容器为平面存储器模式的只读容器。平面存储器模式是一种存储器地址空间管理方式,在这种模式下,应用程序看到的内存是一个单独的连续地址空间。CPU可以直接寻址所有可利用的内存位置,无需诉诸任何内存分段或分页机制。只读容器是指存储的特征数据只能读取,不能修改特征数据的容器。将平面存储器模式的只读容器作为目标内存容器,能够确保存储数据在内存空间是连续紧凑存储的,从而能够有效提高存储空间的利用率,减小对存储空间的占用。
具体地,服务器响应用户触发的数据处理请求,基于数据处理请求所对应的目标数据处理场景,确定目标对象以及所需特征数据的特征类别。服务器按照特征类别与内存容器类型的对应关系,查找与目标对象对应的各目标内存容器。例如,当目标对象的数量为100个,每一个目标对象需要5种不同特征类别的特征数据,则需要分别查找100个目标对象的特征数据所需的5个目标内存容器,所需查找的目标特征容器的数量为500。
步骤504,从每一目标内存容器中,分别读取符合目标数据处理场景对应数据结构条件的特征数据。
其中,数据结构条件是在目标数据处理场景下进行数据处理的特征数据所需要满足的格式条件,数据结构条件既能限定数据的存储方式又能限定存储数据的数据类型。在目标数据处理场景下对目标对象进行数据处理时,能够从满足数据结构条件的存储数据中快速便捷地获取的所需的特征数据,以便进行相应的数据处理。数据格式条件与特征类别相对应,不同的特征类别所对应的数据格式条件可以相同,也可以不同。
数据结构条件包括数据存储类型条件以及数据格式条件。以文章为目标对象为例,文章的词权重和文章的标签这两类特征类别所对应的数据结构条件均为map<string,uint32_t>,其中,数据存储类型条件为map,数据格式条件为,<string,uint32_t>。其中,map用于表征数据存储方式为键值对存储,string表示键值对中关键字的数据类型,uint32_t表示键值对中值的数据类型。文章的嵌入特征这一特征类别所对应的数据结构条件为vector<uint32_t>,其中,vector用于表征数据存储方式为元素值存储,uint32_t表示元素值的数据类型。
具体地,服务器基于目标对象在目标数据处理场景下所需的每一特征类别,从每一特征类别分别对应目标内存容器中,分别读取符合目标数据处理场景对应数据结构条件的特征数据。其中目标内存容器中的特征数据是按照目标数据处理场景对应数据结构条件进行存储的,从而能够直接获取到目标对象每一特征类别的特征数据,并且获取到的特征数据均符合目标数据处理场景对应数据结构条件,由于特征数据的数据格式在存储过程中已经离线构造好了,线上使用的时候只需要将字节流加载到内存,就可以。也就是说,线上特征数据存在一段连续的内存空间里面,直接把存储特征数据的连续空间作为map容器或者vector容器,不需要再解析map容器或者vector容器里面的内容,即可获取特征数据对目标对象进行分析。
步骤506,基于特征数据对目标对象进行分析,得到目标对象在目标数据处理场景下的数据分析结果。
其中,针对目标对象的分析方式基于目标数据处理场景确定,分析得到的结果与目标数据处理场景相对应。例如,在搜索推荐场景下,针对目标对象的分析方式为基于特征数据对目标对象进行打分,进而筛选出推荐的目标对象。再例如,在精确匹配场景下,针对目标对象的分析方式为基于特征数据对目标对象进行匹配,进而筛选出匹配度最高的目标对象。
在本实施例中,基于目标数据处理场景下所需特征数据的特征类别,按照特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器,从每一目标内存容器中,分别读取符合目标数据处理场景对应数据结构条件的特征数据,基于特征数据对目标对象进行分析,得到目标对象在目标数据处理场景下的数据分析结果,在目标内存容器中,按照特征类别存储符合目标数据处理场景对应数据结构条件的特征数据,以使得在针对目标对象进行数据处理时,可以直接从内存容器读取到各特征类别对应且符合数据结构条件的特征数据,无需进行线上的数据解析,提高了特征数据的获取效率。
在一个实施例中,目标内存容器为按照键值对进行特征数据存储的关联容器;从每一目标内存容器中,分别读取符合目标数据处理场景对应数据结构条件的特征数据,包括:针对每一关联容器,当关联容器的页脚信息中的合法标识信息表征内存数据合法时,从页脚信息中获取索引信息区的存储位置信息;基于索引信息区的存储位置信息,在索引信息区进行二分查找,得到待获取的特征数据所对应的目标关键字;从索引信息区中,获取与目标关键字匹配的关键字位置信息;基于关键字位置信息,从关联容器的数据存储区域中查找目标键值对;基于键值对,获取目标对象在关联容器所对应特征类别下的特征数据。
其中,关联容器是按照键值对进行特征数据存储的内存容器。关联容器提供了通过关键字快速存储和访问数据元素的能力。具体地,关联容器包括set、multiset、map和multimap等,以map容器为例,其实现的原理为:map内部自建一颗红黑树,红黑树是一种严格意义上的平衡二叉树,具有对数据自动排序的功能,在map内部所有的特征数据都是有序的,从而能够实现对特征数据的二分查找,以提高特征数据的查找效率。
关联容器的内存空间结构包括数据存储区、索引信息区、元数据区以及页脚信息区。其中关联容器的页脚信息区footer是用于存储页脚信息的存储区域,页脚信息由一个幻数magic number及两个handle组成。其中幻数magic number是固定的,用于从内存加载时判断此关联容器对应的内存区域是否合法;两个handle包括mata info handle及indexinfo handle,mata info handle指向元数据区meta block的原始位置,index infohandle指向索引信息区index block的原始位置。
关联容器的索引信息区index block,是用于存储每一键值对中的关键字和每一关键字对应存储位置信息的存储区域。index block是由一系列的fixed16位的key_id及fixed16位的key_pos组成,其中key_id=hash(key);key_pos指向原始key的位置;indexblock还有一个特点是它按照key_id从小到大排列,以便可以通过二分查找来找到对应的key。
关联容器的元数据区meta block,是用于存储元数据的存储区域,在元数据区存放数据存储区中的键值对的数据类型信息等元数据。此外元数据区还可以存放目标对象的数据版本信息以及内存容器类型等元数据。
关联容器的数据存储区data block,是以键值对的方式进行数据存储的存储区域,用于存放原始的键值对。在一个实施例中,数据存储区中的键值对中关键字和值所对应的存储方式均为变长存储,以节省空间。
具体地,服务器在获取关联容器中的特征数据时,特征数据的获取方式为二分查找。进一步地,服务器针对每一关联容器,当关联容器的页脚信息中的合法标识信息表征内存数据合法时,服务器从页脚信息中获取索引信息区的存储位置信息,基于索引信息区的存储位置信息,在索引信息区进行二分查找,得到待获取的特征数据所对应的目标关键字,然后,服务器从索引信息区中,获取与目标关键字匹配的关键字位置信息,基于关键字位置信息,从关联容器的数据存储区域中查找目标键值对,最后,服务器基于键值对,获取目标对象在关联容器所对应特征类别下的特征数据,对目标对象进行分析。
在本实施例中,关联容器使用上面的内存空间结构存储特征,在从关联容器中获取特征数据进行数据处理时,既不需要任何编解码操作,也不需要把数据再额外放到符合数据格式条件的内存容器中,访问数据所需的唯一内存就是一个缓冲区,无需额外分配,并且支持二分查找,可以很好的解决现有的Protobuf格式等带来性能的问题,即节省了特征数据存储和获取所需要的总内存空间,又避免了数据解析过程提高了特征数据的获取效率。
在一个实施例中,目标内存容器为按照元素值进行特征数据存储的顺序容器;从每一目标内存容器中,分别读取符合目标数据处理场景对应数据结构条件的特征数据,包括:针对每一顺序容器,当顺序容器的页脚信息中的合法标识信息表征内存数据合法时,确定待获取的特征数据在数据存储区域中对应的偏移位置;基于偏移位置进行遍历查找,将查找得到的元素值作为目标对象在顺序容器所对应特征类别下的特征数据。
其中,顺序容器的元素排列和元素值大小无关,而是由元素添加到容器中的次序决定的,顺序容器的类型包括vector、list和deque(双端队列)等,以顺序容器为vector容器为例,特征数据作为存储元素,在其中按照顺序存储,每个元素有唯一对应的位置编号,所有操作都是按编号或位置进行的。例如,遍历元素是按元素位置顺序逐一访问。
顺序容器的内存空间结构包括数据存储区、元数据区以及页脚信息区。顺序容器的页脚信息区footer是用于存储页脚信息的存储区域,页脚信息由一个幻数magic number及一个mata info handle组成。其中幻数magic number是固定的,用于从内存加载时判断此顺序容器对应的内存区域是否合法,mata info handle指向元数据区meta block的原始位置。
顺序容器的元数据区meta block,是用于存储元数据的存储区域,在元数据区存放数据存储区中的元素值的数据类型信息等元数据。此外元数据区还可以存放目标对象的数据版本信息以及内存容器类型等元数据。
顺序容器的数据存储区data block,是以元素值的方式进行数据存储的存储区域,用于存放原始的特征数据。其中,数据存储区中的元素值所对应的存储方式为变长存储,以节省空间。
具体地,服务器在获取关联容器中的特征数据时,特征数据的获取方式为顺序遍历。进一步地,服务器针对每一顺序容器,当顺序容器的页脚信息中的合法标识信息表征内存数据合法时,确定待获取的特征数据在数据存储区域中对应的偏移位置;基于偏移位置进行遍历查找,将查找得到的元素值作为目标对象在顺序容器所对应特征类别下的特征数据。
在本实施例中,基于顺序容器进行特征数据的存储,在线上加载vector容器中的特征数据时,得到的是一个连续存储空间的内存数据,解析器解析vector容器尾部的页脚信息区,得到数据区实际的偏移位置,通过顺序遍历得到目标元素值的内容。整个特征数据的过程中无需进行解码,基于无需解码、ZeroCopy的高性能及低内存占用的数据结构,以满足在线特征检索时高性能及低内存占用需求,快速便捷地获取到所需要的特征数据,提高特征数据的获取效率。
在一个实施例中,如图6所示,提供了一种特征数据存储方法,包括以下步骤:
步骤602,针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别。
步骤604,分别确定每一特征类别在目标数据处理场景下各自对应的数据结构条件。
步骤606,当数据结构条件所表征的特征数据查找方式为二分查找时,确定与数据结构条件匹配的内存容器类型为关联容器。
步骤608,当数据结构条件所表征的特征数据查找方式为顺序遍历时,确定与数据结构条件匹配的内存容器类型为顺序容器。
步骤610,基于每一数据结构条件各自匹配的内存容器类型,得到特征类别与内存容器类型的对应关系。
步骤612,针对目标对象的每一特征类别的特征数据,基于特征类别对应的内存容器类型,确定属于内存容器类型的目标内存容器。
步骤614,基于同一特征类别的特征数据,确定关联容器的内存空间结构中每一区块各自对应的待存储数据类型。
步骤616,将属于同一特征类别的每一特征数据作为键值对中的值,构造键值对作为数据存储区的待存储数据。
步骤618,基于每一键值对中的关键字和每一关键字对应存储位置信息,构造索引信息作为索引信息区的待存储数据。
步骤620,基于键值对的数据类型信息,构造元数据作为元数据区的待存储数据。
步骤622,基于关联容器的合法标识信息、元数据区对应的第一存储位置信息以及索引信息区对应的第二存储位置信息,构造页脚信息作为页脚信息区的待存储数据。
步骤624,将待存储数据分别写入关联容器的各区块。
步骤626,基于同一特征类别的特征数据,按照顺序容器的内存空间结构中每一区块各自对应的待存储数据类型。
步骤628,基于属于同一特征类别的每一特征数据,构造元素值作为数据存储区的待存储数据。
步骤630,基于元素值的数据类型信息,构造元数据作为元数据区的待存储数据。
步骤632,基于顺序容器的合法标识信息以及元数据区对应的存储位置信息,构造页脚信息作为页脚信息区的待存储数据。
步骤634,将待存储数据分别写入顺序容器的各区块。
在一个实施例中,如图7所示,提供了一种基于特征数据的目标对象分析方法,包括以下步骤:
步骤702,基于目标数据处理场景下所需特征数据的特征类别,按照特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器。
步骤704,当目标内存容器为按照键值对进行特征数据存储的关联容器,且关联容器的页脚信息中的合法标识信息表征内存数据合法时,从页脚信息中获取索引信息区的存储位置信息。
步骤706,基于索引信息区的存储位置信息,在索引信息区进行二分查找,得到待获取的特征数据所对应的目标关键字。
步骤708,从索引信息区中,获取与目标关键字匹配的关键字位置信息。
步骤710,基于关键字位置信息,从关联容器的数据存储区域中查找目标键值对。
步骤712,基于键值对,获取目标对象在关联容器所对应特征类别下的特征数据。
步骤714,当目标内存容器为按照元素值进行特征数据存储的顺序容器,且顺序容器的页脚信息中的合法标识信息表征内存数据合法时,确定待获取的特征数据在数据存储区域中对应的偏移位置。
步骤716,基于偏移位置进行遍历查找,将查找得到的元素值作为目标对象在顺序容器所对应特征类别下的特征数据。
步骤718,基于特征数据对目标对象进行分析,得到目标对象在目标数据处理场景下的数据分析结果。
目前常用的特征数据存储格式主要有三种,分别是Json、Protocol Buffers以及存储原始数据线上解析。以“Term Weight(词权重)”特征为例,对以上结构存储特征得到的空间开销数据(单位为字节)及性能开销(单位为微秒)如表1所示:
表1:空间开销数据(单位为字节)及性能开销(单位为微秒)
其中,解析性能指的是将原始数据解析到map<string,int>结构的过程(业务方最终使用的结构)的耗时,计算方法为10000次取平均值。测试性能数据时为单线程环境,不存在内存申请竞争。
从上面的测试数据中可以看出,得益于Protocol Buffers紧凑的二进制序列化格式及对整数类型的varint(一种对正整数进行可变长字节编码的方法)编码,proto格式表示时空间占用相比json格式表示时减少73%,是很好的特征存储方式;但是从性能开销来看,即使耗时最小的proto格式,对第五层筛选出的500篇文章获取特征,总共需要8.5毫秒,可以接受。但是对第二层筛选出的10000篇文章获取特征,总共需要170毫秒,需要说明的是:对于CPU密集型,尽管并行获取特征可以减少单次耗时,但是总的CPU时间不会变,总CPU时间的增加最终会影响到整体性能,总耗时170毫秒情况下,以60核心CPU、QPS(Queries-per-second,每秒查询率)为200为例,CPU使用率会增加56%,因此,无论是protobuf还是json等格式进行特征数据存储,都不能达到同时满足高检索性能及低内存占用的效果。
本申请提供一种应用数据处理场景,该应用数据处理场景应用上述的特征数据存储方法和基于特征数据的目标对象分析方法。具体地,该特征数据存储方法和基于特征数据的目标对象分析方法在该应用数据处理场景的应用如下:
以搜索推荐的应用场景为例,在搜索推荐时,需要用到有大量的特征数据来对搜索得到的结果分别进行打分,并基于打分结果进行层层筛选,直至得到所需要的筛选结果,并推荐给用户。其中,以搜索的对象为文章为例,在每一层级的筛选过程中,都需要对筛选后的对文章进行打分,对文章进行打分依赖于每一篇文章的特征数据,因此需要对文章的特征数据进行存储。
在搜索推荐场景下,对文章打分所需要的特征数据对应的数据结构如表2所示:
表2:对文章打分所需要的特征数据对应的数据结构
特征类别 | 需要的数据结构 |
Term Weight | map<string,uint32_t> |
Entity | map<string,vector<struct{uint32_t,uint32_t}>> |
Tag | map<string,uint32_t> |
Classification | vector<{uint32_t,uint32_t}> |
Topic | map<uint32_t,uint32_t> |
Embedding | vector<uint32_t> |
上述特征类别基于实现只读的flat RO containers,即扁平空间的只读的容器来实现,flat RO containers包括flat RO map及flat RO vector两种容器,这两种容器对应的内存空间均为连续紧凑的。
具体来说,关联容器的内存空间结构包括数据存储区、索引信息区、元数据区以及页脚信息区。其中关联容器的页脚信息区footer是用于存储页脚信息的存储区域,页脚信息由一个幻数magic number及两个handle组成。其中幻数magic number是固定的,用于从内存加载时判断此关联容器对应的内存区域是否合法;两个handle包括mata info handle及index info handle,mata info handle指向元数据区meta block的原始位置,indexinfo handle指向索引信息区index block的原始位置。索引信息区index block,用于存储每一键值对中的关键字和每一关键字对应存储位置信息。index block是由一系列的fixed16位的key_id及fixed16位的key_pos组成,其中key_id=hash(key);key_pos指向原始key的位置;index block还有一个特点是它按照key_id从小到大排列,以便可以通过二分查找来找到对应的key。元数据区meta block用于存储元数据,在元数据区存放数据存储区中的键值对的数据类型信息等元数据。此外元数据区还可以存放目标对象的数据版本信息以及内存容器类型等元数据。数据存储区data block,以键值对的方式进行数据存储,用于存放原始的键值对。其中,数据存储区中的键值对中关键字和值所对应的存储方式均为变长存储。
使用flat RO map容器存储特征数据,在获取特征数据时,不需要任何编解码操作,也不需要把数据再额外放到map容器中,访问数据所需的唯一内存就是一个缓冲区,不需要额外分配,并且特征数据的获取支持二分查找,可以很好的解决Protobuf格式等带来性能的问题。
顺序容器的内存空间结构包括数据存储区、元数据区以及页脚信息区。顺序容器的页脚信息区footer是用于存储页脚信息的存储区域,页脚信息由一个幻数magic number及一个mata info handle组成。其中幻数magic number是固定的,用于从内存加载时判断此顺序容器对应的内存区域是否合法,mata info handle指向元数据区meta block的原始位置。元数据区meta block,用于存储元数据,在元数据区存放数据存储区中的元素值的数据类型信息等元数据。此外元数据区还可以存放目标对象的数据版本信息以及内存容器类型等元数据。数据存储区data block,以元素值的方式进行数据存储,用于存放原始的特征数据。数据存储区中的元素值所对应的存储方式为变长存储,以节省空间。
在线上加载flat RO vector容器中的存储的特征数据时,得到的是连续存储空间的字符串,解析器会解析vector容器尾部的footer部分,得到数据区实际的偏移位置,然后通过顺序遍历得到文章特征类别相关的特征数据内容,整个特征数据的获取过程中,无需进行解码,跟flat RO map容器一样,整个过程为也为ZeroCopy的,有效提高了特征数据的获取效率。
应该理解的是,虽然上述各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种特征数据存储装置800,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:类别确定模块、结构条件确定模块、容器类型确定模块和数据存储模块,其中:
类别确定模块802,用于针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;
结构条件确定模块804,用于分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;
容器类型确定模块806,用于确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;
数据存储模块808,用于基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
在一个实施例中,所述数据存储模块包括目标内存容器模块和特征数据存储模块;其中:
所述目标内存容器模块,用于针对所述目标对象的每一特征类别的特征数据,基于所述特征类别对应的内存容器类型,确定属于所述内存容器类型的目标内存容器;
所述特征数据存储模块,用于按照所述目标内存容器的内存空间结构,将所针对的特征类别的特征数据存储至所述目标内存容器中。
在一个实施例中,所述特征数据存储模块包括待存储数据构造模块和数据写入模块,其中:
所述待存储数据构造模块,用于基于所述同一特征类别的特征数据,按照所述目标内存容器的内存空间结构中每一区块各自对应的数据条件,分别构造每一区块的待存储数据;
所述数据写入模块,用于将所述待存储数据分别写入所述目标内存容器的各区块。
在一个实施例中,所述容器类型确定模块还用于当所述数据结构条件所表征的特征数据查找方式为二分查找时,确定与所述数据结构条件匹配的内存容器类型为关联容器;所述关联容器中的特征数据按照键值对进行存储。
在一个实施例中,所述关联容器的内存空间结构包括数据存储区、索引信息区、元数据区以及页脚信息区;所述待存储数据构造模块,还用于将属于同一特征类别的每一特征数据作为键值对中的值,构造键值对作为所述数据存储区的待存储数据;基于每一键值对中的关键字和每一关键字对应存储位置信息,构造索引信息作为所述索引信息区的待存储数据;基于所述键值对的数据类型信息,构造元数据作为所述元数据区的待存储数据;基于所述关联容器的合法标识信息、所述元数据区对应的第一存储位置信息以及所述索引信息区对应的第二存储位置信息,构造页脚信息作为所述页脚信息区的待存储数据。
在一个实施例中,所述容器类型确定模块还用于当所述数据结构条件所表征的特征数据查找方式为顺序遍历时,确定与所述数据结构条件匹配的内存容器类型为顺序容器;所述顺序容器中的特征数据按照元素值进行存储。
在一个实施例中,所述顺序容器的内存空间结构包括数据存储区、元数据区以及页脚信息区;所述待存储数据构造模块,还用于基于属于同一特征类别的每一特征数据,构造元素值作为所述数据存储区的待存储数据;基于所述元素值的数据类型信息,构造元数据作为所述元数据区的待存储数据;基于所述顺序容器的合法标识信息以及所述元数据区对应的存储位置信息,构造页脚信息作为所述页脚信息区的待存储数据。
在一个实施例中,如图9所示,提供了一种基于特征数据的目标对象分析装置900,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:容器查找模块902、特征读取模块904以及数据分析模块906,其中:
容器查找模块902,用于基于目标数据处理场景下所需特征数据的特征类别,按照所述特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器;
特征读取模块904,用于从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据;
数据分析模块906,用于基于所述特征数据对所述目标对象进行分析,得到所述目标对象在所述目标数据处理场景下的数据分析结果。
在一个实施例中,所述目标内存容器为按照键值对进行特征数据存储的关联容器;所述特征读取模块还用于针对每一关联容器,当所述关联容器的页脚信息中的合法标识信息表征内存数据合法时,从所述页脚信息中获取索引信息区的存储位置信息;基于所述索引信息区的存储位置信息,在所述索引信息区进行二分查找,得到待获取的特征数据所对应的目标关键字;从所述索引信息区中,获取与所述目标关键字匹配的关键字位置信息;基于所述关键字位置信息,从关联容器的数据存储区域中查找目标键值对;基于所述键值对,获取所述目标对象在所述关联容器所对应特征类别下的特征数据。
在一个实施例中,所述目标内存容器为按照元素值进行特征数据存储的顺序容器;所述特征读取模块还用于针对每一顺序容器,当所述顺序容器的页脚信息中的合法标识信息表征内存数据合法时,确定待获取的特征数据在数据存储区域中对应的偏移位置;基于所述偏移位置进行遍历查找,将查找得到的元素值作为所述目标对象在所述顺序容器所对应特征类别下的特征数据。
关于特征数据存储装置和基于特征数据的目标对象分析装置的具体实施例可以参见上文中对于特征数据存储方法和基于特征数据的目标对象分析方法的实施例,在此不再赘述。上述特征数据存储装置和基于特征数据的目标对象分析装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于提供内存容器进行特征数据存储。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种特征数据存储方法和基于特征数据的目标对象分析方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种特征数据存储方法,其特征在于,所述方法包括:
针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;
分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;
确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;
基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
2.根据权利要求1所述的方法,其特征在于,所述基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中,包括:
针对所述目标对象的每一特征类别的特征数据,基于所述特征类别对应的内存容器类型,确定属于所述内存容器类型的目标内存容器;
按照所述目标内存容器的内存空间结构,将所针对的特征类别的特征数据存储至所述目标内存容器中。
3.根据权利要求2所述的方法,其特征在于,所述按照所述目标内存容器的内存空间结构,将所针对的特征类别的特征数据存储至所述目标内存容器中,包括:
基于同一特征类别的特征数据,按照所述目标内存容器的内存空间结构中每一区块各自对应的数据条件,分别构造每一区块的待存储数据;
将所述待存储数据分别写入所述目标内存容器的各区块。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述确定每一所述数据结构条件各自匹配的内存容器类型,包括:
当所述数据结构条件所表征的特征数据查找方式为二分查找时,确定与所述数据结构条件匹配的内存容器类型为关联容器;
所述关联容器中的特征数据按照键值对进行存储。
5.根据权利要求4所述的方法,其特征在于,所述关联容器的内存空间结构包括数据存储区、索引信息区、元数据区以及页脚信息区;
所述基于所述同一特征类别的特征数据,按照所述目标内存容器的内存空间结构中每一区块各自对应的数据条件,分别构造每一区块的待存储数据,包括:
将属于同一特征类别的每一特征数据作为键值对中的值,构造键值对作为所述数据存储区的待存储数据;
基于每一键值对中的关键字和每一关键字对应存储位置信息,构造索引信息作为所述索引信息区的待存储数据;
基于所述键值对的数据类型信息,构造元数据作为所述元数据区的待存储数据;
基于所述关联容器的合法标识信息、所述元数据区对应的第一存储位置信息以及所述索引信息区对应的第二存储位置信息,构造页脚信息作为所述页脚信息区的待存储数据。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述确定每一所述数据结构条件各自匹配的内存容器类型,包括:
当所述数据结构条件所表征的特征数据查找方式为顺序遍历时,确定与所述数据结构条件匹配的内存容器类型为顺序容器;
所述顺序容器中的特征数据按照元素值进行存储。
7.根据权利要求6所述的方法,其特征在于,所述顺序容器的内存空间结构包括数据存储区、元数据区以及页脚信息区;
所述基于所述同一特征类别的特征数据,按照所述目标内存容器的内存空间结构中每一区块各自对应的数据条件,分别构造每一区块的待存储数据,包括:
基于属于同一特征类别的每一特征数据,构造元素值作为所述数据存储区的待存储数据;
基于所述元素值的数据类型信息,构造元数据作为所述元数据区的待存储数据;
基于所述顺序容器的合法标识信息以及所述元数据区对应的存储位置信息,构造页脚信息作为所述页脚信息区的待存储数据。
8.一种基于特征数据的目标对象分析方法,其特征在于,所述方法包括:
基于目标数据处理场景下所需特征数据的特征类别,按照所述特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器;
从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据;
基于所述特征数据对所述目标对象进行分析,得到所述目标对象在所述目标数据处理场景下的数据分析结果。
9.根据权利要求8所述的方法,其特征在于,所述目标内存容器为按照键值对进行特征数据存储的关联容器;
所述从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据,包括:
针对每一关联容器,当所述关联容器的页脚信息中的合法标识信息表征内存数据合法时,从所述页脚信息中获取索引信息区的存储位置信息;
基于所述索引信息区的存储位置信息,在所述索引信息区进行二分查找,得到待获取的特征数据所对应的目标关键字;
从所述索引信息区中,获取与所述目标关键字匹配的关键字位置信息;
基于所述关键字位置信息,从关联容器的数据存储区域中查找目标键值对;
基于所述键值对,获取所述目标对象在所述关联容器所对应特征类别下的特征数据。
10.根据权利要求8所述的方法,其特征在于,所述目标内存容器为按照元素值进行特征数据存储的顺序容器;
所述从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据,包括:
针对每一顺序容器,当所述顺序容器的页脚信息中的合法标识信息表征内存数据合法时,确定待获取的特征数据在数据存储区域中对应的偏移位置;
基于所述偏移位置进行遍历查找,将查找得到的元素值作为所述目标对象在所述顺序容器所对应特征类别下的特征数据。
11.一种特征数据存储装置,其特征在于,所述装置包括:
类别确定模块,用于针对目标数据处理场景,确定对目标对象进行数据处理所需的特征数据所属的特征类别;
结构条件确定模块,用于分别确定每一所述特征类别在所述目标数据处理场景下各自对应的数据结构条件;
容器类型确定模块,用于确定每一所述数据结构条件各自匹配的内存容器类型,得到所述特征类别与内存容器类型的对应关系;
数据存储模块,用于基于所述对应关系,将所述目标对象的特征数据,按照所属的特征类别分别存储至相应内存容器类型的目标内存容器中。
12.一种基于特征数据的目标对象分析装置,其特征在于,所述装置包括:
容器查找模块,用于基于目标数据处理场景下所需特征数据的特征类别,按照所述特征类别与内存容器类型的对应关系,查找与目标对象的每一特征类别分别对应的目标内存容器;
特征读取模块,用于从每一所述目标内存容器中,分别读取符合所述目标数据处理场景对应数据结构条件的特征数据;
数据分析模块,用于基于所述特征数据对所述目标对象进行分析,得到所述目标对象在所述目标数据处理场景下的数据分析结果。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
14.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163522.XA CN115905653A (zh) | 2021-09-30 | 2021-09-30 | 特征数据存储方法和基于特征数据的目标对象分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163522.XA CN115905653A (zh) | 2021-09-30 | 2021-09-30 | 特征数据存储方法和基于特征数据的目标对象分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905653A true CN115905653A (zh) | 2023-04-04 |
Family
ID=86486907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111163522.XA Pending CN115905653A (zh) | 2021-09-30 | 2021-09-30 | 特征数据存储方法和基于特征数据的目标对象分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905653A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116071400A (zh) * | 2023-04-06 | 2023-05-05 | 浙江光珀智能科技有限公司 | 一种基于激光雷达设备的目标轨迹跟踪方法 |
-
2021
- 2021-09-30 CN CN202111163522.XA patent/CN115905653A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116071400A (zh) * | 2023-04-06 | 2023-05-05 | 浙江光珀智能科技有限公司 | 一种基于激光雷达设备的目标轨迹跟踪方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107256262B (zh) | 一种基于物体检测的图像检索方法 | |
CN109033385B (zh) | 图片检索方法、装置、服务器及存储介质 | |
WO2017012491A1 (zh) | 一种图像高维特征的相似比较方法及装置 | |
US20150154192A1 (en) | Systems And Methods Of Modeling Object Networks | |
WO2017097231A1 (zh) | 话题处理方法及装置 | |
US20060224584A1 (en) | Automatic linear text segmentation | |
TWI549005B (zh) | 多層搜尋引擎索引 | |
CN108647322B (zh) | 基于词网识别大量Web文本信息相似度的方法 | |
CN113127632A (zh) | 基于异质图的文本摘要方法及装置、存储介质和终端 | |
WO2023142809A1 (zh) | 文本分类、文本处理方法、装置、计算机设备及存储介质 | |
CN111159563A (zh) | 用户兴趣点信息的确定方法、装置、设备及存储介质 | |
CN111752955A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN113987119A (zh) | 一种数据检索方法、跨模态数据匹配模型处理方法和装置 | |
US20230056760A1 (en) | Method and apparatus for processing graph data, device, storage medium, and program product | |
CN111475736A (zh) | 社区挖掘的方法、装置和服务器 | |
US11729268B2 (en) | Computer-implemented method, system, and storage medium for prefetching in a distributed graph architecture | |
CN115905653A (zh) | 特征数据存储方法和基于特征数据的目标对象分析方法 | |
CN118332008A (zh) | 答案筛选方法、装置、计算机设备和存储介质 | |
CN111177450A (zh) | 一种图像检索云识别方法、系统及计算机可读存储介质 | |
Zuo et al. | Bandwidth and energy efficient image sharing for situation awareness in disasters | |
CN111191011B (zh) | 一种文本标签的搜索匹配方法、装置、设备及存储介质 | |
CN110633379B (zh) | 一种基于gpu并行运算的以图搜图系统及方法 | |
CN116630630A (zh) | 语义分割方法、装置、计算机设备及计算机可读存储介质 | |
CN112214627B (zh) | 搜索方法、可读存储介质和电子设备 | |
CN112417131A (zh) | 信息推荐方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |