一种字符串的识别方法及系统与流程

未命名 09-13 阅读:73 评论:0


1.本技术涉及终端技术领域,尤其涉及一种字符串的识别方法及系统。


背景技术:

2.为了更准确的给用户提供服务,在手机、平板等电子设备中,电子设备可在合适的场景以卡片或者胶囊的形式向用户推荐相匹配的服务。示例性的,一种典型的服务推荐场景为:当电子设备检测复制或者扫描快递单号的操作时,则推荐快递单号查询服务。在该场景下,快递单号的识别是实现服务推荐的关键步骤。
3.然而,由于快递单号通常完全由英文字母和数字组成,而字母和数字传递的语义信息有限,这为快递单号的识别增加了难度。从而会增加相应的服务推荐的准确性。当然,航班号、订单号、流水号等仅有字母和数字组成的字符串的识别及其相应的服务推荐也具有类似的问题。


技术实现要素:

4.有鉴于此,本技术提供了一种字符串的识别方法及系统,可以准确识别快递单号、航班号或者订单号等仅由字母和数字构成的字符串,从而提高服务推荐的准确性。
5.第一方面,本技术实施例提供一种字符串的识别方法,可以应用于具有较强运算能力的第一设备,如云端、服务器等。第一设备中包括收集到的多个预设类型的字符串。预设类型的字符串可以是快递单号、航班号、车次、订单号或者流水号等由数字和字母组成的字符串。方法具体包括:计算多个预设类型的字符串中每一位的权重,得到i位对应的i个权重,i为多个预设类型的字符串的最大长度,3≤i,i为整数。其中,第i位的权重ri的计算过程包括:统计多个预设类型的字符串中第i位出现的多个字符中每个字符出现的第一概率,得到多个字符对应的多个第一概率,1≤i≤i,i为整数。通常情况下,越重要的位,出现的字符是越固定的,字符变化的随机性是较小的。而多个第一概率可以一定程度上反应第i位中字符的随机变化程度。因此,基于多个第一概率计算ri,从而确定出第i位的重要性。然后,向第二设备发送i个权重,i个权重用于第二设备识别预设类型的字符串。
6.综上所述,采用本技术实施例,第一设备可以确定预设类型的字符串中各位的权重,从而明确指示各位的重要性。然后,将该权重发送给第二设备,供第二设备识别预设类型的字符串,则可以在识别过程中考虑各位的重要性,提高识别结果的合理性。
7.在一种可能的设计方式中,基于多个第一概率计算ri,包括:采用下述公式计算第i位的信息熵h(i):
[0008][0009]
其中,j为第i位出现过的第j个字符,j为第i位出现过的字符的数量,pj为第i位中第j个字符的第一概率。计算出的信息熵可以反映字符随机变化的程度。信息熵越高,随机变化的程度越高,即变化越随机,对识别预设类型的字符串的价值越低。信息熵越低,随机
变化的程度越低,即变化越稳定,对识别预设类型的字符串的价值越高。然后,基于信息熵确定ri,信息熵越大,ri越小,信息熵越小,ri越大。从而可以使设置的权重与价值成正相关关系。
[0010]
第二方面,本技术实施例还提供一种字符串的识别方法,应用于手机、平板等具有识别预设类型的字符串的需求的第二设备。获取待识别的第一字符串,第一字符串由字母和/或数字组成。基于第一字符串包括的多个第一子字符串和预设类型的字符串中每一位的权重,识别第一字符串是否为预设类型的字符串。其中,预设类型的字符串中第i位的权重ri基于多个预设类型的字符串中第i位出现过的多个字符对应的多个第一概率计算得到。
[0011]
综上所述,采用本技术实施例,依据组成该第一字符串的子字符串(即多个第一子字符串)和预设类型的字符串每一位的重要性来识别第一字符串,而不仅仅是依据子字符串来识别,从而可以提升识别的合理性。
[0012]
第三方面,本技术实施例还提供一种字符串的识别方法,可以应用于具有较强运算能力的第一设备,如云端、服务器等。第一设备中包括收集到的多个预设类型的字符串。预设类型的字符串可以是快递单号、航班号、车次、订单号或者流水号等由数字和字母组成的字符串。方法包括:计算多个预设类型的字符串每一位的权重,得到i位对应的i个权重,i为预设类型的字符串的最大长度,3≤i,i为整数。划分多个预设类型的字符串,得到多个第二子字符串。基于i个权重以及多个第二子字符串在多个预设类型的字符串中出现的次数和位置,计算多个第二子字符串中每个第二子字符串的条件概率,得到与多个第二子字符串一一对应的多个条件概率,条件概率表示在出现对应的第二子字符串中的第一个字符至第n-1个字符的条件下、接着出现第二子字符串中的第n个字符的概率,n为第二子字符串的长度,n≥3,且n为整数。向第二设备发送多个第二子字符串及其条件概率,多个第二子字符串及其条件概率用于第二设备识别预设类型的字符串。
[0013]
综上所述,采用本技术实施例,将权重融入条件概率的计算,使得条件概率可以考虑到子字符串在预设类型的字符串中的位置,对于位于重要位置的子字符串可以计算得到更高的条件概率。那么,条件概率越大,表示子字符串越重要。然后,将条件概率用于预设类型的字符串的识别,可以提高识别结果的合理性。
[0014]
在一种可能的设计方式中,多个第二子字符串的长度均为n。在划分多个预设类型的字符串,得到多个第二子字符串之前,上述方法还包括:在多个预设类型的字符串中每个字符串的左侧填充n-1个预设字符,得到与多个预设类型的字符串一一对应的多个填充后的字符串。相应的,划分多个预设类型的字符串,得到多个第二子字符串,包括:划分多个填充后的字符串,得到多个第二子字符串。
[0015]
也就是说,采用本实施例,在填充预设字符后,可以划分得到以预设类型的字符串的第一位结尾的子字符串和以预设类型的字符串的第二位结尾的子字符串。从而解决边界无法覆盖的问题。
[0016]
在一种可能的设计方式中,第一设备中还包括多个预设类型的字符串分别归属的公司的标识信息。在得到多个第二子字符串之后,上述方法还包括:基于多个预设类型的字符串分别对应的标识信息,统计第三子字符串所在的至少一个字符串归属的至少一个第一公司,得到第三子字符串所属的至少一个第一公司。以及,统计第三子字符串分别归属于每
个第一公司的第二概率,得到对应至少一个第一公司的至少一个第二概率,第三子字符串是多个第二子字符串中的任一个。如此,可以进一步得到各个子字符串归属的公司以及归属于各个公司的概率,便于后续识别字符串所属的公司。向第二设备发送多个第二子字符串分别所属的至少一个第一公司的标识信息及其对应的至少一个第二概率。
[0017]
第四方面,本技术实施例还提供一种字符串的识别方法,应用于手机、平板等具有识别预设类型的字符串的需求的第二设备。方法包括:获取待识别的第一字符串,第一字符串由字母和/或数字组成。基于第一字符串包括的多个第一子字符串,预设类型的字符串中出现过的多个第二子字符串,以及多个第二子字符串一一对应的多个条件概率,识别第一字符串是否为预设类型的字符串,条件概率表示在出现对应的第二子字符串中的第一个字符至第n-1个字符的条件下、接着出现第二子字符串中的第n个字符的概率,n为第二子字符串的长度,n≥3,且n为整数。其中,条件概率基于预设类型的字符串中每一位的权重生成,权重用于指示预设类型的字符串中相应位的字符对识别预设类型的字符串的重要性。
[0018]
综上所述,采用本技术实施例,可以将融入权重的条件概率用于预设类型的字符串的识别,可以提高识别结果的合理性。
[0019]
在一种可能的设计方式中,在获取待识别的第一字符串之后,上述方法还包括:在第一字符串的左侧填充n-1个预设字符,得到填充后的第一字符串。划分填充后的第一字符串,得到多个第一子字符串。从而可以解决边界无法覆盖的问题。
[0020]
在一种可能的设计方式中,上述基于第一字符串包括的多个第一子字符串,预设类型的字符串中出现过的多个第二子字符串,以及多个第二子字符串一一对应的多个条件概率,识别第一字符串是否为预设类型的字符串,包括:匹配多个第一子字符串和多个第二子字符串,得到与多个第一子字符串一一匹配的多个第四子字符串,每个第四子字符串是多个第二子字符串中的一个。计算多个第四子字符串对应的多个条件概率的第一乘积,基于第一乘积识别第一字符串是否为预设类型的字符串。其中,第一乘积越大,第一字符串是预设类型的字符串的可能性越大,第一乘积越小,第一字符串是预设类型的字符串的可能性越小。
[0021]
也就是说,采用本实施例,第一字符串包括的子字符串对应的条件概率的乘积越大,表示第一字符串包括的子字符串的重要性越高。如此,可以将包括重要性高的子字符串的字符串识别为预设类型的字符串,提高识别结果的合理性。
[0022]
在一种可能的设计方式中,第二设备中存储有与多个第二子字符串一一对应的多个第一系数和/或多个第二系数,每个第一系数用于指示用户查询对应的第二子字符串的频繁程度,每个第二系数用于指示对应的第二子字符串与生成预设类型的字符串的规则的匹配程度。在识别第一字符串是否为预设类型的字符串之后,上述方法还包括以下至少一个步骤:若识别出第一字符串是预设类型的字符串,且检测到用户在预设界面中查询第一字符串,则调大多个第四字符串一一对应的第一系数。若识别出第一字符串是预设类型的字符串,但未检测到用户在预设界面中查询第一字符串,则调小多个第四字符串一一对应的第一系数。若识别出第一字符串不是预设类型的字符串,但检测到用户在预设界面中查询第一字符串,则调大多个第四字符串一一对应的第二系数。以及,若识别出第一字符串不是预设类型的字符串,且未检测到用户在预设界面中查询第一字符串,则调小多个第四字符串一一对应的第二系数。其中,多个第二子字符串中包括多个第一子字符串,多个第四字
符串是多个第一子字符串,预设界面用于查询预设类型的字符串。
[0023]
也就是说,采用本实施例,为查询越频繁的子字符串设置越高的第一系数,从而可以个性化的调整各个子字符串的条件概率。以及,为与新规则匹配的子字符串分配更高的第二系数,从而可以使子字符串的条件概率适配新规则。
[0024]
在一种可能的设计方式中,上述方法还包括:获取待识别的第二字符串,第二字符串由字母和/或数字组成。基于第一字符串包括的多个第五子字符串,预设类型的字符串中出现过的多个第二子字符串,以及多个第二子字符串一一对应的多个条件概率和多个第一系数和/或多个第二系数,识别第二字符串是否为预设类型的字符串。
[0025]
也就是说,采用本实施例,将第一系数用于识别预设类型的字符串,可以使识别结果适配于用户的查询习惯,实现个性化识别。和/或,将第二系数用于识别预设类型的字符串,可以使识别结果适配于新规则,提高识别的泛化性,而不仅仅只是适用于老规则下生成的预设类型的字符串的识别。
[0026]
在一种可能的设计方式中,上述基于第一字符串包括的多个第五子字符串,预设类型的字符串中出现过的多个第二子字符串,以及多个第二子字符串一一对应的多个条件概率和多个第一系数和/或多个第二系数,识别第二字符串是否为预设类型的字符串,包括:匹配多个第五子字符串和多个第二子字符串,得到与多个第五子字符串一一匹配的多个第六子字符串,每个第六子字符串是多个第二子字符串中的一个。计算多个第六子字符串对应的多个条件概率和多个第一系数的第二乘积,基于第二乘积识别第二字符串是否为预设类型的字符串;或者,计算多个第六子字符串对应的多个条件概率和多个第二系数的第三乘积,基于第三乘积识别第二字符串是否为预设类型的字符串;或者,计算多个第六子字符串对应的多个条件概率、多个第一系数和多个第二系数的第四乘积,基于第四乘积识别第二字符串是否为预设类型的字符串;其中,第二乘积、第三乘积或者第四乘积越大,第二字符串是预设类型的字符串的可能性越大,第二乘积、第三乘积或者第四乘积越小,第二字符串是预设类型的字符串的可能性越小。
[0027]
第五方面,本技术实施例还提供了一种通信系统,该通信系统包括用于执行上述第一方面、第三方面及其任一种可能的设计方式的方法的第一设备,以及包括用于执行上述第二方面、第四方面及其任一种可能的设计方式的方法的第二设备。
[0028]
第六方面,本技术实施例还提供了一种计算机可读存储介质,包括第一计算机指令,当所述第一计算机指令在第一设备上运行时,使得所述第一设备执行如第一方面、第三方面及其任一种可能的设计方式的方法。
[0029]
第七方面,本技术实施例还提供了一种计算机可读存储介质,包括第二计算机指令,当所述第二计算机指令在第二设备上运行时,使得所述第一设备执行上述第二方面、第四方面及其任一种可能的设计方式的方法。
[0030]
可以理解地,上述提供的第五方面所述的通信系统,第六方面和第七方面所述的计算机存储介质所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
[0031]
图1为本技术实施例提供的一种识别快递单号的场景示意图;
[0032]
图2为本技术实施例提供的一种通信系统的示意图;
[0033]
图3为本技术实施例提供的一种确定权重的流程图;
[0034]
图4为本技术实施例提供的一种生成识别模型的流程图;
[0035]
图5为本技术实施例提供的一种划分n元组的原理示意图;
[0036]
图6为本技术实施例提供的另一种划分n元组的原理示意图;
[0037]
图7为本技术实施例提供的一种查快递的场景示意图;
[0038]
图8为本技术实施例提供的另一种查快递的场景示意图;
[0039]
图9为本技术实施例提供的一种识别快递单号的流程图;
[0040]
图10为本技术实施例提供的一种芯片系统的结构图。
具体实施方式
[0041]
本技术实施例提供一种字符串的识别方法,该方法可用于需要识别快递单号、航班号或者订单号等仅由字母和数字构成的字符串的场景(下文中可简称识别场景)中。示例性的,参见图1,手机在检测到用户对界面101中文本的长按操作后,可采用本技术实施例提供的方法识别文本中是否包括快递单号,若识别出快递单号,则可以显示界面102,界面102中包括“查快递”的快捷入口103。从而方便查询。
[0042]
常规技术中,在上述识别场景,可以通过字符串中的特定子字符串来实现识别。以快递单号的识别为例,则可以识别字符串中是否具有快递公司的名称缩写子字符串,如“jd”、“sf”、“yt”、“zt”、“yd”、“ems”等子字符串。若待识别字符串中包括上述子字符串,则识别为快递单号。若待识别字符串中不包括上述子字符串,则识别不是快递单号。但是,采用本实施例的识别方法,若待识别字符串为“23456sf178”,则也有可能识别为快递单号,而真正的快递单号中,“sf”应该位于字符串首、而不会位于字符串中间。也就是说,将字符串“23sf145678”识别为快递单号是不合理的。
[0043]
基于上述问题,本技术实施例提供了一种字符串的识别方法,同样可用于上述识别场景中。具体地,在上述识别场景中,可以基于待识别字符串包括的多个子字符串以及预设类型的字符串中每一位的权重识别待识别字符串是否为预设类型的字符串。其中,预设类型包括快递单号、航班号或者订单编号等仅有字母和数字组成的字符串类型。权重越大,则表示预设类型的字符串中该位的重要性较高。
[0044]
综上所述,采用本技术实施例的方法,需要在待识别字符串包括的多个子字符串的基础上,进一步考虑待识别字符串中每一位的重要程度,从而更准确的识别出预设类型的字符串。以预设类型是快递单号为例,从高位到低位(即从字符串的左到右)的重要程度越来越低,若待识别字符串为“23456sf178”,其中“s”和“f”分别位于第6位和第7位,重要程度较低,那么,即使该识别字符串中包括子字符串“sf”,也不会将其识别为快递单号。
[0045]
本技术实施例提供的字符串的识别方法可以由具有识别需求的第二设备执行;或者,第二设备可以将待识别字符串上传至服务器或者云端,由服务器或者云端执行后将识别结果反馈给第二设备。本技术实施例对此不作具体限定。实际中,在识别场景,通常需要快速识别出是否为预设类型的字符串,从而便于及时推送相应的服务。基于此,为了避免数据传输耗时,由第二设备自行识别,以提高识别效率。下文中,也将主要以第二设备自行识别为例来说明。
[0046]
本技术实施例还提供一种通信系统,参见图2,通信系统包括第一设备(如图2中的云端210)和第二设备(如图2中的手机220)。第一设备用于确定预设类型的字符串中每一位的权重。在一些实施例中,第一设备还可以基于权重构建识别模型。第一设备将权重或者识别模型发送给第二设备。第二设备用于识别待识别字符串是否为预设类型的字符串。
[0047]
示例性的,第二设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)\虚拟现实(virtual reality,vr)设备等存在上述识别场景的电子设备。第一设备可以是云端、服务器,或者另一部手机、平板电脑等具有较强的运算能力的电子设备。本技术实施例对第一设备和第二设备的具体形态不作特殊限制。下文中,主要以第一设备为图2所示的云端210,第二设备为图2所示的手机220为例来说明。
[0048]
下面先介绍云端确定预设类型的字符串中每一位的权重的过程:
[0049]
云端可以收集大量预设类型的字符串,通过对大量预设类型的字符串的统计分析,确定预设类型的字符串中每一位的权重。
[0050]
在一些实施例中,参见图3,确定预设类型的字符串中第i位的权重ri的过程包括:
[0051]
s301、统计大量预设类型的字符串中第i位中出现的多个字符,以及各个字符的出现概率(也可以称为第一概率)。
[0052]
以预设类型是快递单号为例,云端收集的快递单号如下表1所示:
[0053]
表1
[0054]
序号快递单号1sf11534311542182sf9600419468306375884971038257475898966489172543115727784152664326681888732377jt30075338191158yt6631835528627918535935749610621009263861118
[0055]
上述表1中共有10个快递单号,将该10个快递单号左端对齐,可以得到10个快递单号第1位(即最左边)出现的字符有“s”、“7”、“4”、“j”、“y”、“1”以及“8”。其中,“s”出现的次数为2,则“s”出现的概率为2/10=0.2;“7”出现的次数为2,则“7”出现的概率为2/10=0.2;“4”出现的次数为2,则“4”出现的概率为2/10=0.2;剩余“j”、“y”、“1”以及“8”出现的次数均为1,则“j”出现的概率为1/10=0.1,“y”出现的概率为1/10=0.1,“1”出现的概率为1/10=0.1,“8”出现的概率为1/10=0.1。以及,可以得到第2位出现的字符有“f”、“5”、3”、t”、“8”以及“2”。其中,“f”出现的次数为2,则“f”出现的概率为2/10=0.2;“5”出现的次数为2,则“5”出现的概率为2/10=0.2;“3”出现的次数为2,则“3”出现的概率为2/10=0.2;“t”出现的次数为2,则“t”出现的概率为2/10=0.2;剩余“8”以及“2”出现的次数均为1,则“8”出
现的概率为1/10=0.1,“2”出现的概率为1/10=0.1
……
以此类推,可以得到每一位中各个字符出现的概率。
[0056]
需要说明的是,上表1中快递单号的数量有限,因此计算出现的概率有大量相同的情况,实际中,使用大量的快递单号统计,得到的结果会更合理。
[0057]
在一些场景中,同样都是预设类型的字符串,但是不同字符串的长度也可能不同。示例性的,不同快递公司的快递单号的长度存在不同,不同航空公司的航班号的长度不同。仍以上表1为例,第8个(即序号为8)快递单号“yt6631835528627”有15位,而第9个(即序号为9)快递单号“185359357496”仅有12位。在这种场景中,字符串的长度不同,则会导致有些位中用于确定各个字符的概率的数据较多,而另一些位中用于确定各个字符的概率的数据较少,数据量不一致将造成两位中各个字符的概率不等价。
[0058]
基于此,进一步的,云端可以在针对每一位统计字符以及计算字符出现的概率之前,先将大量预设类型的字符串的位数补齐,使大量预设类型的字符串的位数补齐为相同的长度。示例性的,可补齐到预设类型的字符串的最大长度。以快递单号为例,经统计发现,市面上的快递单号的最大长度i为21位,则可以将收集到的大量快递单号中,少于21位的快递单号都补齐为21位。在一种具体的实现方式中,考虑到以固定字符补齐,会造成补齐的位上该固定字符的概率人为增大。因此,云端可以在候选的多个字符中随机选取字符补齐。例如,考虑到预设类型的字符串由字母和/或数字组成,则候选的多个字符可以为0-9以及a-z共36个字符,针对任一个需要补齐的预设类型的字符串,在补齐每一位时,都可以从上述36个字符中随机选择。在补齐后,每一位都有同样数量的样本来计算概率。从而有利于提高计算出的概率的合理性。
[0059]
示例性的,将上表1中的快递单号补齐为15位,可以得到如下表2所示补齐后的快递单号:
[0060]
表2
[0061]
序号补齐后的快递单号1sf11534311542182sf96004194683063a7588497103825744a758989664891727543115727784152664326681888732377jt30075338191158yt66318355286279a18535935749625810621009263861118
[0062]
也就是说,上表1中序号为3的快递单号“75884971038257”在补齐最后一位后,得到表2中序号为3a的快递单号“758849710382574”;上表1中序号为4的快递单号“75898966489172”在补齐最后一位后,得到表2中序号为4a的快递单号“758989664891727”;上表1中序号为9的快递单号“185359357496”在补齐最后三位后,得到表2中序号为9a的快递单号“185359357496258”。
[0063]
以上表2中补齐后的快递单号的最后一位为例,最后一位出现的字符有“8”、“6”、“4”、“7”以及“0”。其中,“8”出现的次数为3,则“8”出现的概率为3/10=0.3;“6”出现的次数为2,则“6”出现的概率为2/10=0.2;“4”出现的次数为1,则“4”出现的概率为1/10=0.1;“7”出现的次数为3,则“7”出现的概率为3/10=0.3;“0”出现的次数为1,则“0”出现的概率为1/10=0.1。
[0064]
但是,需要说明的是,补齐后的预设类型的字符串仅用于权重计算,如上表2中补齐后的快递单号仅用于权重计算。实际上预设类型的字符串仍为补齐前的字符串。
[0065]
s302、基于第i位中多个字符的出现概率计算第i位的信息熵,信息熵用于表示第i位的字符随机变化的程度。
[0066]
其中,信息熵越高,表示该位的字符随机变化的程度越高,即变化越随机,从而对识别预设类型的字符串的价值越低;信息熵越低,表示该位的字符随机变化的程度越低,即变化越稳定,从而对识别预设类型的字符串的价值越高。以快递单号为例,通常情况下,快递单号的前几位表示对应的快递公司,相对来说变化比较稳定,对快递单号的识别的价值较高,信息熵越低;而快递单号的后面几位一般会表示时间、累计运单量等信息,变化极为随机,对快递单号的识别的价值较低,信息熵则较高。
[0067]
在一种具体的实现方式,第i(i为正整数)位的信息熵h(i)可通过如下公式(1)计算得到:
[0068][0069]
其中,pj为第i位出现第j个字符的概率,j为第i位出现的字符的数量。仍以上表1为例,第1位出现的字符有“s”、“7”、“4”、“j”、“y”、“1”以及“8”共7个,即第1位出现的字符的数量j=7;第2位出现的字符有“f”、“5”、“3”、“t”、“8”以及“2”共6个,即第2位出现的不同字符的数量j=6。1≤j《j,j和j都为正整数。应注意,第i位出现的字符的数量是指不同字符的数量,例如,上表1所示的10个快递单号中,第1位中重复出现了两次“s”,但在仅视为第i位出现的1个字符。
[0070]
s303、基于第i位的信息熵确定第i位的权重。
[0071]
其中,信息熵越低,对识别预设类型的字符串的价值越高,则可以设置更高的权重;信息熵越高,对识别预设类型的字符串的价值越低,则可以设置更低的权重。也就是说,权重与信息熵成反相关关系。
[0072]
在一种具体的实现方式,第i位的权重ri可通过如下公式(2)确定得到:
[0073][0074]
其中,norm表示归一化处理,通过归一化处理,可以将ri转化成(0,1]的数据,从而便于后续运算。m可以为常量,如1,也可以为第i位出现的字符的数量,即m=j。其中,m=j,则表示信息熵越低、j越小,则ri越大。当然,在另一种具体的实现方式中,也可以省去归一化处理的过程,而直接将的结果作为ri。
[0075]
采用本实施例的方法,针对预设类型的字符串的第i位,云端依次通过统计第i位中多个字符分别出现的概率,基于多个字符分别出现的概率计算第i位的信息熵,最后基于
信息熵计算第i位的权重。从而可以针对识别预设类型的字符串的价值较高的某一位,设置较高的权重;而对识别预设类型的字符串的价值较低的某一位,设置较低的权重。
[0076]
当然,在实际实施,本技术实施例并不以上述确定权重的方式为限。在另一些实施例中,云端也可以通过对大量预设类型的字符串的分析,总结预设类型的字符串的组成规律,并为可以明显反应预设类型的字符串的特征的位设置较高的权重,以及为不能明显反应预设类型的字符串的特征的位设置较低的权重。仍以快递单号为例,快递单号中的一些位(如前两位)表示快递公司,一些位表示快递类型(如急送、普快等),这些特征很明显是快递单号所特有的,对识别快递单号具有较大的价值,则可以直接为这些位设置较高的权重。而另一些位可能用于表示累计运单的数量或者时间信息,很显然,数量、时间这些信息并不是快递单号所独有的,对识别快递单号的价值较低,则可以直接为这些位设置较低的权重。
[0077]
经过上述过程,云端可以确定预设类型的字符串各位的权重。以快递单号的最大长度i是21位为例,则可以得到快递单号的21位对应的21个权重r1-r21。
[0078]
云端在计算得到权重后,可以直接将权重发送给手机。在识别场景中,手机在获取到待识别字符串后,可以基于待识别字符串(也可以称为第一字符串)包括的多个子字符串(也可以称为多个第一子字符串)和多个权重识别待识别字符串是否为预设类型的字符串。
[0079]
示例性的,手机可以判断待识别字符串的多个子字符串中是否包括预设子字符串(如“sf”、“jd”等)。若未提取到预设子字符串,则可以直接确定待识别字符串不是预设类型的字符串。若提取到预设子字符串,可以基于预设子字符串在待识别字符串中的位置以及相应位置的权重确定待识别字符串为预设类型的字符串的分数。然后基于该分数和预设的分数阈值确定待识别字符串是否为预设字符串。
[0080]
以预设子字符串包括“sf”,快递单号第6位和第7位的权重分别为0.075和0.05,分数阈值为0.5,待识别字符串为“23456sf178”为例,从“23456sf178”中可以提取出预设子字符串“sf”,分别位于待识别字符串的第6位和第7位,则可以将第6位和第7位的权重相加,得到“23456sf178”为快递单号的分数为0.075+0.05=0.125。很显然,0.125小于0.5,则确定“23456sf178”不是快递单号。
[0081]
当然,为了进一步提升识别预设类型的字符串的智能化程度,云端在计算得到权重后,也可以基于权重生成预设类型的字符串的识别模型并发送给手机。在识别场景中,手机在获取到待识别字符串后,可以使用识别模型完成对待识别字符串的打分,确定待识别字符串是否为预设类型的字符串。其中,识别模型为n元组(n-gram)语言模型,n可以为3,4,5
……
。下文主要以n=3为例来说明。本技术实施例中,将主要说明采用识别模型完成对预设类型的字符串的识别的具体实现。
[0082]
参见图4,生成识别模型的过程包括:
[0083]
s401、将大量预设类型的字符串划分为大量n-gram(也可以称为多个第二子字符串),每个n-gram均是构成大量预设类型的字符串的一个子字符串。
[0084]
参见图5,以n=3,预设类型的字符串是快递单号“sf1153431154218”为例,云端从“sf1153431154218”的最左边开始,通过向右滑动窗口(如图3中虚线矩形所示),可以依次截取到3-gram“sf1”,“f11”,“115
”……“
218”。
[0085]
进一步的,为了解决边界问题,在一些实施例中,云端可以将预设类型的字符串左侧填充n-1个预设特殊字符,得到填充后的字符串。预设特殊字符通常为在预设类型的字符
串中不会出现的字符,例如,预设特殊字符为《s》。在填充后,云端再划分得到大量的n-gram。参见图6,仍以n=3,预设类型的字符串是快递单号“sf1153431154218”为例,云端在“sf1153431154218”的左侧填充n-1个,即2个预设字符《s》,得到字符串“《s》《s》sf1153431154218”。然后,云端从“《s》《s》sf1153431154218”的最左边开始,通过向右滑动窗口(如图4中虚线矩形所示,窗口长度为,即3),可以依次截取到3-gram“《s》《s》s”,“《s》sf”,“sf1”,“f11”,“115
”……“
218”。
[0086]
示例性的,对应上述表1中的快递单号,云端先在快递单号左侧添加2个预设字符《s》,然后可以划分得到如下表3所示的3-gram:
[0087]
表3
[0088]
序号3-gram1《s》《s》s,《s》sf,sf1,f11,115,153,534,343,431,311,115,154,542,421,2182《s》《s》s,《s》sf,sf9,f96,960,600,004,041,419,194,946,468,683,830,3063《s》《s》7,《s》75,758,588,884,849,497,971,710,103,038,382,825,2574《s》《s》7,《s》75,758,589,898,989,896,966,664,648,489,891,917,1725《s》《s》4,《s》43,431,311,115,157,572,727,277,778,784,841,415,152,5266《s》《s》4,《s》43,432,326,266,668,681,818,188,888,887,873,732,323,2377《s》《s》j,《s》jt,jt3,t30,300,007,075,753,533,338,381,819,191,911,1158《s》《s》y,《s》yt,yt6,t66,663,631,318,183,835,355,552,528,286,862,6279《s》《s》1,《s》18,185,853,535,359,593,935,357,574,749,49610《s》《s》6,《s》62,621,210,100,009,092,926,263,638,386,861,611,111,118
[0089]
下文中,将主要以填充n-1个预设字符后划分得到的n-gram为例来说明。
[0090]
s402、基于预设类型的字符串中各位的权重计算各个n-gram的条件概率,得到包括大量n-gram及其条件概率的识别模型。
[0091]
云端将权重融入各个n-gram的条件概率的计算,使得条件概率可以考虑到n-gram在预设类型的字符串中的位置。
[0092]
针对任一n-gram,其条件概率可以表示为p(wn|w1……wn-1
),w1为该n-gram从左往右的第1个字符
……wn-1
为该n-gram从左往右的第n-1个字符,wn为该n-gram从左往右的第n个字符,则p(wn|w1……wn-1
)表示在出现字符w1至字符w
n-1
的条件下,出现字符wn的概率。例如,p(1|sf)表示出现字符“s”和“f”的条件下,出现字符“1”的概率。p(wn|w1……wn-1
)可以通过下述公式(3)计算得到:
[0093][0094]
其中,i为预设类型的字符串中的第i位,i为预设类型的字符串的最大长度,pos
wn
=i表示wn在预设类型的字符串中的位置为第i位,p(wn|w1……wn-1
,pos
wn
=i)表示在出现字符w1至字符w
n-1
的条件下,出现字符wn,并且字符wn位于预设类型的字符串的第i位的概率。例如,p(1|sf,3)表示出现字符“s”和“f”的条件下,出现字符“1”,且字符“1”位于第3位的概率。上述公式(3)表示:在出现字符w1至字符w
n-1
的条件下,出现字符wn的概率,等于在出现字符w1至字符w
n-1
的条件下,出现字符wn,并且字符wn位于预设类型的字符串的第1位至第i位的概率之和,相比于传统语言模型,此处条件概率充分考虑了n-gram出现这i个位置上各自
的不同权重。
[0095]
p(wn|w1……wn-1
,pos
wn
=i)可以通过下述公式(4)计算得到:
[0096][0097]
其中,count(w1……wn-1
wn,pos
wn
=i)表示大量预设类型的字符串中出现n-gram“w1……wn-1wn”,且wn位于预设类型的字符串第i位的次数。ri为预设类型的字符串第i位的权重。count(w1……wn-1
,pos
wn
=k)表示大量预设类型的字符串中出现以“w1……wn-1”开头,最后一位是任意字符且最后一位位于预设类型的字符串第k位的n-gram的次数。rk为预设类型的字符串第k位的权重。
[0098]
基于前述公式(4)可知,将权重融入各个n-gram的条件概率的计算具体是指:将n-gram出现的次数与该n-gram最后一位在预设类型的字符串中的位置的权重相乘。也就是说,条件概率的计算考虑到了各个n-gram在大量预设类型的字符串中出现的次数和位置。
[0099]
示例性的,以上表3为例,并且假设i=21,计算上表3中3-gram“115”的条件概率,即p(5|11):在表3所示的大量3-gram中,共出现3-gram“115”4次。其中,“115”中的“5”位于快递单号的第5位的次数为2,即count(5|11,pos5=5)=2;“115”中的“5”位于快递单号的第11位的次数为1,即count(5|11,pos5=11)=1;“115”中的“5”位于快递单号的第15位的次数为1,即count(5|11,pos5=15)=1。剩余count(5|11,pos5=1-4、6-10、12-14以及16-21)都为0。并且,在表3所示的大量3-gram中,以“11”开头的3-gram共出现5次,除上述4次“115”之外,还包括第10个快递单号中出现的“111”。其中,以“11”开头,并且最后一位位于快递单号的第5位的次数为2,即count(11,pos=5)=2;以“11”开头,并且最后一位位于快递单号的第11位的次数为1,即count(11,pos=11)=1;以“11”开头,并且最后一位位于快递单号的第14位的次数为1,即count(11,pos=14)=1;以“11”开头,并且最后一位位于快递单号的第15位的次数为1,即count(11,pos=15)=1。剩余count(11,pos=1-4、6-10、12-13以及16-21)都为0。
[0100]
那么,i=5的情况,即:
[0101][0102]
i=11的情况,即:
[0103][0104]
i=15的情况,即:
[0105][0106]
对于i=1-4、6-10、12-14以及16-21的情况,由于count(5|11,pos5=1-4、6-10、12-14以及16-21)为0,则p(5|11,pos5=1-4、6-10、12-14以及16-21)也为0。p(5|11)为上述i=1、2
……
21的情况求和,那么,p(5|11)的结果如下:
[0107][0108]
经过前述步骤可以得到大量n-gram及其对应的条件概率,识别模型可以包括大量n-gram及其对应的条件概率。示例性的,可以得到如下表4所示的识别模型:
[0109]
表4
[0110]
3-gram《s》《s》s《s》sfsf1f11115
……
468p(wn|w1……wn-1
)p1p2p3p4p5
……
pq
[0111]
上述表4显示,识别模型包括q个3-gram及其对应的条件概率。
[0112]
云端可以将包括大量n-gram及其条件概率的识别模型发送给手机。在识别场景中,手机在在获取到待识别字符串后,可以基于待识别字符串包括的n-gram及其对应的条件概率计算待识别字符串为预设类型的字符串的分数。
[0113]
在一些实施例中,手机可以对待识别字符串以长度n划分子字符串。进一步的,与得到识别模型的过程一致,为了解决边界问题,手机可以先在待识别字符串的左侧填充n-1个预设字符,然后以长度n划分子字符串。通过划分子字符串,可以得到待识别字符串包括的n个n-gram(也可以称为多个第一子字符串)。需要说明的是,识别模型中的大量n-gram是通过对大量预设类型的字符串划分得到的,默认大量n-gram包括预设类型的字符串中可能出现的所有n-gram。因此,待识别字符串包括的n个n-gram自然也属于大量n-gram。即,大量n-gram包括待识别字符串包括的n个n-gram。
[0114]
手机基于识别模型中该n个n-gram的条件概率可以计算待识别字符串是预设类型的字符串的可能性。其中,n个n-gram对应的n个条件概率的乘积(也可以称为第一乘积)越小,待识别字符串是预设类型的字符串的可能性越小。n个n-gram对应的n个条件概率的乘积越大,待识别字符串是预设类型的字符串的可能性越大。
[0115]
在一种具体的实现方式中,手机可以基于n个条件概率的乘积计算待识别字符串的困惑度。困惑度可以反映待识别字符串为预设类型的字符串的可能性。n个条件概率的乘积越小,困惑度越大,待识别字符串为预设类型的字符串的可能性越低。n个条件概率的乘积越大,困惑度越小,则待识别字符串为预设类型的字符串的可能性越高。若困惑度小于困惑度阈值,手机确定待识别字符串为预设类型的字符串。若困惑度大于困惑度阈值,手机确定待识别字符串不是预设类型的字符串。其中,待识别字符串的困惑度pp可通过以下公式(5)计算得到:
[0116][0117]
其中,pm(wn|w1……wn-1
)为待识别字符串包括的第m个n-gram的条件概率。
[0118]
示例性的,n=3,待识别字符串为“9888591911489”,在左侧填充n-1个,即2个预设字符“《s》”,得到填充后的待识别字符串为“《s》《s》9888591911489”,其包括“《s》《s》9”、“《s》98”、“988”、“888”、“885”、“859”、“591”、“919”、“191”、“911”、“114”、“148”以及“489”共13个3-gram,手机通过查询识别模型,如上表4,可以得到上述11个3-gram的条件概率依次为p6、p7、p8、p9、p10、p11、p12、p13、p14、p15、p16、p17以及p18,则代入上述公式(5),可以得到“9888591911489”的困惑度
[0119]
上述困惑度阈值可以通过实验在验证数据上搜索确定。本技术实施例对此不作具体限定。
[0120]
在一种具体的实现方式中,困惑度阈值可以由云端确定并与识别模型一起发送给手机。具体地,云端可以利用识别模型中的大量n-gram及其条件概率,计算第一数量的、已知为预设类型的字符串的困惑度(可记为困惑度1),得到第一数量的困惑度1。以及,计算第二数量的、已知不是预设类型的字符串的困惑度(可记为困惑度2),得到第二数量的困惑度2。然后,云端基于第一数量的困惑度1和第二数量的困惑度2确定困惑度阈值,使高于第一比例的困惑度1低于困惑度阈值,以及使高于第二比例的困惑度2高于困惑度阈值。其中,第一比例和第二比例可以相同,也可以不同。例如,第一比例和第二比例均为95%,98%等。或者,第一比例为98%,第二比例为95%。
[0121]
其中,云端可以将收集的大量预设类型的字符串中的一部分用于确定权重,第一数量的、已知为预设类型的字符串则是大量预设类型的字符串中剩余的另一部分,并且,云端还可以收集或者构建第二数量的、已知不是预设类型的字符串,从而用于确定困惑度阈值。
[0122]
上述主要说明了通过计算待识别字符串的困惑度,从而识别待识别字符串是否为预设类型的字符串的具体实现。当然,本技术实施例并不以此为限。示例性的,手机在接收到识别模型后,还可以将待识别字符串包括的n-gram的条件概率相加或者相乘,将结果作为待识别字符串是预设类型的字符串的可能性。若结果大于预设阈值,则识别待识别字符串为预设类型的字符串。若结果小于预设阈值,则识别待识别字符串不是预设类型的字符串。下文中,将主要以计算困惑度识别预设类型的字符串的方式为例来说明。
[0123]
手机在采用识别模型完成对待识别字符串的识别后,可基于识别结果实现服务推
荐。以预设类型是快递单号为例,手机在识别出待识别字符串为快递单号后,则可以推送快递查询服务,如提供图1所示界面102中查快递的快捷入口103。以预设类型是航班号为例,手机在识别出待识别字符串是航班号后,则可以推送航班查询或者购票等服务。
[0124]
在一些场景中,不同用户对服务的使用需求是不同的。以快递查询服务为例,手机a的用户经常查询顺丰
tm
快递,手机b的用户经常查询邮政
tm
快递。基于此,在一些实施例中,为了更准确的满足用户需求,手机可以对识别模型中每个n-gram维护对应的常用系数ru(也可以称为第一系数)。ru用于衡量该手机的用户查询n-gram的频繁程度。
[0125]
针对任一n-gram,用户查询的频繁程度越高,则ru越大;用户查询的频繁程度越低,则ru越小。在本实施例中,手机在采用识别模型识别待识别字符串时,可以基于待识别字符串包括的n-gram及其对应的条件概率和ru计算待识别字符串为预设类型的字符串的可能性。例如,可以将条件概率与ru相乘(可以将该乘积记为第二乘积)。
[0126]
示例性的,以通过计算困惑度识别待识别字符串是否为预设类型的字符串为例,则前述公式(5)可以更新为下述公式(6):
[0127][0128]
其中,rum指待识别字符串包括的第m个n-gram的ru。
[0129]
下面说明手机对识别模型中的每个n-gram维护对应的ru的具体实现:手机设置识别模型中各个n-gram的初始ru为1。示例性的,手机在上述表4所示识别模型的基础上,进一步增加ru项,得到如下表5所示更新后的识别模型:
[0130]
表5
[0131]
3-gram《s》《s》s《s》sfsf1f11115
……
468p(wn|w1……wn-1
)p1p2p3p4p5
……
pqru11111
……1[0132]
也就是说,初始时,ru指示用户查询每个n-gram的频繁程度都是相同的。然后,在每次完成对待识别字符串的识别后,若识别结果是待识别字符串为预设类型的字符串,手机进一步检测用户的操作,并在检测到开启预设服务后,调大该待识别字符串包括的n-gram的ru。例如,可以预设步长,如0.1、0.05等调大。预设服务是用于查询预设类型的字符串的服务,例如,预设类型是快递单号,则预设服务可以是快递查询服务;又如,预设类型是航班号,则预设服务可以是航班查询或者订票服务。或者,未检测到开启预设服务,则调小该待识别字符串包括的n-gram的ru,或者保持该待识别字符串包括的n-gram的ru不变。
[0133]
以预设类型是快递单号,待识别字符串是图1的界面101中用户长按的“sf1153431154218”为例,手机通过困惑度识别到“sf1153431154218”为快递单号,此时手机可以推送图1的界面102所示的查快递的快捷入口103,并且,手机可检测用户对该快捷入口103的操作。如图7所示,手机检测到用户对快捷入口103的点击操作,则可以确定用户需要查询“sf1153431154218”。该情况下,手机可将识别模型中“sf18591911489”包括的n-gram,如“《s》《s》s”、“《s》sf”、“sf1”、“f18”、“185
”……
的ru都调大。例如,都增加0.1。
[0134]
采用本实施例的方法,可以为查询频繁的n-gram分配较大的ru,后续结合ru则可以更准确的识别用户的需求。从而实现个性化的识别,即不同手机的用户对预设服务的使
用需求不同,手机可以准确满足这种个性化的需求。
[0135]
在另一些场景中,预设类型的字符串的生成规则是有可能会发生变化的。仍以预设类型是快递单号为例,各家快递公司生成快递单号的规则可能会发生变化。在规则发生变化后,识别模型可能无法用于对新规则生成的预设类型的字符串准确识别。基于此,在一些实施例中,为了提高该场景下的识别准确率,手机可以对识别模型中的每个n-gram维护对应的信念系数rb(也可以称为第二系数)。rb用于衡量n-gram的可信程度。可信程度用于反映n-gram与当前生成预设类型的字符串的规则的匹配程度。
[0136]
针对任一n-gram,其与当前生成预设类型的字符串的规则的匹配程度越高,则rb越大;其与当前生成预设类型的字符串的规则的匹配程度越低,则rb越小。在本实施例中,手机在采用识别模型识别待识别字符串时,可以基于待识别字符串包括的n-gram及其对应的条件概率和rb计算待识别字符串为预设类型的字符串的可能性。例如,可以将条件概率与rb相乘(可以将该乘积称为第三乘积)。
[0137]
示例性的,以通过计算困惑度识别待识别字符串是否为预设类型的字符串为例,则前述公式(5)可以更新为下述公式(7):
[0138][0139]
其中,rbm指待识别字符串包括的第m个n-gram的rb。
[0140]
下面说明手机对识别模型中的每个n-gram维护对应的rb的具体实现:手机设置识别模型中各个n-gram的初始ru为1。示例性的,手机在上述表4所示识别模型的基础上,进一步增加rb项,得到如下表6所示更新后的识别模型:
[0141]
表6
[0142]
3-gram《s》《s》s《s》sfsf1f11115
……
468p(wn|w1……wn-1
)p1p2p3p4p5
……
pqrb11111
……1[0143]
也就是说,初始时,rb指示每个n-gram与当前生成预设类型的字符串的规则的匹配程度都是相同的。然后,在每次完成对待识别字符串的识别后,若识别结果是待识别字符串不是预设类型的字符串,手机进一步检测用户的操作,并在检测到开启预设服务后,调大该待识别字符串包括的n-gram的rb。例如,可以预设步长,如0.1、0.05等步长调大。预设服务是用于查询预设类型的字符串的服务,例如,预设类型是快递单号,则预设服务可以是快递查询服务;又如,预设类型是航班号,则预设服务可以是航班查询或者订票服务。或者,在未检测到开启预设服务,则调小该待识别字符串包括的n-gram的rb,或者保持该待识别字符串包括的n-gram的rb不变。
[0144]
以预设类型是快递单号,待识别字符串是图8的界面801中的“9888591911489”为例,手机通过困惑度识别到“9888591911489”不是快递单号,则如图8的界面802所示,手机推荐的快捷工具803中包括“复制”、“转发”以及“删除”的快捷入口,而不包括快递查询服务的快捷入口。但是,手机也会检测用户的操作。手机检测到用户对图8的界面804中“复制”的快捷入口805的点击操作,完成对“9888591911489”的复制;而后,手机检测到用户依次执行长按图8的界面805中的输入框、点击“粘贴”按钮807以及点击“查询”按钮808。该情况下,手
机可以确定“9888591911489”极有可能是在新规则下生成的快递单号,则将识别模型中“9888591911489”包括的n-gram,如“《s》《s》9”、“《s》98”、“988”、“888”、“885
”……
的ru都调大。例如,都增加0.1。
[0145]
采用本实施例的方法,针对以新规则生成的预设类型的字符串,采用旧的识别模型可能导致识别失败,该情况下,若用户行为反映出待识别字符串为预设类型的字符串,手机可以确定待识别字符串是新规则下生成的字符串,从而调大该待识别字符串包括的所有n-gram的rb。那么,后续在遇到以同样的新规则生成的待识别字符串时,可以更准确的识别。从而可以使识别方案不断的适应于新规则。
[0146]
至此,需要说明的是:前述分别说明了手机在本地结合ru和rb来识别待识别字符串的具体实现,实际实施时,上述两种方式也可以结合。即,既考虑各个n-gram的查询频繁程度,又考虑该n-gram与当前生成预设类型的字符串的规则的匹配程度。例如,可以将条件概率、ru和rb相乘(也可以将该乘积称为第四乘积)。示例性的,前述公式(5)可以更新为下述公式(8):
[0147][0148]
另外,上述手机在本地结合ru和/或rb来识别待识别字符串的方式,仅在本地基于用户的行为数据更新识别模型,可以保证用户的隐私。
[0149]
前述实施例中,主要说明了识别待识别字符串是否为预设类型的字符串的具体实现。而在一些场景中,预设类型的字符串还进一步可以分为不同公司的字符串。以快递单号为例,快递单号进一步可分为顺丰
tm
、邮政
tm
、京东
tm
、圆通
tm
、中通
tm
等各家快递公司的快递单号。以航班号为例,航班号可进一步包括东方航空
tm
、南方航空
tm
、海南航空
tm
等各家航空公司的航班号。
[0150]
在一些实施例中,在识别到待识别字符串为预设类型的字符串后,手机还需要进一步识别待识别字符串所属的公司。从而便于后续更准确的推送服务。例如,在识别到快递单号所属的快递公司后,可以在查询界面中自动填充快递公司或者可以推送该快递公司的相关服务。
[0151]
在本实施例中,云端可以在生成包括n-gram及其对应的条件概率的识别模型的基础上,进一步在识别模型中添加各个n-gram属于各个公司(也可以称为第一公司)的概率(也可以称为第二概率)。其中,一个n-gram可能在多个公司的预设类型的字符串中出现过,因此,一个n-gram可能属于多个公司,相应的,一个n-gram可能对应多个概率。示例性的,云端在前述表4所示的识别模型的基础上,进一步增加所属公司及其概率项,得到如下表7所示的识别模型:
[0152]
表7
[0153]
[0154]
云端将识别模型发送给手机。在识别场景中,手机识别出待识别字符串为预设类型的字符串后,手机可以基于待识别字符串包括的n个n-gram分别所属的公司及其概率,计算待识别字符串属于各个公司的概率,并确定概率最大的公司为待识别字符串所属的公司。在一种具体的实现方式中,可采用下述公式(9)计算待识别字符串所属的公司c:
[0155][0156]
其中,pc(m)为待识别字符串包括的第m个n-gram属于公司c的概率。即,待识别字符串所属的公司c满足:待识别字符串包括的多个n-gram属于该公司c的概率之和最大。
[0157]
下面说明云端得到各个n-gram所属的公司及其概率的过程:云端收集的大量预设类型的字符串所属的公司是已知的。即,云端包括大量预设类型的字符串及其所属公司的标识信息。以快递单号为例,云端收集的大量快递单号所属的快递公司是已知的。示例性的,云端收集到的数据如下表8所示:
[0158]
表8
[0159]
序号快递单号快递公司1sf1153431154218顺丰
tm
2sf9600419468306顺丰
tm
375884971038257中通
tm
475898966489172中通
tm
5432667277841526韵达
tm
6432668188873237韵达
tm
7jt3007533819290极兔
tm
8yt6631835528627圆通
tm
9185359357496丰网速运
tm
10621009263861468中通
tm
[0160]
与前文中的表1相比,表8中还有各个快递单号所属的快递公司的名称。
[0161]
预设类型的字符串属于某公司,则该预设类型的字符串中包括的n-gram都是属于该公司的。以上表8中序号为1的快递单号“sf1153431154218”为例,该快递单号属于顺丰
tm
,则该快递单号包括的3-gram“《s》《s》s”、“《s》sf”、“sf1”,“f11”,“115
”……“
218”都属于顺丰
tm
,“sf1”,“f11”,“115
”……“
218”属于顺丰
tm
的次数均加一。基于此,云端在从大量预设类型的字符串中得到大量n-gram的同时,还需要统计每个n-gram属于各个公司的次数。然后,针对任一n-gram,云端基于该n-gram属于各个快递公司的次数计算该n-gram属于各个公司的概率。示例性的,统计得到3-gram“115”属于顺丰
tm
、中通
tm
、韵达
tm
、京东
tm
、圆通
tm
的次数依次为3、7、10、4、6,那么,云端可以计算得到“115”属于顺丰
tm
的概率为3/(3+7+10+4+6)=3/30,属于中通
tm
的概率为7/(3+7+10+4+6)=7/30,属于韵达
tm
的概率为10/(3+7+10+4+6)=10/30,属于京东
tm
的概率为4/(3+7+10+4+6)=4/30,属于圆通
tm
的概率为6/(3+7+10+4+6)=6/30。在完成对所有n-gram所属的快递公司及其概率的计算后,则可以得到如前文表7所示的识别模型。
[0162]
最后,为了便于对本技术方案的理解,下面结合图9,并以快递单号为例简要说明本技术的一种完整实现方式:
[0163]
如图8所示,云端可以通过对大量快递单号统计计算,得到快递单号各位的权重。其中,权重用于表示该位对识别快递单号的重要性。然后,云端基于权重生成快递单号的识别模型,识别模型中包括大量n-gram,每个n-gram的条件概率、所属的公司以及属于各个公司的概率。云端在得到识别模型后,可以将识别模型下发给手机。手机在获取到待识别字符串后,可以基于识别模型识别待识别字符串是否为快递单号;若是快递单号,手机还可以识别出快递单号所属的快递公司。并且,手机还可以基于用户行为动态调节识别模型中各个n-gram的常用系数ru和信念系数rb,并用于后续识别。
[0164]
本技术实施例还提供一种芯片系统,如图10所示,该芯片系统1000包括至少一个处理器1001和至少一个接口电路1002。处理器1001和接口电路1002可通过线路互联。例如,接口电路1002可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1002可用于向其它装置(例如处理器1001)发送信号。示例性的,接口电路1002可读取存储器中存储的指令,并将该指令发送给处理器1001。当所述指令被处理器1001执行时,可使得第一设备执行上述实施例中云端执行的各个步骤,使得第二设备执行上述实施例中手机执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本技术实施例对此不作具体限定。
[0165]
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有第一计算机指令,当该计算机指令在第一设备上运行时,使得第一设备执行上述方法中云端执行的步骤,以实现字符串的识别。
[0166]
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有第二计算机指令,当该计算机指令在第二设备上运行时,使得第二设备执行上述方法中手机执行的步骤,以实现字符串的识别。
[0167]
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中字符串的识别。
[0168]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的图像处理方法。
[0169]
其中,本实施例提供的通信系统、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0170]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0171]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合
或通信连接,可以是电性,机械或其它的形式。
[0172]
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0173]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0174]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0175]
最后应说明的是,以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或等同替换,而不脱离本技术技术方案的精神和范围。

技术特征:
1.一种字符串的识别方法,其特征在于,应用于第一设备,所述第一设备中包括多个预设类型的字符串,所述方法包括:计算所述多个预设类型的字符串中每一位的权重,得到i位对应的i个权重,i为多个预设类型的字符串的最大长度,3≤i,i为整数;向第二设备发送所述i个权重,所述i个权重用于所述第二设备识别预设类型的字符串;其中,计算第i位的权重ri,包括:统计所述多个预设类型的字符串中第i位出现的多个字符中每个字符出现的第一概率,得到所述多个字符对应的多个所述第一概率,1≤i≤i,i为整数;基于所述多个第一概率计算所述ri。2.根据权利要求1所述的方法,其特征在于,所述基于所述多个第一概率计算所述ri,包括:采用下述公式计算所述第i位的信息熵h(i):其中,j为所述第i位出现过的第j个字符,j为所述第i位出现过的字符的数量,p
j
为所述第i位中第j个字符的所述第一概率;基于所述信息熵确定所述ri,所述信息熵越大,所述ri越小,所述信息熵越小,所述ri越大。3.根据权利要求1所述的方法,其特征在于,所述预设类型的字符串包括快递单号、航班号、车次、订单号或者流水号。4.一种字符串的识别方法,其特征在于,应用于第二设备,所述方法包括:获取待识别的第一字符串,所述第一字符串由字母和/或数字组成;基于所述第一字符串包括的多个第一子字符串和所述预设类型的字符串中每一位的权重,识别所述第一字符串是否为预设类型的字符串;其中,所述预设类型的字符串中第i位的权重ri基于多个所述预设类型的字符串中第i位出现过的多个字符对应的多个第一概率计算得到。5.一种字符串的识别方法,其特征在于,应用于第一设备,所述第一设备中包括多个预设类型的字符串,所述方法包括:计算所述多个预设类型的字符串每一位的权重,得到i位对应的i个权重,i为预设类型的字符串的最大长度,3≤i,i为整数;划分所述多个预设类型的字符串,得到多个第二子字符串;基于所述i个权重以及所述多个第二子字符串在所述多个预设类型的字符串中出现的次数和位置,计算所述多个第二子字符串中每个第二子字符串的条件概率,得到与所述多个第二子字符串一一对应的多个所述条件概率,所述条件概率表示在出现对应的所述第二子字符串中的第一个字符至第n-1个字符的条件下、接着出现所述第二子字符串中的第n个字符的概率,n为所述第二子字符串的长度,n≥3,且n为整数;向第二设备发送所述多个第二子字符串及其条件概率,所述多个第二子字符串及其条件概率用于所述第二设备识别预设类型的字符串。
6.根据权利要求5所述的方法,其特征在于,所述多个第二子字符串的长度均为n;在所述划分所述多个预设类型的字符串,得到多个第二子字符串之前,所述方法还包括:在所述多个预设类型的字符串中每个字符串的左侧填充n-1个预设字符,得到与所述多个预设类型的字符串一一对应的多个填充后的字符串;所述划分所述多个预设类型的字符串,得到多个第二子字符串,包括:划分所述多个填充后的字符串,得到所述多个第二子字符串。7.根据权利要求5或6所述的方法,其特征在于,所述第一设备中还包括所述多个预设类型的字符串分别归属的公司的标识信息;在所述得到多个第二子字符串之后,所述方法还包括:基于所述多个预设类型的字符串分别对应的标识信息,统计第三子字符串所在的至少一个字符串归属的至少一个第一公司,得到所述第三子字符串所属的所述至少一个第一公司;以及,统计所述第三子字符串分别归属于每个所述第一公司的第二概率,得到对应所述至少一个第一公司的至少一个所述第二概率,所述第三子字符串是所述多个第二子字符串中的任一个;向所述第二设备发送所述多个第二子字符串分别所属的所述至少一个第一公司的标识信息及其对应的所述至少一个第二概率。8.根据权利要求5-7中任一项所述的方法,其特征在于,所述预设类型的字符串包括快递单号、航班号、车次、订单号或者流水号。9.一种字符串的识别方法,其特征在于,应用于第二设备,所述方法包括:获取待识别的第一字符串,所述第一字符串由字母和/或数字组成;基于所述第一字符串包括的多个第一子字符串,预设类型的字符串中出现过的多个第二子字符串,以及所述多个第二子字符串一一对应的多个条件概率,识别所述第一字符串是否为预设类型的字符串,所述条件概率表示在出现对应的所述第二子字符串中的第一个字符至第n-1个字符的条件下、接着出现所述第二子字符串中的第n个字符的概率,n为所述第二子字符串的长度,n≥3,且n为整数;其中,所述条件概率基于预设类型的字符串中每一位的权重生成,所述权重用于指示预设类型的字符串中相应位的字符对识别所述预设类型的字符串的重要性。10.根据权利要求9所述的方法,其特征在于,在所述获取待识别的第一字符串之后,所述方法还包括:在所述第一字符串的左侧填充n-1个预设字符,得到填充后的所述第一字符串;划分所述填充后的所述第一字符串,得到所述多个第一子字符串。11.根据权利要求9或10所述的方法,其特征在于,所述多个第二子字符串包括所述多个第一子字符串;所述基于所述第一字符串包括的多个第一子字符串,预设类型的字符串中出现过的多个第二子字符串,以及所述多个第二子字符串一一对应的多个条件概率,识别所述第一字符串是否为预设类型的字符串,包括:计算所述多个第一子字符串对应的多个所述条件概率的第一乘积,基于所述第一乘积识别所述第一字符串是否为预设类型的字符串;
其中,所述第一乘积越大,所述第一字符串是所述预设类型的字符串的可能性越大,所述第一乘积越小,所述第一字符串是所述预设类型的字符串的可能性越小。12.根据权利要求9-11中任一项所述的方法,其特征在于,所述多个第二子字符串包括所述多个第一子字符串,所述第二设备中存储有与所述多个第二子字符串一一对应的多个第一系数和/或多个第二系数,每个第一系数用于指示用户查询对应的所述第二子字符串的频繁程度,每个第二系数用于指示对应的所述第二子字符串与生成预设类型的字符串的规则的匹配程度;在所述识别所述第一字符串是否为预设类型的字符串之后,所述方法还包括以下至少一个步骤:若识别出所述第一字符串是预设类型的字符串,且检测到用户在预设界面中查询所述第一字符串,则调大所述多个第一子字符串一一对应的所述第一系数;若识别出所述第一字符串是预设类型的字符串,但未检测到用户在所述预设界面中查询所述第一字符串,则调小所述多个第一子字符串一一对应的所述第一系数;若识别出所述第一字符串不是预设类型的字符串,但检测到用户在预设界面中查询所述第一字符串,则调大所述多个第一子字符串一一对应的所述第二系数;以及,若识别出所述第一字符串不是预设类型的字符串,且未检测到用户在所述预设界面中查询所述第一字符串,则调小所述多个第一子字符串一一对应的所述第二系数;其中,所述预设界面用于查询所述预设类型的字符串。13.根据权利要求12所述的方法,其特征在于,所述方法还包括:获取待识别的第二字符串,所述第二字符串由字母和/或数字组成;基于所述第一字符串包括的多个第五子字符串,预设类型的字符串中出现过的多个第二子字符串,以及所述多个第二子字符串一一对应的多个条件概率和所述多个第一系数和/或所述多个第二系数,识别所述第二字符串是否为预设类型的字符串。14.根据权利要求13所述的方法,其特征在于,所述多个第二子字符串包括所述多个第五子字符串,所述基于所述第一字符串包括的多个第五子字符串,预设类型的字符串中出现过的多个第二子字符串,以及所述多个第二子字符串一一对应的多个条件概率和所述多个第一系数和/或所述多个第二系数,识别所述第二字符串是否为预设类型的字符串,包括:计算所述多个第五子字符串对应的多个所述条件概率和多个所述第一系数的第二乘积,基于所述第二乘积识别所述第二字符串是否为预设类型的字符串;或者,计算所述多个第五子字符串对应的多个所述条件概率和多个所述第二系数的第三乘积,基于所述第三乘积识别所述第二字符串是否为预设类型的字符串;或者,计算所述多个第六子字符串对应的多个所述条件概率、多个所述第一系数和多个所述第二系数的第四乘积,基于所述第四乘积识别所述第二字符串是否为预设类型的字符串;其中,所述第二乘积、所述第三乘积或者所述第四乘积越大,所述第二字符串是所述预设类型的字符串的可能性越大,所述第二乘积、所述第三乘积或者所述第四乘积越小,所述第二字符串是所述预设类型的字符串的可能性越小。15.一种通信系统,其特征在于,所述通信系统包括用于执行如权利要求1-3中任一项或者5-8中任一项所述的方法的第一设备,以及包括用于执行如权利要求4或者9-14中任一
项所述的方法的第二设备。16.一种计算机可读存储介质,其特征在于,包括第一计算机指令,当所述第一计算机指令在第一设备上运行时,使得所述第一设备执行如权利要求1-3中任一项或者5-8中任一项所述的方法。17.一种计算机可读存储介质,其特征在于,包括第二计算机指令,当所述第二计算机指令在第二设备上运行时,使得所述第二设备执行如权利要求4或者9-14中任一项所述的方法。

技术总结
本申请提供一种字符串的识别方法及系统,涉及终端技术领域,可以准确识别快递单号、航班号或者订单号等仅由字母和数字构成的字符串,从而提高服务推荐的准确性。获取待识别的第一字符串,第一字符串由字母和/或数字组成。基于第一字符串包括的多个第一子字符串,以及预设类型的字符串中每一位的权重或者基于权重生成识别模型,识别第一字符串是否为预设类型的字符串。其中,预设类型的字符串中第i位的权重Ri基于多个预设类型的字符串中第i位出现过的多个字符对应的多个第一概率计算得到。过的多个字符对应的多个第一概率计算得到。过的多个字符对应的多个第一概率计算得到。


技术研发人员:张云柯 何昌鑫
受保护的技术使用者:荣耀终端有限公司
技术研发日:2022.09.20
技术公布日:2023/9/11
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐