一种信息处理方法和系统
技术领域
本说明书实施例涉及互联网领域,特别涉及一种信息处理方法和系统。
背景技术
近年来,随着互联网技术的高速发展和大数据平台的不断扩充,人们容易面临“海量信息”带来的选择困难症。在此形势下,推荐系统的作用越发显著。作为推荐系统中常用的过滤手段,规则匹配的传统实现方案大多采用自定义规则格式、代码解析及代码布尔计算三者结合来完成相关功能。其中,自定义规则通常需要较多的沟通和理解成本。同时,规则的解析、计算往往导致代码逻辑复杂,在面对新需求时扩展成本较高,甚至无法满足特定需求,整个方案开发和后期维护都存在较大成本。
为了完善推荐系统的数据检索功能并提高其使用效率,需要提供更为有效的执行方案。
发明内容
本说明书中实施例涉及一种信息处理方法。所述方法包括:获取至少一个规则约束条件;将所述至少一个规则约束条件转换为至少一个结构化查询语言的条件表达式;获取候选信息,根据所述候选信息以及所述至少一个结构化查询语言的条件表达式,执行结构化的查询,得到查询结果。
在一些实施例中,所述方法还包括:将所述至少一个结构化查询语言条件表达式分为至少一组;所述根据所述候选信息以及所述至少一个结构化查询语言的条件表达式,执行结构化的查询,包括:在所述候选信息上执行每组结构化查询语言的条件表达式,得到每组结构化查询语言的条件表达式的匹配结果。
在一些实施例中,所述至少一个规则约束条件包括以下规则约束条件中的至少一种:限定特定特征的区间范围的规则约束条件;限定特定特征是否为设定元素的规则约束条件;或限定特定特征包含或不包含设定元素的规则约束条件。
在一些实施例中,所述将所述至少一个规则约束条件转换为至少一个结构化查询语言的条件表达式,包括以下中的至少一种:将所述限定特定特征的区间范围的规则约束条件转换为含有运算符in、between…and…、>、>=、<或<=中任一运算符的结构化查询语言的条件表达式;将所述限定特定特征是否为设定元素的规则约束条件转换为含有运算符=、<>或!=中任意运算符的结构化查询语言的条件表达式;或将所述限定特定特征包含或不包含设定元素的规则约束条件转换为含有运算符like或not like的结构化查询语言的条件表达式。
本说明书实施例还涉及一种信息处理系统。所述系统包括:第一获取模块,用于获取至少一个规则约束条件;结构化查询语言转换模块,用于将所述至少一个规则约束条件转换为至少一个结构化查询语言的条件表达式;第二获取模块,用于获取候选信息;查询模块,用于根据所述候选信息以及所述至少一个结构化查询语言的条件表达式,执行结构化的查询,得到查询结果。
本说明书实施例还涉及一种信息处理装置。所述装置包括至少一个处理器以及至少一个存储器;所述至少一个存储器用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现如上所述的信息处理方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1为根据本说明书一些实施例所示的一个示例性信息处理系统的应用场景图;
图2为根据本说明书一些实施例所示的信息处理方法的示例性流程图;
图3是根据本说明书一些实施例所示的一个示例性信息处理系统的框图;
图4是根据本说明书一些实施例所示的推荐方法的示例性流程图;
图5为根据本说明书一些实施例所示的推荐方法的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1所示为根据本说明书一些实施例所示的一个示例性信息处理系统的应用场景图。
信息处理系统100可以进行信息处理。在一些实施例中,信息处理系统100可以进行信息查询。在一些实施例中,信息处理系统100可以根据查询结果确定推荐方案。例如,商户推出商品,希望通过广告宣传的方式提高销量,特别是向购买潜力大的人群推送广告,从而提升广告宣传的效果,提高销量。商户可以自己进行广告宣传,也可以委托其他平台进行广告宣传。例如,商户可以向平台方提供商品信息,还可以提供目标用户的用户画像,然后平台方根据商户提供的这些信息判断某用户是否属于目标用户,如果属于,则向该用户进行有针对性的广告推送。或者,平台方也可以自行为商品制定宣传策略。例如,平台方可能接收到多种商品的信息,同时,平台方掌握大量用户的信息,平台方可以对商品与用户进行匹配,将匹配成功的商品推荐给用户。需要说明的是,尽管本申请中多处以确定推荐方案为例进行描述,但本申请的技术方案并不仅限于用于确定推荐方案,也可以用于其他各种涉及信息查询的场景。利用本申请的技术方案,只需操作者输入约束条件即可进行查询。
信息处理系统100可以包括服务器110、网络120、平台方终端130、用户终端140以及存储设备150。
服务器110可以处理来自信息处理系统100的至少一个组件的数据和/或信息。例如,服务器110可以从平台方终端130和/或存储设备150处获取商品信息,从用户终端140和/或存储设备150处获取用户信息,服务器110还可以从平台方终端130获取规则约束条件,根据规则约束条件判断候选信息是否满足条件,甚至还可以根据判断结果确定推荐方案。又例如,服务器110可以对数据进行格式转换,如将获取到的规则约束条件转换成结构化查询语言(Structured Query Language,SQL)的条件表达式、将获取到的用户信息转换为结构化数据。
在一些实施例中,服务器110可以是单个处理设备,也可以是处理设备组。处理设备组可以是经由接入点连接到网络120的集中式处理设备组,或者经由至少一个接入点分别连接到网络120的分布式处理设备组。在一些实施例中,服务器110可以本地连接到网络120或者与网络120远程连接。例如,服务器110可以经由网络120访问存储在平台方终端130、用户终端140和/或存储设备150中的信息和/或数据。又例如,存储设备150可以用作服务器110的后端数据存储器。在一些实施例中,服务器110可以在云平台上实施。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
在一些实施例中,服务器110可以包括处理设备112。处理设备112可以处理与本申请中描述的至少一个功能相关的信息和/或数据。在一些实施例中,处理设备112可以执行信息处理系统100的主要功能。在一些实施例中,处理设备112可包括至少一个处理单元(例如,单核处理设备或多核处理设备)。仅作为示例,处理设备112包括中央处理单元(CPU)、专用集成电路(ASIC)、专用应用指令集处理器(ASIP)、图形处理单元(GPU)、物理处理单元(PPU)、数字信号处理器(DSP)、现场可程序门阵列(FPGA)、可程序逻辑设备(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等,或其任意组合。
网络120可以促进信息和/或数据的交换。在一些实施例中,信息处理系统100中的至少一个组件(例如,服务器110、平台方终端130、用户终端140、存储设备150)可以经由网络120将信息和/或数据发送到信息处理系统100中的其他组件。例如,处理设备112可以经由网络120从平台方终端130和/或存储设备150获得商品信息,从用户终端140获取用户信息。又例如,处理设备112在确定推荐方案后,可以将待推荐商品的信息发送给目标用户。
在一些实施例中,网络120可以为任意形式的有线或无线网络,或其任意组合。仅作为示例,网络120可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共开关电话网络(PSTN)、蓝牙网络、ZigBee网络、近场通讯(NFC)网络等或其任意组合。在一些实施例中,网络120可以包括至少一个网络接入点。例如,网络120可以包括有线或无线网络接入点,如基站和/或互联网交换点120-1、120-2、……,通过信息处理系统100的至少一个部件可以连接到网络120以交换数据和/或信息。
平台方人员可以通过平台方终端130接入信息处理系统100。平台方可以是需要查询信息的一方。在一些实施例中,平台方为向用户推荐商品的一方。在一些实施例中,平台方人员可以通过平台方终端130向服务器110上传商品信息。在一些实施例中,平台方人员还可以通过平台方终端130向服务器110上传规则约束条件,例如对用户特征的约束条件、对商品特征的约束条件。平台方终端130可以包括移动设备130-1、平板计算机130-2、膝上型计算机130-3等,或其任何组合。在一些实施例中,移动设备130-1可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能摄像机、对讲机等,或其任意组合。在一些实施例中,该可穿戴设备可包括智能手环、智能鞋袜、智能眼镜、智能头盔、智能手表、智能衣服、智能背包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(PDA)、游戏设备、导航设备、销售点(POS)等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强型虚拟现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实补丁、增强现实头盔、增强现实眼镜、增强现实补丁等或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括GoogleGlassTM、OculusRiftTM、HololensTM或GearVRTM等。
用户可以通过用户终端140接入信息处理系统100。在一些实施例中,用户可以通过用户终端140向服务器110上传用户信息。例如,用户可以在平台方终端130上通过文字输入、语音输入、选择输入等方式输入个人信息,再上传至服务器110。在另一些实施例中,用户可以通过用户终端140接收服务器110发送的推荐商品信息。用户终端140可以包括移动设备140-1、平板计算机140-2、膝上型计算机140-3等,或其任何组合。用户终端140的类型与平台方终端130的类型类似,此处不再赘述。在一些实施例中,用户终端140可以是一带有定位技术的装置,以确定用户终端140的位置,并发送给信息处理系统100中的一个或多个设备,例如服务器110。
存储设备150可以储存数据和/或指令。例如,可以存储用户信息、商品信息等。在一些实施例中,存储设备150可以存储处理设备112可以执行的数据和/或指令,服务器110可以通过执行或使用所述数据和/或指令以实现本申请描述的示例性方法。在一些实施例中,存储设备150可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性易失性读写存储器可以包括随机存取存储器(RAM)。示例性RAM可包括动态随机存取存储器(DRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、静态随机存取存储器(SRAM)、晶闸管随机存取存储器(T-RAM)和零电容随机存取存储器(Z-RAM)等。示例性只读存储器可以包括掩模型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(PEROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储设备150可在云平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
应当注意的是,上述有关信息处理系统100的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对信息处理系统100进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。
图2是根据本说明书一些实施例所示的信息处理方法的示例性流程图。在一些实施例中,流程200可以由服务器110实现。
步骤210,获取至少一个规则约束条件。
规则约束条件反映信息筛选条件,用来判断候选信息是否与满足条件。在一些实施例中,规则约束条件用来确定是否向用户推荐待推荐物,根据规则约束条件可以判断待推荐物是否与用户信息匹配,从而确定是否将待推荐物推荐给用户。在一些实施例中,规则约束条件可以用来限定特定特征的区间范围。例如,限定用户的年龄范围,如限定用户年龄在28~35周岁。在一些实施例中,规则约束条件可以用来限定特定特征是否为设定元素。例如,限定用户当前城市是否为设定城市,如限定用户当前城市在北京,或者限定用户当前城市不在北京。又例如,限定用户性别为男性。在一些实施例中,规则约束条件可以用来限定特定特征包含或不包含设定元素。例如,限定用户的历史购物评价里包含负面词汇。又例如,限定用户的历史消费记录中包含特定种类的物品。在一些实施例中,规则约束条件可以用来限定特定特征的不同程度情况。例如,限定用户的教育程度,如限定用户为本科学历或是大专学历。又例如限定用户的信用等级为优或良。在一些实施例中,规则约束条件可以用来限定特定特征的支付方式。例如,限定用户的当前支付方式为银行卡支付或是通过支付宝等支付方式进行支付。
在一些实施例中,规则约束条件可以表现为键值对(“key=value”)。例如,规则约束条件为用户当前城市不在北京,表现为键值对即为“current city不等于北京”。
在一些实施例中,可以根据待推荐物的信息确定规则约束条件。待推荐物包括但不限于商品、服务等。下文中“商品”和“待推荐物”可互换使用。待推荐物信息包括但不限于待推荐物的名称、品牌、类型、型号、价格、使用期间、接收到的历史评价、可接受支付方式等。在一些实施例中,服务器110可以从平台方终端130处获取待推荐物信息。例如,业务方将待推荐物信息发给平台方,平台方据此在平台方终端130上设置待推荐物的信息,然后平台方终端130再将这些信息上传至服务器110。在一些实施例中,服务器110也可以从存储设备或其他信息源处获取待推荐物的信息。在一些实施例中,可以从平台方终端130处获取规则约束条件。例如,平台方有多个待推荐物,可以预测每个待推荐物的目标用户,从而确定每个待推荐物相应的规则约束条件。
平台方人员可以在平台方终端130上输入规则约束条件,输入方式包括但不限于打字输入、手写输入、选择输入、语音输入、扫描输入等。以选择输入为例,可以包括勾选、下拉框选择等。例如,平台方人员希望对“性别”这一特征进行限定,则可以在若干特征中选择“性别”这一项;进一步,平台方人员希望将“性别”限定为“男”,则可在性别选择中选择“男”。在一些实施例中,平台方人员可以从业务方获取规则约束条件。具体地,业务方(如商家)定位自己的某一业务(如商品)适合某一类人群,该类人群具有一些相同的特征,则可以将该些特征确定为规则约束条件。
步骤220,将所述至少一个规则约束条件转换为至少一个结构化查询语言的条件表达式。
结构化查询语言是(Structured Query Language,SQL)是一种用于访问和处理数据库的标准的计算机语言,其语言简洁,语法简单,具有广泛应用。SQL作为通用的数据查询工具,具备多种类型的布尔条件表达式,通过将规则约束条件转化为对应的SQL条件表达式,将待匹配数据映射为结构化数据,利用特定引擎将SQL条件表达式应用到结构化数据上,查询结构化数据中是否有满足所述SQL条件表达式的数据,从而找出满足所述规则约束条件的数据。由于SQL应用的普遍性和语言的简洁性,该方案在沟通和理解上的成本很低,较容易将业务过滤规则转化成对应的SQL条件表达式。同时,SQL丰富强大的数据操作,能应对绝大多数业务过滤规则范式。
SQL有一些固定的表达形式,其中会用到专门的运算符。在一些实施例中,可以将限定特定特征的区间范围的规则约束条件转换为相应的限制区间范围SQL条件表达式。此类SQL条件表达式会用到限定区间范围的运算符,如between…and…、in、>、>=、<、<=等。例如,规则约束条件为限定用户的年龄为28~35岁,转换为SQL条件表达式可以为:Select*FROM Users WHERE age BETWEEN 28AND 35。在用户年龄均为整数的情况下,上述限定用户年龄的规则约束条件也可以转化为:Select*FROM Users WHERE age IN(28,29,30,31,32,33,34,35)。又例如,规则约束条件为限定用户的年龄不超过30岁,转换为SQL条件表达式可以为:Select*FROM Users WHERE age<=30。再以限定用户的学历为大专以上为例,转换为SQL条件表达式可以为:Select*FROM Users WHERE education degree IN(‘大专’,‘本科’,‘硕士’,‘博士’)。在一些实施例中,可以将限定特定特征是否为设定元素的规则约束条件转换为相应的限制是否状态的SQL条件表达式。此类SQL条件表达式会用到限定是否状态的运算符,如=、<>、!=等。例如,规则约束条件为限定用户当前城市不在北京,转换为SQL表达式可以为:Select*FROM Users WHERE current city<>北京。又例如,规则约束条件为限定用户当前城市为杭州,转换为SQL表达式可以为:Select*FROM Users WHEREcurrentcity=杭州。在一些实施例中,可以将限定特定特征包含或不包含设定元素的规则约束条件转换为相应的限定包含或不包含某元素的SQL条件表达式。此类SQL条件表达式会用到限定包含或不包含的运算符,如like、not like等。例如,规则约束条件为限定用户的历史购物记录中购买过基金类产品,转换为SQL表达式可以为:Select*FROM Users WHEREhistoricalshopping record LIKE‘%基金%’。
步骤230,获取候选信息。
候选信息是等待与规则约束条件进行匹配的信息。候选信息可以为各种信息。在一些实施例中,候选信息可以为用户信息。不同用户有不同的用户信息。在一些实施例中,一个用户对应一条用户信息。用户信息可以反映用户的固有特征和/或当前特征。固有特征通常为固定的、不会发生变化的,例如用户的性别、职业、教育程度、籍贯、住址、联系方式等。当前特征往往会不断发生变化,例如用户的当前城市、当前支付方式等。在一些实施例中,服务器110可以从存储设备(如存储设备150或系统100外部的其他存储设备等)或其他信息源处获取用户信息;或者,也可以从用户终端140处获取用户信息。例如,用户可以在用户终端140上填写自己的信息,然后用户终端140再将接收到的信息上传至服务器110。
步骤240,根据所述候选信息以及所述至少一个结构化查询语言的条件表达式,执行结构化的查询,得到查询结果。
服务器110可以在所述候选信息上执行所述至少一个结构化查询语言的条件表达式,从而判断所述候选信息是否满足条件。在一些实施例中,服务器110每获取一条候选信息,便会在该条候选信息上执行SQL条件表达式,判断候选信息是否满足条件。在一些实施例中,步骤230中获取到的候选信息为非结构化的数据,则可以将它们转换为结构化数据。有关结构化数据的转换的更多内容可以参见图5及其描述。在一些实施例中,可以在候选信息上逐条执行每一条SQL条件表达式进行查询,或者也可以并行执行多条SQL条件表达式进行查询。在一些实施例中,可以将SQL条件表达式分为至少一个组,然后执行每组SQL条件表达式进行查询。有关将SQL条件表达式分组执行查询的更多内容可以参见图4及其描述,此处不再赘述。在一些实施例中,还可以根据所述查询结果确定推荐方案。以所述规则约束条件根据待推荐物的信息确定、所述候选信息为用户信息为例,可以根据所述查询结果确定有关将待推荐物推荐给用户的推荐方案。推荐方案可以有多种设计。仅作为示例,有多个待推荐物,每个待推荐物具有相应的规则约束条件,针对一条用户信息,可在该条用户信息上执行各待推荐物的规则约束条件对应的SQL条件表达式,从而筛选出与该条用户信息匹配的待推荐物。在一些实施例中,一条用户信息可能与超过一种待推荐物匹配,则可以将这些待推荐物都推荐给该用户。
应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。例如,在一些实施例中,步骤230可以在步骤210之前执行,或者与步骤210同时执行。
图3是根据本说明书一些实施例所示的一个示例性信息处理系统的框图。如图3所示,该系统可以包括第一获取模块310、SQL转换模块320、第二获取模块330、查询模块340以及推荐模块350。
第一获取模块310用于获取信息。在一些实施例中,第一获取模块310用于获取规则约束条件。在一些实施例中,规则约束条件可以用来限定特定特征的区间范围。在一些实施例中,规则约束条件可以表现为键值对。在一些实施例中,第一获取模块310可以从平台方终端130处获取规则约束条件。平台方人员可以在平台方终端130上输入规则约束条件。
SQL转换模块320用于将规则约束条件转换为SQL条件表达式。在一些实施例中,可以将限定特定特征的区间范围的规则约束条件转换为相应的限制区间范围SQL条件表达式。此类SQL条件表达式会用到限定区间范围的运算符,如between…and…、in、>、>=、<、<=等。在一些实施例中,可以将限定特定特征是否为设定元素的规则约束条件转换为相应的限制是否状态的SQL条件表达式。此类SQL条件表达式会用到限定是否状态的运算符,如=、<>、!=等。在一些实施例中,可以将限定特定特征包含或不包含设定元素的规则约束条件转换为相应的限定包含或不包含某元素的SQL条件表达式。此类SQL条件表达式会用到限定包含或不包含的运算符,如like、not like等。
第二获取模块330用于获取信息。在一些实施例中,第二获取模块320用于获取候选信息。在一些实施例中,候选信息可以包括用户信息。在一些实施例中,第二获取模块320可以从存储设备(如存储设备150或系统100外部的其他存储设备等)处获取用户信息。在一些实施例中,第二获取模块330可以从用户终端140处获取用户信息。
查询模块340用于执行查询操作。在一些实施例中,查询模块340可以将候选信息转换为结构化数据。在一些实施例中,查询模块340可以在候选信息上逐条执行每一条SQL条件表达式进行查询,或者也可以并行执行多条SQL条件表达式进行查询。在一些实施例中,查询模块340可以将SQL条件表达式分为至少一个组,然后执行每组SQL条件表达式进行查询。分组可以依照多种标准进行,例如,在所述信息处理系统300被用于向用户推荐商品的情况下,规则约束条件可以被分为反映用户固有特征的一组、反映用户可变特征的一组和反映商品特征的一组。
推荐模块350用于确定推荐方案。推荐模块350可以根据查询模块340的查询结果确定推荐方案。推荐方案可以有多种设计。以所述规则约束条件根据待推荐物的信息确定、所述候选信息为用户信息为例,推荐模块350可以根据所述查询结果确定有关将待推荐物推荐给用户的推荐方案。仅作为示例,有多个待推荐物,每个待推荐物具有相应的规则约束条件,针对一条用户信息,可在该条用户信息上执行各待推荐物的规则约束条件对应的SQL条件表达式,从而筛选出与该条用户信息匹配的待推荐物。在一些实施例中,一条用户信息可能与超过一种待推荐物匹配,则可以将这些待推荐物都推荐给该用户。在一些实施例中,推荐模块350可以将待推荐商品的信息发送至目标用户的终端设备(如用户终端140)。
应当理解,图3所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本申请的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于信息处理系统300及其模块的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,图3中披露的数据第一获取模块310、SQL转换模块320、第二获取模块330、查询模块340、推荐模块350可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。又例如,在一些实施例中,推荐模块350可以省略。再例如,信息处理系统300还可以包括通信模块,用来与其他部件通信,例如待推荐商品发送至用户终端140。信息处理系统300中各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本申请的保护范围之内。
图4是根据本说明书一些实施例所示的推荐方法的示例性流程图。该流程400描述了向用户推荐商品的场景。在一些实施例中,图4中所示的流程400可以在图1中所示的信息处理系统100中实现。例如,流程400的至少一部分可以作为指令的形式存储在存储设备150中,并且由服务器110调用和/或执行。需要说明的是,在流程400的步骤410之前,类似于图2中所示的步骤210和220,可以获取至少一个规则约束条件,并将规则约束条件转换为至少一个SQL条件表达式,此处为了避免重复,不再赘述。
步骤410,将所述至少一个SQL条件表达式分为至少一组。在一些实施例中,可以根据SQL条件表达式限制的特征的性质进行分组。例如,可以分为反映用户特征的一组和反映商品特征的一组,如将用户性别、年龄、籍贯、教育程度这些特征分为第一组,将商品名称、品牌、型号、价格这些特征分为第二组。更进一步,还可以将反映用户特征的一组分为反映用户固有特征的一组和反映用户当前特征的一组。在一些实施例中,可以按照顺序对SQL条件表达式分组。例如,可以对获取到的规则约束条件排序(如根据获取的先后进行排序),相应地,转换后的SQL条件表达式也具有一定顺序,依据该顺序可进行分组,例如,按照从小到大的顺序每5条SQL条件表达式为一组。需要注意的是,以上分组方法仅作为示例,并不用于限制本申请,本申请中也可以采用其他各种分组方法。
步骤420,在所述用户信息上执行每组SQL条件表达式,得到每组的匹配结果。执行各组SQL条件表达式的顺序可以是随机的,也可以预先确定。例如,有如下两组SQL条件表达式:反映用户特征的一组和反映商品特征的一组,可以随机执行这两组,也可以先执行反映商品特征的一组,再执行反映用户特征的一组。在一些实施例中,可以先将用户信息转换为结构化数据,再在结构化数据上执行各组SQL表达式。有关结构化数据转换的更多内容可以参见图5及其描述,此处不再赘述。
步骤430,综合每组的匹配结果,确定推荐方案。在一些实施例中,各组的匹配结果可以是布尔类型的结果,即true(真)或false(假),汇总各组的布尔类型结果,可以得到最终的匹配结果。例如,第一组SQL条件表达式限制用户固有特征(如性别、职业、教育程度等),执行该组SQL条件表达式之后,可以确定用户信息是否满足第一组SQL条件表达式对应的约束条件,如果用户信息满足第一组SQL条件表达式对应的所有约束条件,则对该条用户信息执行第一组SQL条件表达式后得到的布尔类型结果为true,如果不满足,则布尔类型结果为false;第二组SQL条件表达式限制用户当前特征(如当前城市、当前支付方式等),执行该组SQL条件表达式后,可以确定用户信息是否满足第二组SQL条件表达式对应的约束条件,如果某条用户信息满足第二组SQL条件表达式对应的所有约束条件,则对该条用户信息执行第二组SQL条件表达式后得到的布尔类型结果为true,如不满足则为false;第三组SQL条件表达式限制用户对商品的要求(如希望购买的商品类型、价格区间等),执行该组SQL条件表达式后,可以确定用户信息是否满足第三组SQL条件表达式对应的约束条件,如果某条用户信息满足第三组SQL条件表达式对应的所有约束条件,则对该条用户信息执行第三组SQL条件表达式后得到的布尔类型结果为true,如不满足则为false。在执行完某待推荐物相应的所有组的SQL条件表达式后,将每组执行后的布尔类型结果进行汇总,如果用户信息执行某待推荐物相应的所有组SQL条件表达式后得到的布尔类型结果均为true,表明该条用户信息满足该待推荐物相应的所有约束条件,则将该待推荐物推荐给该用户。
推荐方案可以有多种设计,例如可以有多种待推荐物,每种待推荐物具有相应的规则约束条件,通过上述方式可以从这些待推荐物中选出与用户信息匹配的待推荐物,推荐给用户。
应当注意的是,上述有关流程400的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程400进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。
图5为根据本说明书一些实施例所示的推荐方法的示例性流程图。该流程500也描述了向用户推荐商品的场景。在一些实施例中,图5中所示的流程500可以在图1中所示的信息处理系统100中实现。例如,流程500的至少一部分可以作为指令的形式存储在存储设备150中,并且由服务器110调用和/或执行。
步骤510,获取至少一个规则约束条件。所述规则约束条件与一种商品对应。本步骤与图2中的步骤210类似,此处不再赘述。
步骤520,将所述至少一个规则约束条件转换为至少一个结构化查询语言的条件表达式。本步骤与图2中的步骤220类似,此处不再赘述。
步骤530,将所述至少一个SQL的条件表达式分为反映用户固有特征的一组、反映用户可变特征的一组和反映商品特征的一组。需要说明的是,上述分组是针对各商品进行的,即每种商品的SQL条件表达式都会被分为以上三组。在一些实施例中,反应用户固有特征的一组可以包括限定用户的性别、年龄、籍贯、教育程度、历史购物评价、信用等级、历史消费记录等的SQL条件表达式;反映用户可变特征的一组可以包括限定用户的当前城市、当前支付方式等的SQL条件表达式。在一些实施例中,反应商品特征的一组可以包括限定商品的名称、品牌、型号、价格、使用期间、接收到的历史评价、可接受支付方式等的SQL条件表达式。在一些实施例中,反应用户特征的和反应商品特征的SQL条件表达式可能是可以较为明显区分的,也有可能是两种类别都适用的,对于这样的特征可以在规则约束条件中进一步进行限定,避免出现误分类的情况。
步骤540,获取用户信息。步骤540与图2中的步骤230类似,此处不再赘述。
步骤550,将所述用户信息转换为结构化数据。在一些实施例中,结构化数据可以是一种二维表格结构的数据,其中每一行可以表示用户的特征,具体地,表格的第一行可以是特征项(如特征名称),第二行可以为各特征项的具体值。在一些实施例中,对于同一个系统,结构化数据的行与列是一致的,避免出现一些数据的行表示特征,但是另外一些数据的行表示具体值的情况。仅作为示例,可以将用户信息转化为结构化数据,得到数据表的第一行表示用户的特征项,例如用户ID、性别、年龄、籍贯、教育程度、当前城市等,第二行表示一个用户对应第一行特征项的具体值,如性别为男、年龄为26岁、籍贯为上海、教育程度为本科、当前城市不在北京等。为了方便描述和理解,表1给出了上述将用户信息转换成的结构化数据的示例。
表1经结构化转换后的用户信息
用户ID |
性别 |
年龄 |
籍贯 |
教育程度 |
当前城市 |
0001 |
男 |
26 |
杭州 |
本科 |
北京 |
步骤560,在所述结构化数据上执行各组SQL条件表达式,确定各组的匹配结果。具体地,在结构化数据上执行反映用户固有特征的一组SQL条件表达式,得到第一组匹配结果,所述第一组匹配结果反映用户的固有特征是否满足约束条件;在结构化数据上执行反映用户可变特征的一组SQL条件表达式,得到第二组匹配结果,所述第二组匹配结果反映用户的可变特征是否满足约束条件;在结构化数据上执行反映商品特征的一组SQL条件表达式,得到第三组匹配结果,所述第三组匹配结果反映用户对商品的要求是否满足约束条件。
步骤570,综合各组匹配结果,确定最终的匹配结果。在一些实施例中,执行各组SQL条件表达式,可以得到多组为布尔类型的结果,汇总各组的布尔类型结果,如果用户信息满足所有的约束条件,则确定所述商品与所述用户匹配。需要说明的是,具体执行过程及得到布尔类型的结果在步骤430中有所说明,此处为了避免重复,不再赘述。
步骤580,根据最终匹配结果向所述用户推荐商品。在一些实施例中,如果用户信息满足商品的所有规则约束条件,则可以将商品信息发送至用户的终端设备(如用户终端140)。在一些实施例中,商品的信息被制作成广告形式发送至用户终端140。在一些实施例中,还可以收集用户对推荐商品的响应行为数据,如是否购买的数据,对该数据分析后可进一步用于确定后续推荐方案。
需要说明的是,以上流程500仅确定一种商品是否与用户匹配,在一些实施例中,可针对多种商品执行步骤510至530、步骤560至580,从而在多种商品中选出与用户匹配的商品,推荐给用户。
为了方便说明以上过程,现以向用户推荐金融产品为例进行说明。平台方现有大量金融产品,类型涉及活期储蓄、定期储蓄、基金等,平台方希望向用户推荐其可能感兴趣的产品。不同的产品具有不同的目标用户。仅作为示例,某基金类产品的目标用户为账户余额不低于3万元、有意向购买基金类产品的女性用户。在一些方法中,平台方可以自己定义规则格式,按照自定义规则格式编译上述对用户的限制条件,在后续执行查询操作时需要对被编译成自定义规则格式的限制条件进行解析,由于自定义规则格式不具备通用型,因此会带来理解和解析成本的上升。而采用本说明其中一些实施例描述的方案,则可以对用户的限制条件转换为SQL条件表达式,例如,上述限制条件转换为SQL条件表达式可以为:(1)Select*FROM Users WHERE balance>=30000;(2)Select*FROM Users WHEREpurchasing intentionlike“%基金%”;(3)Select*FROM Users WHERE gender=女;其中(1)反映用户的可变特征,(2)反映用户对商品的要求(商品特征),(3)反映用户的固有特征。在经过结构化转换的用户信息上执行(1)至(3)后,得到匹配结果,如果用户信息与所述基金产品匹配,则将该基金产品的推荐给用户。类似地,可以判断其他产品是否与用户信息匹配,如果匹配,则将相应产品推荐给用户。
应当注意的是,上述有关流程500的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本说明书实施例的指导下可以对流程500进行各种修正和改变。然而,这些修正和改变仍在本说明书实施例的范围之内。例如,在一些实施例中,步骤510和步骤540可以同时执行;或者,步骤550可以与步骤530同时执行;或者,步骤560与步骤570也可以同时执行。
本说明书实施例可能带来的有益效果包括但不限于:(1)采用SQL条件表达式描述规则,可以在很大程度上降低沟通和理解的成本;(2)将用户信息及商品信息转换为结构化数据,应用于SQL条件表达式,实现简单,后续维护和扩展成本较低;(3)使用场景广泛,能够应对绝大部分业务数据的过滤。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。