发明内容
本发明实施例提供一种基于布隆过滤算法的显示方法、装置及存储介质,通过布隆过滤算法的特性能够存储大量的预存号码,进而实现在识别、显示骚扰电话的同时避免手机终端持有者的隐私泄露。
本发明实施例的第一方面,提供一种基于布隆过滤算法的显示方法,包括:
预先设置多个号码标记类别,其中每个号码标记类别预先对应存储至少一个预存号码;
将所有预存号码基于布隆过滤算法的结构进行存储;
若判断呼入号码为陌生号码,则基于布隆过滤算法将所述陌生号码与存储的预存号码比对;
若存在与所述陌生号码相同的预存号码,则对所述预存号码对应的号码标记类别进行显示。
可选地,在第一方面的一种可能实现方式中,所述基于布隆过滤算法将所述陌生号码与存储的预存号码比对,包括:
将陌生号码分别与不同号码标记类别的预存号码进行合并查询,当出现命中时,则证明陌生号码属于其中一个类别;
对所述预存号码对应的号码标记类别进行显示。
可选地,在第一方面的一种可能实现方式中,还包括:
间隔预设时间接收云端的更新数据,所述更新数据包括至少一个预存号码;
将所述预存号码存储于对应的号码标记类别。
可选地,在第一方面的一种可能实现方式中,还包括:
若不存在与所述陌生号码相同的预存号码,则将所述预存号码发送至云端进行二次识别;
获取云端的二次识别结果,对所述二次识别结果进行显示。
可选地,在第一方面的一种可能实现方式中,还包括:
若不存在与所述陌生号码相同的预存号码,控制移动终端与云端建立网络连接;
在接收到所述识别结果后,断开移动终端与云端的网络。
本发明实施例的第二方面,提供一种基于布隆过滤算法的显示装置,包括:
设置模块,用于预先设置多个号码标记类别,其中每个号码标记类别预先对应存储至少一个预存号码;
存储模块,用于将所有预存号码基于布隆过滤算法的结构进行存储;
比对模块,用于若判断呼入号码为陌生号码,则基于布隆过滤算法将所述陌生号码与存储的预存号码比对;
显示模块,用于若存在与所述陌生号码相同的预存号码,则对所述预存号码对应的号码标记类别进行显示。
可选地,在第二方面的一种可能实现方式中,所述比对模块还用于执行以下步骤,包括:
将陌生号码分别与不同号码标记类别的预存号码进行合并查询,当出现命中时,则证明陌生号码属于其中一个类别;
对所述预存号码对应的号码标记类别进行显示。
可选地,在第二方面的一种可能实现方式中,还包括:
发送模块,用于若不存在与所述陌生号码相同的预存号码,则将所述预存号码发送至云端进行二次识别;
显示模块,用于获取云端的二次识别结果,对所述二次识别结果进行显示。
可选地,在第二方面的一种可能实现方式中,还包括:
网络建立模块,用于若不存在与所述陌生号码相同的预存号码,控制移动终端与云端建立网络连接;
网络断开模块,用于在接收到所述识别结果后,断开移动终端与云端的网络。
本发明实施例的第三方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现本发明第一方面及第一方面各种可能设计的所述方法。
本发明提供的一种基于布隆过滤算法的显示方法、装置及存储介质,能够实现离线的号码识别,即移动终端处于离线状态,通过基于布隆过滤算法与预存储的预存号码进行比对,并且布隆过滤算法的特性即能够在移动终端存储较多的运存号码,使得移动终端处能够存储大量的数据。通过离线号码识别能够实现至少以下优点:
1、移动终端不再将呼入的号码发送至云端,云端则无法获取该移动终端的通讯信息,使得移动终端的持有者的隐私能够得到保护;
2、移动终端实现本地的识别,使得移动终端不会与云端建立网络连接,节省了移动终端的通讯费用以及网络链路的占用率。
并且,本发明还提供了一种补充的方案,即当移动终端处于本地离线状态无法对陌生号码进行有效识别时,此时建立移动终端与云端的连接,通过云端对陌生号码进行二次识别,移动终端对云端的二次识别结果进行显示。通过以上方式,在保障陌生号码能够被有效识别的前提下,最大限度的保护了移动终端使用者的通讯隐私。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
首先,对布隆过滤器算法进行说明、介绍: (英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法。
其中,布隆过滤器算法的原理如图1所示。数据经过多次hash1计算后对应位置的值都是1,则表示数据在本地库中存在,数据查询时只要有一个位置的值为0则表示数据不再本地库中。
本发明提供一种基于布隆过滤算法的显示方法,本发明的显示方法,适用于移动终端侧,如图2和图3所示其流程图,包括:
步骤S110、预先设置多个号码标记类别,其中每个号码标记类别预先对应存储至少一个预存号码。号码标记的分类一般很有限,可分为疑似诈骗、广告推销、快递外卖、骚扰电话、房产中介等五类,分别是1-5表示。
步骤S120、将所有预存号码基于布隆过滤算法的结构进行存储。构造本地库,将预存号码与其号码标记类别合在一起通过Bloom Filter算法后存储在本地库中。本发明实施例中的本地库是移动终端。
步骤S130、若判断呼入号码为陌生号码,则基于布隆过滤算法将所述陌生号码与存储的预存号码比对。一般来说,每个移动终端都会有各自的通讯录,通讯录存的号码为已知号码。在步骤S130中,对呼入号码进行判断,如果呼入号码与通讯录内的已知号码相同,则判断呼入号码为已知号码,如果呼入号码与通讯录内的已知号码都不相同,则判断其为陌生号码,此时基于布隆过滤算法对所述陌生号码与存储的预存号码比对,判断该陌生号码是不是骚扰电话、特定电话等等。
步骤S140、若存在与所述陌生号码相同的预存号码,则对所述预存号码对应的号码标记类别进行显示。在判断陌生号码相对应的预存号码的号码标记类别后,对该号码标记类别进行显示,以此达到移动终端对模型号码识别、显示的目的。
在一个实施例中,在步骤S130中,还包括:
将陌生号码分别与不同号码标记类别的预存号码进行合并查询,当出现命中时,则证明陌生号码属于其中一个类别。如图4所示,查询时将需要查询的陌生号码与5个号码标记类别分别合在一起查询,只要命中就说明该号码为此类别,以上的方式,在分别对每个号码标记类别都进行查询之后,最多的查询次数为5次,使得本申请提供的陌生号码识别方法查询速度较快。对所述预存号码对应的号码标记类别进行显示。
在一个实施例中,还包括:间隔预设时间接收云端的更新数据,所述更新数据包括至少一个预存号码;将所述预存号码存储于对应的号码标记类别。通过间隔预设时间对预存号码进行更新,因为疑似诈骗、广告推销、快递外卖、骚扰电话、房产中介等号码都会实时的更新,所以为了保障移动终端能够更好的识别,所以定期、间隔预设时间就会对移动终端处的预存号码进行更新。
在一个实施例中,还包括:
若不存在与所述陌生号码相同的预存号码,则将所述预存号码发送至云端进行二次识别;
获取云端的二次识别结果,对所述二次识别结果进行显示。
在上述的步骤,用于对来电的陌生号码进行二次识别,即当移动终端无法对陌生号码进行准确的识别时,将陌生号码发送至云端,通过云端对陌生号码进行二次的识别,判断陌生号码是否属于疑似诈骗、广告推销、快递外卖、骚扰电话、房产中介等,并得到二次识别结果,其中二次识别结果可以是陌生号码属于疑似诈骗、广告推销、快递外卖、骚扰电话、房产中介中的任意一个,此时移动终端显示的二次识别结果为陌生号码是相应的种类。二次识别结果也可以是该陌生号码不属于疑似诈骗、广告推销、快递外卖、骚扰电话以及房产中介,此时移动终端只显示陌生号码的号码。通过以上步骤、方式实现了对陌生号码的二次识别,通过本地离线识别以及云端在线识别最大化的保障了对陌生号码的识别,并且有效的减少了移动终端与云端的交互次数,在尽可能的保障对陌生号码有效识别的前提下,一定程度的保障了用户的隐私以及降低了移动终端与云端的连接次数。
在一个实施例中,还包括:
若不存在与所述陌生号码相同的预存号码,控制移动终端与云端建立网络连接;
在接收到所述识别结果后,断开移动终端与云端的网络。
通过以上的步骤,能够根据移动终端对陌生号码的识别结果判断移动终端是否连接云端,并且在获得到识别结果后断开与云端的连接,以此实现最大化的降低移动终端与云端的连接频率、时间,保障移动终端的隐私以及减少通讯链路的占用。
其中,云端具有对移动终端的识别模型,识别模型通过以下步骤进行训练、识别,包括:
获取云端的二次识别结果,对二次识别结果进行识别,判断二次识别结果的分类,其中分类可以是疑似诈骗、广告推销、快递外卖、骚扰电话、房产中介中的任意一个。
在云端对号码进行存储时,可以根据预先的分类将各个号码分别存储于疑似诈骗、广告推销、快递外卖、骚扰电话以及房产中介中的任意一个存储单元、存储介质项下。
当接收到移动终端的二次识别的请求时对移动终端的ID、请求次数、该次请求的二次识别结果进行记录;
将移动终端的ID、多个请求次数以及每个请求对应的二次识别结果作为训练样本训练识别模型,该识别模型生成与移动终端的ID对应的识别标签,识别标签可以是疑似诈骗、广告推销、快递外卖、骚扰电话、房产中介中的任意一个。
当云端接收到任意一个移动终端的请求时,获取移动终端的ID对应的识别标签,根据识别标签选择优先遍历相应的存储单元下的号码,例如说移动终端的ID的识别标签为广告推销,则此时与广告推销对应的存储单元为广告推销存储单元,证明该移动终端的ID的持有者接收到广告推销的频率较高,所以优先在广告推销对应的存储单元处进行识别,以此降低命中的时间。
并且,在每次得到具体的二次识别结果后,对识别模型进行更新,例如说,前一个月接收到的广告推销电话较多,其前一个月的识别标签为广告推销,后一个月接收到的骚扰电话,则模型基于多次二次识别结果,将识别标签修改为骚扰电话,以此保证实时更新识别标签。
并且,本发明提供的识别模型,能够统计二次识别结果中各个类型的次数,例如说疑似诈骗、广告推销、快递外卖、骚扰电话、房产中介中各个识别结果的次数,根据次数来确定遍历相应的存储单元的顺序,其具体实施方式如下:
识别模型对移动终端的二次识别结果进行记录,当获得一次二次识别结果后,对所有类型的识别次数进行统计;
识别次数对所有类型进行排序得到存储单元的排序结果;
按照存储单元的排序结果对陌生号码进行遍历对比。
通过以上的方式,实现存储单元根据相应的场景进行依次遍历,例如说一个人可能是老板,接广告推销电话最多、房产中介电话第二多,云端在对陌生号码进行搜索、遍历时,优先对广告推销存储单元下的预存号码进行遍历对比,然后对房产中介存储单元下的预存号码进行遍历对比,保障了本发明在云端处理的过程中,能够快速得到二次识别结果。
本发明还提供一种基于布隆过滤算法的显示装置,如图5所示,包括:
设置模块,用于预先设置多个号码标记类别,其中每个号码标记类别预先对应存储至少一个预存号码;
存储模块,用于将所有预存号码基于布隆过滤算法的结构进行存储;
比对模块,用于若判断呼入号码为陌生号码,则基于布隆过滤算法将所述陌生号码与存储的预存号码比对;
显示模块,用于若存在与所述陌生号码相同的预存号码,则对所述预存号码对应的号码标记类别进行显示。
在一个实施例中,所述比对模块还用于执行以下步骤,包括:
将陌生号码分别与不同号码标记类别的预存号码进行合并查询,当出现命中时,则证明陌生号码属于其中一个类别;
对所述预存号码对应的号码标记类别进行显示。
在一个实施例中,还包括:
发送模块,用于若不存在与所述陌生号码相同的预存号码,则将所述预存号码发送至云端进行二次识别;
显示模块,用于获取云端的二次识别结果,对所述二次识别结果进行显示。
在一个实施例中,还包括:
网络建立模块,用于若不存在与所述陌生号码相同的预存号码,控制移动终端与云端建立网络连接;
网络断开模块,用于在接收到所述识别结果后,断开移动终端与云端的网络。
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。