CN116796705A - 表情符检测方法及装置、电子设备、存储介质 - Google Patents
表情符检测方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN116796705A CN116796705A CN202310996715.6A CN202310996715A CN116796705A CN 116796705 A CN116796705 A CN 116796705A CN 202310996715 A CN202310996715 A CN 202310996715A CN 116796705 A CN116796705 A CN 116796705A
- Authority
- CN
- China
- Prior art keywords
- character
- expression
- code
- target
- subsequence
- 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.)
- Granted
Links
- 230000014509 gene expression Effects 0.000 title claims abstract description 472
- 238000000034 method Methods 0.000 title claims abstract description 124
- 238000001514 detection method Methods 0.000 claims abstract description 83
- 230000008569 process Effects 0.000 claims abstract description 50
- 108091026890 Coding region Proteins 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000013507 mapping Methods 0.000 claims description 89
- 239000003607 modifier Substances 0.000 claims description 57
- 238000004590 computer program Methods 0.000 claims description 24
- 238000000605 extraction Methods 0.000 claims description 11
- 230000008451 emotion Effects 0.000 description 76
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 239000003999 initiator Substances 0.000 description 7
- 238000009434 installation Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101000830386 Homo sapiens Neutrophil defensin 3 Proteins 0.000 description 1
- 101000743264 Homo sapiens RNA-binding protein 6 Proteins 0.000 description 1
- 102100024761 Neutrophil defensin 3 Human genes 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008909 emotion recognition Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Landscapes
- Document Processing Apparatus (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请的实施例公开了一种表情符检测方法及装置、电子设备、存储介质,该方法包括:先获取应用程序中包含的字符编码序列,其中,字符编码序列是对字符序列进行编码得到的;然后,根据应用程序中包含的字符解码算法,对字符编码序列中包含的多个字符编码依次进行解码,在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从字符编码序列中,提取以目标字符编码为起点的目标子序列,以根据目标子序列进行表情符检测处理。本申请实施例的技术方案能够提升表情符检测准确性。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种表情符检测方法及装置、电子设备、存储介质、程序产品。
背景技术
表情符是一种有形的,能够更加生动、直观的表达情感和意图的符号,在工作、生活等中得到越来越多的应用。作为一种特殊的字符,表情符通常包含在字符序列中。在一些应用场景中,需要检测字符序列中包含的表情符,例如,在进行企业注册时,需要检测输入的企业名称中是否包含表情符;又例如,在聊天过程中,接收到对方发送的消息后,需要解码消息中包含的表情符,并显示在对应的聊天框中。而字符序列通常基于其对应的编码进行存储、传输等;因此,需要对字符序列对应的字符编码序列进行解码,以进行表情符检测。
相关技术中,针对应用程序中的同一字符编码序列,其在不同应用平台中的表情符检测结果差异较大,例如,不同应用平台的用户通过同一聊天应用进行聊天的过程中,发送方对用户输入的表情符进行编码后发送至接收方,接收方解码显示的表情符与发送方显示的表情符不一致,从而降低了表情符检测的统一性和准确性。
发明内容
本申请的实施例提供了一种表情符检测方法及装置、电子设备、存储介质、程序产品,可以提升表情符检测的统一性和准确性。
根据本申请实施例的一个方面,提供了一种表情符检测方法,所述方法包括:获取应用程序中包含的字符编码序列;其中,所述字符编码序列是对字符序列进行编码得到的;根据所述应用程序中包含的字符解码算法,对所述字符编码序列中包含的多个字符编码依次进行解码;
在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从所述字符编码序列中,提取以所述目标字符编码为起点的目标子序列;根据所述目标子序列进行表情符检测处理。
根据本申请实施例的一个方面,提供了一种表情符检测装置,所述装置包括:
获取模块,配置为获取应用程序中包含的字符编码序列;其中,所述字符编码序列是对字符序列进行编码得到的;
解码模块,配置为根据所述应用程序中包含的字符解码算法,对所述字符编码序列中包含的多个字符编码依次进行解码;
提取模块,配置为在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从所述字符编码序列中,提取以所述目标字符编码为起点的目标子序列;
检测模块,配置为根据所述目标子序列进行表情符检测处理。
在一示例性实施例中,基于前述方案,所述提取模块具体配置为:从所述字符编码序列中,提取以所述目标字符编码为起点的至少一个连续的字符编码作为所述目标字符编码对应的表情符编码;将所述目标字符编码对应的表情符编码作为候选子序列;若所述候选子序列不满足设定的完整性条件,则从所述字符编码序列中,获取以所述候选子序列的下一个字符编码为起点、且满足设定拼接条件的待拼接子序列,并将所述待拼接子序列拼接在所述候选子序列之后,以对所述候选子序列进行更新,直至更新后的候选子序列满足所述完整性条件;将满足所述完整性条件的候选子序列作为所述目标子序列。
在一示例性实施例中,基于前述方案,在所述设定编码范围参数中包含多个起始编码范围以及每个起始编码范围对应的表情符类型的条件下,所述提取模块具体配置为:从所述设定编码范围参数中,查找与所述目标字符编码相匹配的目标起始编码范围,以及所述目标起始编码范围对应的目标表情符类型;若所述目标表情符类型对应的表情符编码为多字符编码,则从所述字符编码序列中,提取以所述目标字符编码为起点的多个连续的字符编码作为所述目标字符编码对应的表情符编码。
在一示例性实施例中,基于前述方案,所述提取模块具体配置为:获取所述目标表情符类型对应的编码特征参数;从所述字符编码序列中,提取以所述目标字符编码为起点的、且与所述编码特征参数相匹配的子序列。
在一示例性实施例中,基于前述方案,在所述编码特征参数中包含指定数量和编码区间参数的条件下,所述提取模块具体配置为:从所述字符编码序列中查找以所述目标字符编码为起点的、且连续的指定数量个字符编码;若所述指定数量个字符编码与所述编码区间参数相匹配,则提取所述指定数量个字符编码。
在一示例性实施例中,基于前述方案,在所述编码特征参数中包含设定的表情终止符的条件下,所述提取模块具体配置为:以所述目标字符编码为起点,将所述字符编码序列中包含的字符编码依次与所述表情终止符进行比对,直至查找出与所述表情终止符相匹配的结束字符编码;从所述字符编码序列中,提取以所述目标字符编码为起点,所述结束字符编码为终点的子序列。
在一示例性实施例中,基于前述方案,在每个字符编码包含至少一个代码单元,所述设定编码范围参数包含多个起始编码范围的条件下,所述解码模块具体配置为:若所述字符编码序列对应的编码方式为指定编码方式,则在解码过程中,将所述多个字符编码分别对应的第一个代码单元依次与所述多个起始编码范围进行比对;若任一字符编码中包含的第一个代码单元与任一起始编码范围相匹配,则将所述任一字符编码作为所述目标字符编码,并从所述字符编码序列中,提取以所述目标字符编码为起点的目标子序列。
在一示例性实施例中,基于前述方案,所述提取模块具体配置为:从所述字符编码序列中,获取以所述候选子序列的下一个字符编码为起点、且连续的第一数量个字符编码;其中,所述第一数量为设定的表情修饰符对应的编码中包含的字符编码数量;若所述第一数量个字符编码与所述表情修饰符相匹配,则确定所述候选子序列不满足所述完整性条件,并将所述第一数量个字符编码作为所述待拼接子序列。
在一示例性实施例中,基于前述方案,所述提取模块还配置为:若所述第一数量个字符编码与所述表情修饰符不匹配,则从所述字符编码序列中,获取以所述候选子序列的下一个字符编码为起点、且连续的第二数量个字符编码;其中,所述第二数量为设定的表情连接符对应的编码中包含的字符编码数量;若所述第二数量个字符编码与所述表情连接符相匹配,则从所述字符编码序列中,查找位于所述第二数量个字符编码后一位的待拼接字符编码;从所述字符编码序列中,提取连续的、且以所述待拼接字符编码为起点的至少一个字符编码作为所述待拼接字符编码对应的表情符编码;对所述第二数量个字符编码以及所述待拼接字符编码对应的表情符编码进行拼接,得到所述待拼接子序列。
在一示例性实施例中,基于前述方案,所述检测模块具体配置为:从所述应用程序中,获取表情符标识信息与表情图之间的映射数据;从所述映射数据中,查找与所述目标子序列相匹配的表情图。
在一示例性实施例中,基于前述方案,所述检测模块具体配置为:从设定存储区域中查找与所述目标子序列相匹配的表情图;其中,所述设定存储区域中包含历史解码过程中查找到的表情符标识信息与表情图之间的映射关系;若从所述设定存储区域中未查找到与所述目标子序列相匹配的表情图,则获取所述映射数据。
在一示例性实施例中,基于前述方案,在所述映射数据中包含表情符对应的字符序列与表情图之间的映射子数据的条件下,所述检测模块具体配置为:对所述目标子序列进行解码,得到所述目标子序列对应的字符序列;从所述表情符对应的字符序列与表情图之间的映射子数据中,查找与所述目标子序列对应的字符序列相匹配的表情图。
在一示例性实施例中,基于前述方案,在所述映射数据中包含表情符编码与表情图标识之间的映射关系,以及表情图集合的条件下,所述检测模块具体配置为:从所述表情符编码与表情图标识之间的映射关系中,查找与所述目标子序列相匹配的目标表情符编码以及所述目标表情符编码对应的目标表情图标识;从所述表情图集合中,查找与所述目标表情图标识相匹配的表情图。
根据本申请实施例的一个方面,提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的表情符检测方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被电子设备的处理器执行时,使电子设备实现如前所述的表情符检测方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前所述的表情符检测方法。
在本申请的实施例所提供的技术方案中,先获取应用程序中包含的字符编码序列,其中,字符编码序列是对字符序列进行编码得到的;然后,根据应用程序中包含的字符解码算法,对字符编码序列中包含的多个字符编码依次进行解码,在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从字符编码序列中,提取以目标字符编码为起点的目标子序列,以根据目标子序列进行表情符检测处理,相比相关技术,一方面,通过部署在应用程序中的字符解码算法对字符编码序列进行解码,降低同一应用程序中包含的字符编码序列在不同应用平台中的表情符检测结果之间的差异,提升了不同应用平台中表情符检测结果的统一性,进而提升了表情符检测的准确性;另一方面,通过表情符对应的设定编码范围参数检测字符编码序列中是否存在表情符编码,以从字符编码序列中提取以与设定编码范围参数相匹配的目标字符编码为起点的目标子序列,并基于目标子序列进行表情符检测处理,提升了表情符检测效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
图1是本申请的一示例性实施例示出的实施环境的示意图。
图2是本申请的一示例性实施例示出的表情符检测方法的流程图。
图3是本申请的一示例性实施例示出的表情符的示意图。
图4是本申请的一示例性实施例示出的表情符的示意图。
图5是本申请的一示例性实施例示出的表情符的示意图。
图6是本申请的一示例性实施例示出的修饰组合表情符的示意图。
图7A是本申请的一示例性实施例示出的连接类表情符的示意图。
图7B是本申请的一示例性实施例示出的连接类表情符的示意图。
图8是本申请的一示例性实施例示出的字符序列的应用场景示意图。
图9是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图10是本申请的一示例性实施例示出的不同平台表情符的示意图。
图11是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图12是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图13是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图14是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图15是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图16是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图17是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图18是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图19是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图20是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图21是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图22是本申请的另一示例性实施例示出的表情符检测方法的流程图。
图23A是本申请的一示例性实施例示出的表情图显示框图。
图23B是本申请的一示例性实施例示出的映射数据创建框图。
图24是本申请的一示例性实施例示出的表情符检测装置的示意图。
图25示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在介绍本申请实施例技术方案之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例涉及的名词和术语适用于如下的解释。
Unicode,又称为统一码、万国码、单一码,是国际标准字符集,收录了几乎所有字符,并规定了每个字符对应的Unicode编码,Unicode编码空间中的一个值称为码点,是Unicode编码空间中看做整体的最小单位,即,最小单位的Unicode编码;通常,一个字符对应于1个码点,但是,针对一些特殊的字符,一个字符对应于多个连续的码点。
UTF-8是一种将Unicode编码转换成变长字符编码的方式,其中,Unicode编码中的一个码点,根据其数值大小,可以转换为1-4个字节的UTF-8编码。
UTF-16是一种将Unicode编码转换成变长字符编码的方式,Unicode编码中的一个码点,若码点值小于0x10000,则可以直接将该码点作为UTF-16编码,其占用的字节数为2个字节;若码点值处于0x10000至0x10FFFF之间,则将其转换为4个字节的UTF-16编码。
字符编码是指一个码点对应的编码,一个字符对应于1个或多个连续的码点,对应的,一个字符的编码中可以包含1个或多个连续的字符编码,例如,字母“A”对应于1个码点“U+0041”,字母“A”的编码中包含一个字符编码;又例如,表情符“某区域旗帜”对应于2个连续的码点“U+1F1E8 U+1F1F3”,因此,表情符“某区域旗帜”的表情符编码中包含2个字符编码。其中,“U+1F1F3”中,“U+”代表编码类型为Unicode编码,“1F1F3”代表编码值,其为16进制。
代码单元(又称为编码单元,code unit)是对应的编码空间中,作为整体的最小单位,即单个字符编码在存储时所占据的最小单位,一个字符编码可以包含1个或多个连续的代码单元,例如,在UTF-8编码中,根据码点的数值大小,一个码点可以被转换成1个字节、2个字节、3个字节或4个字节的UTF-8编码,因此,代码单元是1个字节的数字序列;在UTF-16编码中,根据码点的数值大小,一个码点可以被转换成2个字节或4个字节的UTF-16编码,因此,一个代码单元是2个字节的数字序列,例如,针对码点“U+1F004”,其对应的UTF-16编码为“\uD83C\uDC04”,则“\uD83C\uDC04”为一个字符编码,包含2个代码单元“\uD83C”、“\uDC04”;其中,“\uD83C”中,“\u”代表编码类型为UTF-16编码,“D83C”代表编码值,其为16进制。
以下对本申请实施例的技术方案进行详细介绍:
相关技术中,通常基于操作系统提供的字符解码算法对应用程序中包含的字符编码序列进行表情符检测,但是,不同应用平台中操作系统的类型、版本等之间的差异较大,从而导致应用程序中的同一字符编码序列在不同应用平台中的表情符检测结果差异较大,降低了表情符检测的统一性和准确性。基于此,本申请的实施例提供了一种表情符检测方法及装置、电子设备、存储介质、程序产品,可以提升表情符检测准确性。
请参阅图1,图1是本申请涉及的一种实施环境的示意图,该实施环境包括终端设备110和服务器120。终端设备110和服务器120之间通过有线或者无线网络进行通信,终端设备110可以将自身的数据上传至服务器120,也可以从服务器120获取数据。
其中,终端设备110可以包括但不限于智能手机、平板、笔记本电脑、计算机、智能语音交互设备、智能家电、车载终端、飞行器、远程驾驶终端等等;服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对终端设备和服务器的具体形式进行限制。
需要说明的是,图1中终端设备110和服务器120的数量只是示意性的,根据实际需要,可以具有任意数量的终端设备110和服务器120。
在一示例性实施例中,本申请的实施例提供的表情符检测方法可以由终端设备110执行。示例性的,终端设备110可以先获取应用程序中包含的字符编码序列,其中,字符编码序列是对字符序列进行编码得到的;然后,根据应用程序中包含的字符解码算法,对字符编码序列中包含的多个字符编码依次进行解码;在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从字符编码序列中,提取以目标字符编码为起点的目标子序列,以根据目标子序列进行表情符检测处理,相比相关技术,一方面,通过部署在应用程序中的字符解码算法对字符编码序列进行解码,降低同一应用程序中包含的字符编码序列在不同应用平台中的表情符检测结果之间的差异,提升了不同应用平台中表情符检测结果的统一性,进而提升了表情符检测的准确性;另一方面,通过表情符对应的设定编码范围参数检测字符编码序列中是否存在表情符编码,以从字符编码序列中提取以与设定编码范围参数相匹配的目标字符编码为起点的目标子序列,并基于目标子序列进行表情符检测处理,提升了表情符检测效率。
在另一示例性实施例中,服务器120可以具有与终端设备110相似的功能,从而执行本申请实施例提供的表情符检测方法。示例性的,服务器120可以先获取应用程序中包含的字符编码序列,其中,字符编码序列是对字符序列进行编码得到的;然后,根据应用程序中包含的字符解码算法,对字符编码序列中包含的多个字符编码依次进行解码;在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从字符编码序列中,提取以目标字符编码为起点的目标子序列,以根据目标子序列进行表情符检测处理。
在另一示例性实施例中,终端设备110和服务器120还可以共同执行本申请的实施例提供的表情符检测方法。示例性的,终端设备110可以先获取应用程序中包含的字符编码序列,其中,字符编码序列是对字符序列进行编码得到的;然后,根据应用程序中包含的字符解码算法,对字符编码序列中包含的多个字符编码依次进行解码;在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从字符编码序列中,提取以目标字符编码为起点的目标子序列,以根据目标子序列进行表情符检测处理。
本申请的实施例中涉及到字符编码序列等与用户相关的数据,在本申请的方法应用于具体产品或技术中时,其均为获得用户许可或者同意,且相关的数据的提取、使用和处理均遵守当地安全标准和当地法律法规的规定。
参见图2,图2是本申请的一示例性实施例示出的一种表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图2所示,在一示例性实施例中,表情符检测方法可以包括步骤S210-步骤S240,详细介绍如下:
步骤S210,获取应用程序中包含的字符编码序列;其中,字符编码序列是对字符序列进行编码得到的。
需要说明的是,应用程序是指完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序,其类型包括但不限于原生应用程序、非原生应用程序、网页应用、小程序、系统程序等中的至少一种。
字符是指类字形单位或符号,包括但不限于字母、数字、运算符号、标点符号、汉字、表情符等,其中,表情符(emoji)是用于表达感情等的数字图像,例如,包含微笑、破涕为笑等。字符编码是指一个码点对应的编码,一个字符的编码中包含一个或多个连续的字符编码,其类型包括但不限于Unicode编码、UTF-8编码、UTF-16编码。可选的,表情符包含单表情符和组合表情符,其中,单表情符是指所对应的表情符编码中只包含一个表情符对应的编码,例如,单表情符包括但不限于以下5种类型:
1、基本类表情符是指微笑、破涕为笑、客船等基本的表情符,可以包含【EmojiSequences】标准书的【Basic_Emoji】小节中记录的表情符。基本类表情符通常对应于1个码点,表情符编码(表情符对应的编码)中包含1个字符编码,在Unicode编码方式下,其编码范围通常包含:“U+00A9”~“U+3299”、以及大于“U+FFFF”,其中,将编码值处于“U+00A9”~“U+3299”的表情符记为第一基本类表情符,将编码值大于“U+FFFF”的表情符记为第二基本类表情符,可选的,第二基本类表情符的编码值可以处于“U+1F004”~“U+1FAF6”范围内,随着表情符的迭代更新,第二基本类表情符的编码值可以大于“U+1FAF6”。需要说明的是,基本类表情符在其他编码方式下的编码范围可以根据基本类表情符在Unicode编码方式下的编码范围、以及Unicode编码与其他编码方式之间的转换关系确定,例如,由于“U+00A9”、“U+3299”、“U+1F004”、“U+1FAF6”分别对应的UTF-16编码为“\u00A9”、“\u3299”、“\uD83C \uDC04”、“\uD83E \uDEF6”,因此,在UTF-16编码方式下,基本类表情符的编码范围包含:“\u00A9”~“\u3299”、“\uD83C \uDC04”~“\uD83E \uDEF6”。在一个示例中,参见图3所示,“大笑”表情符的Unicode编码为“1F600”,UTF-8编码为“F0 9F 98 80”,UTF-16编码为“D83DDE00”;“客船”表情符的Unicode编码为“1F6F3”,UTF-8编码为“F0 9F 98 83 ”,UTF-16编码为“D83D DEF3”;需要说明的是,【Emoji Sequences】标准书是由特定组织发布的,其中记录了不同表情符对应的Unicode编码。
2、键盘类表情符是指用于显示键盘上的字符的表情符,包含【Emoji Sequences】标准书的【Emoji Keycap Sequences】小节中记录的表情符。键盘类表情符对应的码点(Unicode编码)通常为3个,第1个码点为键盘字符(例如,0~9、、#)对应的码点,第2个码点为“U+FE0F”,第3个码点为“U+20E3”, 对应的,在UTF-16编码方式下,其表情符编码中包含3个字符编码,第1个字符编码为键盘字符的UTF-16编码,第2个字符编码为“\uFE0F”(对应于U+FE0F),第3个字符编码为“\u20E3”(对应于U+20E3)。例如,参见图4所示,表情符“0”的Unicode编码为“0030 FE0F 20E3”,UTF-8编码为“30 EF D0 8F E2 83 A3”,UTF-16编码为“0030 FE0F 20E3”。
3、旗帜类表情符用于显示地区和区域的旗帜,包含【Emoji Sequences】标准书的【RGI Emoji Flag Sequences】小节中记录的表情符,RGI 表示 Recommended for GeneralInterchange(推荐可在日常的交互/交流中使用)。旗帜类表情符通过两个地域指示符组合的方式来表示某个地区或区域的旗帜,对应于两个地区指示符的码点,也就是说,旗帜类表情符对应于2个码点,第1个码点为地域指示符组合中的第1个地域指示符对应的码点,第2个码点为地域指示符组合中的第2个地域指示符对应的码点,地域指示符的码点范围“U+1F1E6~U+1F1FF”,分别对应于地域指示符A~Z;对应的,在UTF-16编码方式下,地域指示符的编码范围为“\uD83C \uDDE6”(对应于U+1F1E6)~“\uD83C \uDDFF”(对应于U+1F1FF)。例如,某旗帜的Unicode编码为“U+1F1E8 U+1F1F3”。
4、附加旗帜类表情符用于显示地区和区域的旗帜,是对旗帜类表情符的补充,可以包含【Emoji Sequence】标准书的【RGI Emoji Tag Sequences】小节中记录的表情符。附加旗帜类表情符通常对应于7个码点,第1-3个码点分别为“U+1F3F4 U+E0067 U+E0062”,最后一个码点为“U+E007F” ;对应的,在UTF-16编码方式下,第1-3个字符编码分别为“\uD83C\uDFF4”、“\uDB40 \uDC67”、“\uDB40 \uDC62”,最后一个字符编码为“\uDB40 \uDC7F”。例如,以下为示例性的3个附加旗帜类表情符分别对应的Unicode编码:
U+1F3F4 U+E0067 U+E0062 U+E0065 U+E006E U+E0067 U+E007F;
U+1F3F4 U+E0067 U+E0062 U+E0073 U+E0063 U+E0074 U+E007F;
U+1F3F4 U+E0067 U+E0062 U+E0077 U+E006C U+E0073 U+E007F。
5、字符序列表情符是指所对应的表情符编码能够转换为设定字符序列的表情符,也就是说,表情符对应于设定字符序列,其中,设定字符序列以及其对应的表情符的具体内容可以根据实际需要灵活设置。在一可选的示例中,设定字符序列的格式可以为:表情起始符+短文本+表情终止符,对应的表情符编码格式为:表情起始符的编码+短文本的编码+表情终止符的编码。其中,短文本包括但不限于中文、英文等,其可以是用于描述表情符含义的文本,表情起始符和表情终止符可以是特殊字符,例如,表情起始符可以是“[”, 表情终止符可以是“]”,参见图5所示,字符序列“[破涕为笑]”对应于“破涕为笑”表情符,字符序列“[微笑]”对应于“微笑”表情符。
组合表情符是指包含多个单表情符,或者,包含一个单表情符和表情修饰符的表情符,对应的,组合表情符对应的表情符编码(即,组合表情符编码)中包含多个单表情符的表情符编码(即,单表情符编码),或者,包含一个单表情符编码以及表情修饰符的编码。例如,组合表情符包括但不限于以下2种类型:
1、修饰组合表情符,是指包含单表情符和表情修饰的组合表情符,其对应的组合表情符编码的格式为:单表情符编码+表情修饰符的编码。其中,表情修饰符用于修饰表情符的显示,包括但不限于颜色深浅修饰符、颜色模式修饰符等中的至少一种。其中,颜色深浅修饰符用于修饰表情符中至少部分区域的颜色的深浅,例如,修饰脸部、皮肤等的颜色,颜色深浅可以包括浅、中等浅、中等、中等深、深等,其中,颜色深浅修饰符对应的Unicode编码可以如下表1所示:
在一个示例中,参见图6所示,“爱心”表情符和“深色”修饰符组成得到“深色爱心”表情符,“深色爱心”表情符的组合表情符编码为:“爱心”表情符的表情符编码“U+1F3FF”。
颜色模式修饰符包含黑白模式和彩色模式,用于指示表情符以黑白模式显示还是彩色模式显示,可选的,黑白模式修饰符的Unicode编码可以为“U+FE0E”,彩色模式修饰符的Unicode编码可以为“U+FE0F”。
可选的,修饰组合表情符可以包含【Emoji Sequence】标准书的【RGI EmojiModifier Sequence】小节中记录的表情符。
2、连接类表情符,是指包含多个单表情符、以及表情连接符的组合表情符,其中,表情连接符用于将多个单表情符连接起来;可选的,连接类表情符中还可以包含表情修饰符,因此,连接类表情符的编码格式包含:“单表情符编码+表情修饰符的编码+表情连接符的编码+单表情符编码+表情修饰符的编码+表情连接符的编码+……”,其中,“表情修饰符的编码”是可选的。例如,参见图7A所示,两个“女孩”表情符和一个“爱心”表情符,组合成“朋友”表情符,“朋友”表情符的表情符编码为:“女孩”表情符的编码+表情连接符的编码+“爱心”表情符的编码+表情连接符的编码+“女孩”表情符的编码。又例如,“家庭”表情符是由表情符“男人”、“女人”、“男孩”组成的,可选的,表情连接符的Unicode编码可以为“U+200D”,参见图7B所示,“家庭”表情符的Unicode编码为:U+1F468 U+200D U+1F469 U+200DU+1F466;其中,“U+1F468”、“U+1F469”、“U+1F466”分别为表情符“男人”、“女人”、“男孩”的Unicode编码。
需要说明的是,以上列举的表情符对应的编码范围仅仅是示例性的,随着表情符的迭代更新,表情符的编码范围也随之变化,本实施例中不对表情符的编码范围进行限定。
字符编码序列是指依次排列的多个字符编码,其为对字符序列进行编码得到的。其中,字符序列中包含一个或多个字符,其可以是应用程序的任意应用场景中包含的字符序列,例如,参见图8所示,可以是聊天场景的消息框中的字符序列“Abc”、输入框中输入的字符序列“1234”,也可以是消息展示场景中的字符序列“今天天气好”、“出来玩吧……”等,也可以是企业群创建场景中需要创建人输入的“企业名称”、“行业类型”、“员工规模”对应的字符序列。
为了检测应用程序包含的字符序列中是否有表情符,或者,为了对字符编码序列进行解码,可以从应用程序中获取字符编码序列。例如,企业群创建场景中,企业名称中不能包含表情符,因此,可以获取创建者输入的企业名称对应的字符编码序列,以检测输入的企业名称中是否包含表情符。
步骤S220,根据应用程序中包含的字符解码算法,对字符编码序列中包含的多个字符编码依次进行解码。
字符解码算法用于对字符编码进行解码,以得到字符。为了避免应用程序被安装在不同平台后,解码出的字符不同,字符解码算法部署在应用程序中。可选的,字符解码算法可以打包至应用程序的安装包中,从而在应用程序的安装过程中,将字符解码算法部署在应用程序中;或者,可以在应用程序安装后的首次或每次启动过程中,检测应用程序中是否包含该字符解码算法,若不包含,则从对应的服务器中下载该字符解码算法并部署在应用程序中,这样,不仅可以减小应用程序的安装包的大小,并且,在字符解码算法有更新的情况下,服务器可以通知应用程序下载更新后的字符解码算法,使得字符解码算法的更新无需依赖应用程序的版本更新。
在需要对字符编码序列进行解码时,可以调用应用程序中包含的字符解码算法,对字符编码序列中包含的多个字符编码依次进行解码。
步骤S230,在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从字符编码序列中,提取以目标字符编码为起点的目标子序列。
表情符对应的设定编码范围参数是指描述编码范围的参数,其可以是根据表情符编码中的第一个字符编码的编码范围设置的,用于判断字符编码是否为表情符编码中的第一个字符编码,具体取值可以根据编码方式以及表情符编码中的第一个字符编码确定。在一可选的示例中,在编码方式为UTF-16的条件下,由于基本类表情符对应的第一个字符编码的编码范围通常包含“\u00A9~\u3299”、“\uD83C \uDxxx~\uD83C \uDxxx”;由于键盘字符的UTF-16编码通常只包含一个字符编码,因此,键盘类表情符的第一个字符编码为键盘字符的UTF-16编码;旗帜类表情符的第一个字符编码的编码范围为“\uD83C \uDDE6~\uD83C \uDDFF”;附加旗帜类表情符的第一个字符编码通常为“\uD83C \uDFF4”;字符序列表情符的表情符编码中的第一个字符编码为表情起始符的UTF-16编码,因此,设定编码范围参数可以包含“\u00A9”~“\u3299”、“\uD83C \uDxxx”~“\uD83E \uDxxx”、键盘字符的UTF-16编码、以及表情起始符的UTF-16编码。
在解码过程中,将字符编码序列中包含的多个字符编码依次与设定编码范围参数进行比对,若任一字符编码与设定编码范围参数相匹配,表明该字符编码可能为某个表情符编码中的第一个字符编码,因此,将该字符编码作为目标字符编码,并从字符序列中提取目标子序列,其中,目标子序列是以目标字符编码为起点的;目标子序列中可以包含一个字符编码,即,目标字符编码;或者,考虑到表情符编码中可能包含多个字符编码,因此,目标子序列中也可以包含多个连续的字符编码,也就是说,目标子序列中包含的多个字符编码在字符编码序列中是相邻的,并且,第一个字符编码为目标字符编码。
步骤S240,根据目标子序列进行表情符检测处理。
在提取出目标子序列后,可以检测目标子序列是否为表情符对应的字符编码。
可选的,在进行表情符检测处理的过程中,可以将目标子序列与预设的表情符编码集中包含的表情符编码进行比对,若目标子序列与任一表情符编码相匹配,则表明该目标子序列对应于表情符。
在一可选的实施方式中,在得到目标子序列或对目标子序列进行表情符检测处理后,可以从字符编码序列中获取目标子序列的下一个字符编码,并对下一个字符编码进行解码,直至字符编码序列中的最后一个字符编码解码完成。
在图2所示的实施例中,一方面,通过部署在应用程序中的字符解码算法对字符编码序列进行解码,降低同一应用程序中包含的字符编码序列在不同应用平台中的表情符检测结果之间的差异,提升了不同应用平台中表情符检测结果的统一性,进而提升了表情符检测的准确性;另一方面,通过表情符对应的设定编码范围参数检测字符编码序列中是否存在表情符编码,以从字符编码序列中提取以与设定编码范围参数相匹配的目标字符编码为起点的目标子序列,并基于目标子序列进行表情符检测处理,提升了表情符检测效率。
在一示例性实施例中,参见图9,图9是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图9所示,该方法包括步骤S210-步骤S220、步骤S910-步骤S940,以及步骤S240,其中,步骤S910-步骤S940的详细介绍如下:
步骤S910,在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从字符编码序列中,提取以目标字符编码为起点的至少一个连续的字符编码作为目标字符编码对应的表情符编码。
目标字符编码对应的表情符编码是指从字符序列中提取出的、目标字符编码对应的单表情符编码,也就是说,目标字符编码对应的表情符编码是指从字符编码序列中提取出的、以目标字符编码为起点的、且能够解码出表情符的最短字符编码序列。
由于目标字符编码与设定编码范围相匹配,表明目标字符编码可能为某个表情符编码中的第一个字符编码,因此,可以从字符编码序列中,提取以目标字符编码为起点的、且连续的至少一个字符编码,从而将提取出的至少一个字符编码作为目标字符编码对应的单表情符编码。其中,具体提取方式可以根据实际需要灵活设置。
步骤S920,将目标字符编码对应的表情符编码作为候选子序列。
需要说明的是,组合表情符编码中至少包含一个单表情符编码以及表情修饰符对应的编码,或者,多个单表情符编码。
因此,在提取出目标表情符对应的单表情符编码后,还可以将目标表情符对应的表情符编码作为候选子序列,以检测表情符编码的完整性。
可选的,由于组合表情符编码中不包含某些类型的表情符编码,因此,在步骤S920之前,还可以判断目标表情符类型是否为设定的禁止检测完整性的表情符类型,若是,则直接将目标字符编码对应的表情符类型作为目标子序列。其中,禁止检测完整性的表情符类型包括但不限于字符序列表情符。
步骤S930,若候选子序列不满足设定的完整性条件,则从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且满足设定拼接条件的待拼接子序列,并将待拼接子序列拼接在候选子序列之后,以对候选子序列进行更新,直至更新后的候选子序列满足完整性条件。
设定的完整性条件是预先设置的、用于检测候选子序列是否完整的条件,其具体内容可以根据组合表情符编码的编码规则设置,例如,对于组合表情符,其编码格式通常包含:“单表情符编码+表情修饰符的编码”,“单表情符编码+表情修饰符的编码+表情连接符的编码+单表情符编码+……”,可见,能够与表情符编码进行组合得到组合表情符编码的通常为“表情修饰符的编码”或“表情连接符的编码+单表情符编码”,因此,完整性条件可以设置为候选子序列之后连接的子序列(即,位于候选子序列之后,且与候选子序列相邻的子序列)既不属于表情修饰符对应的编码,也不属于表情连接符对应的编码,例如,假设表情修饰符的编码为“\u0000”,表情连接符的字符编码为“\u0111”,字符编码序列中包含5个字符编码{\u0036 \u0037 \u0038 \u0000},若候选子序列为{\u0037 \u0038},由于候选子序列的下一个字符编码为“\u0000”,属于表情修饰符,因此,候选子序列不满足完整性条件。
设定拼接条件用于检测候选子序列之后连接的子序列是否能够与候选子序列进行拼接,得到组合表情符编码,其具体内容可以根据组合表情符编码的编码规则设置;可选的,能够与表情符编码进行组合得到组合表情符编码的通常包含“表情修饰符的编码”,或“表情连接符的编码+单表情符编码”,因此,设定拼接条件可以设置为子序列与“表情修饰符的编码”相匹配,或者,子序列与“表情连接符的编码+单表情符编码”相匹配。
若候选子序列不满足完整性条件,则表明字符编码序列中可能存在能够与候选子序列拼接得到组成表情符编码的子序列,因此,从字符编码序列中提取以候选子序列的下一个字符编码为起点的子序列,若该子序列满足设定拼接条件,则表明候选子序列与该子序列能够进行拼接得到组合表情符编码,因此,将该子序列作为待拼接子序列,并将待拼接子序列拼接在候选子序列后,以对候选子序列进行更新。可选的,可以根据候选子序列之后连接的子序列检测候选子序列是否满足完整性条件。其中,待拼接子序列中可以包含1个或多个字符编码。
在得到更新后的候选子序列后,继续检测更新后的候选子序列是否满足完整性条件,若否,则又对候选子序列进行更新,直至更新后的候选子序列满足完整性条件。若候选子序列满足完整性条件,或者,候选子序列之后连接的子序列不满足设定拼接条件,则结束循环,并将候选子序列作为目标子序列。
步骤S940,将满足完整性条件的候选子序列作为目标子序列。
若候选子序列满足完整性条件,则将该候选子序列作为目标子序列,以用于表情符检测,从而可以解码出组合表情符,并且,由于字符解码算法是部署在应用程序中的,因此,即使应用程序被安装在不同平台,都能够解码出组合表情符。
相关技术中,应用程序被部署在不同应用平台后,由于不同应用平台中部署的字符解码算法不一致,导致针对同一表情符编码所解码出的表情符不一致,而本实施例中,由于字符解码算法被部署在应用程序中,因此,即使应用程序被部署在不同应用平台中,针对同一表情符编码所解码出的表情符是相同的,并且,能够解码出组合表情符。例如,参见图10所示,假设应用程序为聊天应用,相关技术中,用户通过A平台的聊天应用输入组合表情符“家庭”、“夫妻”,并发送至B平台后,B平台的聊天应用中显示的是表情符“男人”、“女人”、“男孩”、“男人”、“女人”;而采用本实施例所示的方法后,用户通过C平台的聊天应用输入组合表情符“家庭”、“夫妻”,并将其发送至D平台后,D平台的聊天应用中显示的表情符与C平台中的一致。
需要说明的是,图9所示的步骤S210-步骤S220、步骤S240的具体实现细节可以参照图2所示的步骤S210-步骤S220、步骤S240,此处不再赘述。
在图9所示的实施例中,在得到目标字符编码对应的表情符编码后,还会将其作为候选子序列,以检测候选子序列的完整性,并在候选子序列不满足完整性条件的情况下,从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且满足设定拼接条件的待拼接子序列,并将待拼接子序列拼接在候选子序列之后,直至候选子序列满足完整性条件,使得能够检测出组合表情符,提升了表情符检测的准确性。
在一示例性实施例中,参见图11,图11是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图11所示,在设定编码范围参数中包含多个起始编码范围以及每个起始编码范围对应的表情符类型的条件下,该方法包括步骤S210-步骤S220、步骤S1110-步骤S1120、步骤S920-步骤S940、步骤S940,以及步骤S240,其中,步骤S1110-步骤S1120的详细介绍如下:
步骤S1110,从设定编码范围参数中,查找与目标字符编码相匹配的目标起始编码范围,以及目标起始编码范围对应的目标表情符类型。
需要说明的是,不同类型的表情符,表情符编码中的第一个字符编码的编码范围不一样,为了查找出完整的单表情符编码,设定编码范围参数中可以包含多个起始编码范围以及每个起始编码范围对应的表情符类型,其中,每个起始编码范围可以根据对应类型的表情符编码中的第一个字符编码的编码范围设置,具体取值可以根据表情符类型、编码方式以及表情符编码中的第一个字符编码。可选的,一个起始编码范围可以对应于一种表情符类型,或者,在多个表情符类型对应的第一个字符编码的编码范围存在重叠或相近的条件下,可以对这多个表情符类型对应的第一个字符编码的编码范围进行合并,得到一个起始编码范围,也就是说,该起始编码范围对应多个表情符类型;例如,在UTF-16编码方式下,第二基本类表情符的第一个字符编码的编码范围包括:“\uD83C \uDxxx”~“\uD83E \uDxxx”,旗帜类表情符的第一个字符编码的编码范围包括:“\uD83C \uDDE6”~“\uD83C \uDDFF”;附加旗帜类表情符的第一个字符编码的编码范围包括:“\uD83C \uDFF4”,可见,第二基本类表情符、旗帜类表情符以及附加旗帜类表情符对应的编码范围存在重叠,因此,可以将第二基本类表情符、旗帜类表情符以及附加旗帜类表情符对应的起始编码范围设置为“\uD83C \uDxxx”~“\uD83E \uDxxx”;而第一基本类表情符、字符序列表情符、键盘类表情符对应的第一个字符编码的编码范围差异较大,因此,字符序列表情符的起始编码范围可以设置为:表情起始符对应的UTF-16编码;键盘类表情符的起始编码范围可以设置为:键盘字符对应的UTF-16编码;第一基本类表情符的起始编码范围可以设置为:“\u00A9”~“\u3299”。
在解码过程中,将任一字符编码分别与多个起始编码范围进行比对,若任一字符编码与任一起始编码范围相匹配,则将该字符编码作为目标字符编码,并将该起始编码范围作为目标起始编码范围,并将目标起始编码范围对应的表情符类型作为目标表情符类型。
在一可选的实施方式中,为了提升表情符检测效率,可以设置多种表情符类型分别对应的优先级,在将任一字符编码分别与多个起始编码范围进行比对的过程中,先将任一字符编码与优先级最高的表情符类型对应的起始编码范围进行比对,若不匹配,则再将该字符编码与优先级最高的表情符类型对应的起始编码范围进行比对,直至查找到目标起始编码范围,或,直至该字符编码与优先级最低的表情符类型对应的起始编码范围不匹配,从而结束该字符编码与多个起始编码范围之间的比对;例如,假设第一基本类表情符的优先级>第二基本类表情符的优先级,则先将任一字符编码与第一基本类表情符对应的起始编码范围进行比对,若不匹配,再将该字符编码与第二基本类表情符对应的起始编码范围进行比对。
在一可选的实施方式中,若目标起始编码范围对应至少两个表情符类型,则可以获取至少两个表情符类型分别对应的优先级,将至少两个表情符类型中优先级最高的表情符类型作为目标表情符类型。
可选的,若目标起始编码范围对应至少两个表情符类型,在将优先级最高的表情符类型作为目标表情符类型后,若基于目标表情符类型未提取出目标字符编码对应的表情符编码,则可以将这至少两个表情符类型中优先级次之的表情符类型作为目标表情符类型,直至提取出目标字符编码对应的表情符编码,或者,直至根据优先级最低的表情符类型未提取出目标字符编码对应的表情符编码。例如,假设第二基本类表情符、旗帜类表情符以及附加旗帜类表情符对应的起始编码范围设置为“\uD83C \uDxxx”~“\uD83E \uDxxx”,旗帜类表情符的优先级>附加旗帜类表情符的优先级>第二基本类表情符的优先级,若目标字符编码处于该起始编码范围内,则先根据旗帜类表情符提取目标字符编码对应的表情符编码,若未提取出,则根据附加旗帜类表情符提取目标字符编码对应的表情符编码,若也未提取出,则根据第二基本类表情符提取目标字符编码对应的表情符编码。
步骤S1120,若目标表情符类型对应的表情符编码为多字符编码,则从字符编码序列中,提取以目标字符编码为起点的多个连续的字符编码作为目标字符编码对应的表情符编码。
表情符编码中包含的字符编码的数量可能是1个,也可能是多个,例如,基本类表情符的表情符编码中包含的字符编码的数量为1个,旗帜类表情符的表情符编码中包含的字符编码的数量为2个。
因此,根据目标表情符类型,可以确定目标表情符类型对应的表情符编码中包含的字符编码的数量,若其包含的字符编码的数量为多个,即,目标表情符类型对应的表情符编码为多字符编码,则表明目标字符编码对应的表情符编码中包含多个字符编码,因此,需要从字符编码序列中,提取以目标字符编码为起点的多个连续的字符编码作为目标字符编码对应的表情符编码。其中,具体获取多少个字符编码作为目标字符编码对应的表情符编码,可以根据目标表情符类型对应的表情符编码的编码特征确定。
可选的,若目标表情符类型对应的表情符编码中只包含一个字符编码,即,表情符编码为单字符编码,则可以直接将目标字符编码作为目标字符编码对应的表情符编码。例如,若目标字符编码处于第一基本类表情符对应的起始编码范围,则直接将目标字符编码作为其对应的表情符编码。
需要说明的是,图11所示的步骤S210-步骤S220、步骤S240的具体实现细节可以参照图2所示的步骤S210-步骤S220、步骤S240,图11所示的步骤S920-步骤S940的具体实现细节可以参照图3所示的步骤S920-步骤S940,此处不再赘述。
在图11所示的实施例中,从设定编码范围参数中,查找与目标字符编码相匹配的目标起始编码范围,以及目标起始编码范围对应的目标表情符类型,从而根据目标表情符类型提取目标字符编码对应的表情符编码,提升了表情符编码的准确性和提取效率;并且,在目标表情符类型对应的表情符编码为多字符编码的条件下,能够提取多个连续的字符编码作为表情符编码,从而能够检测到对应于多字符编码(即,多码点)的表情符,提升了表情符检测的准确性。
在一示例性实施例中,参见图12,图12是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图12所示,该方法包括步骤S210-步骤S220、步骤S1110、步骤S1210-步骤S1220、步骤S920-步骤S940,以及步骤S240,其中,步骤S1210-步骤S1220的详细介绍如下:
步骤S1210,若目标表情符类型对应的表情符编码为多字符编码,则获取目标表情符类型对应的编码特征参数。
编码特征参数用于描述表情符编码的编码特征,编码特征参数中可以包含:表情符编码中包含的字符编码的数量、编码区间参数等,编码区间参数用于描述表情符编码的编码区间。编码特征参数的具体内容可以根据表情符类型、编码方式、表情符编码的编码特征设定。
因此,在提取目标字符编码对应的表情符编码的过程中,可以先获取目标表情符类型对应的编码特征参数,
步骤S1220,从字符编码序列中,提取以目标字符编码为起点的、且与编码特征参数相匹配的子序列。
在得到目标表情符类型对应的编码特征参数后,可以从字符编码序列中,提取以目标字符编码为起点的、且与编码特征参数相匹配的子序列,将该子序列作为目标字符编码对应的表情符编码。
可选的,由于目标字符编码与表情符对应的设定编码范围参数相匹配,因此,为了降低数据处理量,在判断提取出的子序列是否与编码特征参数相匹配的过程中,目标字符编码可以不参与比对,也就是说,只需判断子序列中除目标字符编码外的其他字符编码是否与编码特征参数相匹配;当然,在其他方式中,目标字符编码也可以参与比对。
需要说明的是,图12所示的步骤S210-步骤S220、步骤S240的具体实现细节可以参照图2所示的步骤S210-步骤S220、步骤S240,图12所示的步骤S920-步骤S940的具体实现细节可以参照图9所示的步骤S920-步骤S940,图12所示的步骤S1110的具体实现细节可以参照图11所示的步骤S1110,此处不再赘述。
在图12所示的实施例中,根据编码特征参数提取表情符编码,提升了提取出的表情符编码的准确性。
在一示例性实施例中,参见图13,图13是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图13所示,在编码特征参数中包含指定数量和编码区间参数的条件下,该方法包括步骤S210-步骤S220、步骤S1110、步骤S1210、步骤S1310-步骤S1320、步骤S920-步骤S940,以及步骤S240,其中,步骤S1310-步骤S1320的详细介绍如下:
步骤S1310,从字符编码序列中查找以目标字符编码为起点的、且连续的指定数量个字符编码。
针对一些类型的表情符,其表情符编码中包含的字符编码的数量是固定的,且每个字符编码的编码区间是固定的,因此,针对这种类型的表情符,其对应的编码特征参数中可以包含指定数量和编码区间参数,其中,指定数量是指表情符编码中包含的字符编码的数量,编码区间参数用于描述表情符编码的编码区间,其中,编码区间可以是以字符编码为单位设置的,对应的,编码区间参数中可以包含表情符编码中每个字符编码(或,指定位置的字符编码)对应的编码区间,或者,编码区间可以是以代码单元为单位设置的,对应的,编码区间参数中可以包含表情符编码中每个代码单元(或,指定位置的代码单元)对应的编码区间;编码区间参数的具体内容可以根据表情符编码的编码区间设置。在一可选的示例中,在编码方式为UTF-16编码方式下,针对附加旗帜类表情符,编码特征参数中指定数量可以是7,编码区间参数包含第1-3、7个字符编码分别对应的编码区间“\uD83C \uDFF4”、“\uDB40 \uDC67”、“\uDB40 \uDC62”、“\uDB40 \uDC7F”;针对旗帜类表情符,编码特征参数中指定数量可以是2,编码区间参数包含第1、2个字符编码的编码区间均为“\uD83C \uDDE6”~“\uD83C \uDDFF”;针对键盘类表情符,编码特征参数中包含的指定数量为3,编码区间参数中包含第1、2、3个字符编码分别对应的编码区间为:键盘字符的UTF-16编码、“\uFE0F”、“\u20E3” 。
因此,在目标表情符类型对应的编码特征参数中包含指定数量和编码区间参数的条件下,可以从字符编码序列中获取以目标字符编码为起点的、且连续的指定数量个字符编码。
步骤S1320,若指定数量个字符编码与编码区间参数相匹配,则提取指定数量个字符编码。
将查找到的指定数量个字符编码与目标表情符类型对应的编码区间参数进行比对,若指定数量个字符编码与编码区间参数相匹配,则将指定数量个字符编码作为目标字符编码对应的表情符编码。
在一可选的实施方式中,若编码区间参数中包含的编码区间是以字符编码为单位设置的,则需要将指定数量个字符编码分别与对应的编码区间进行比对;若编码区间参数中包含的编码区间是以代码单元为单位设置的,则需要将指定数量个字符编码中包含的多个代码单元分别与对应的编码区间进行比对。在比对过程中,若任一字符编码(或,任一代码单元)与对应的编码区间不匹配,则可以比对结束,且比对结果为不匹配;若每个字符编码(或,每个代码单元)均与对应的编码区间相匹配,则比对结果为不匹配。可选的,若编码区间参数中不存在某个字符编码(或,代码单元)对应的编码区间,则该字符编码(或,代码单元)可以不参与比对。
需要说明的是,图13所示的步骤S210-步骤S220、步骤S240的具体实现细节可以参照图2所示的步骤S210-步骤S220、步骤S240,图13所示的步骤S920-步骤S940的具体实现细节可以参照图9所示的步骤S920-步骤S940,图13所示的步骤S1110的具体实现细节可以参照图11所示的步骤S1110,图13所示的步骤S1210的具体实现细节可以参照图12所示的步骤S1210,此处不再赘述。
在图13所示的实施例中,在编码特征参数中设置表情符编码包含的字符编码的数量,以及编码区间参数,提升了根据编码特征参数提取表情符编码的准确性和效率。
在一示例性实施例中,参见图14,图14是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图14所示,在编码特征参数中包含设定的表情终止符的条件下,该方法包括步骤S210-步骤S220、步骤S1110、步骤S1210、步骤S1410-步骤S1420、步骤S920-步骤S940,以及步骤S240,其中,步骤S1410-步骤S1420的详细介绍如下:
步骤S1410,以目标字符编码为起点,将字符编码序列中包含的字符编码依次与表情终止符进行比对,直至查找出与表情终止符相匹配的结束字符编码。
针对一些类型的表情符,其表情符编码中包含的字符编码的数量不是固定的,但是表情符编码中的最后一个字符编码是固定的,因此,针对这种类型的表情符,其对应的编码特征参数中可以包含表情终止符。例如,字符序列表情符的表情符编码中的最后一个字符编码为表情终止符对应的编码。
因此,在目标表情符类型对应的编码特征参数中包含表情终止符的条件下,可以将字符编码序列中,位于目标字符编码之后的字符编码依次与表情终止符进行比对,直至查找出与表情终止符相匹配的字符编码,并将查找出的字符编码作为结束字符编码。
步骤S1420,从字符编码序列中,提取以目标字符编码为起点,结束字符编码为终点的子序列。
将字符编码序列中,以目标字符编码为起点,结束字符编码为终点的子序列作为目标字符编码对应的表情符编码。
需要说明的是,图14所示的步骤S210-步骤S220、步骤S240的具体实现细节可以参照图2所示的步骤S210-步骤S220、步骤S240,图14所示的步骤S920-步骤S940的具体实现细节可以参照图9所示的步骤S920-步骤S940,图14所示的步骤S1110的具体实现细节可以参照图11所示的步骤S1110,图14所示的步骤S1210的具体实现细节可以参照图12所示的步骤S1210,此处不再赘述。
在图14所示的实施例中,编码特征参数中包含表情终止符,根据表情终止符来提取表情符编码,可以提升准确性。
在一示例性实施例中,参见图15,图15是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图15所示,在每个字符编码包含至少一个代码单元,设定编码范围参数包含多个起始编码范围的条件下,该方法包括步骤S210-步骤S220、步骤S1510-步骤S1520,以及步骤S240,其中,步骤S1510-步骤S1520的详细介绍如下:
步骤S1510,若字符编码序列对应的编码方式为指定编码方式,则在解码过程中,将多个字符编码分别对应的第一个代码单元依次与多个起始编码范围进行比对。
在一些编码方式下,不同类型表情符对应的表情符编码中的第一个代码单元的编码范围不同,因此,起始编码范围可以根据表情符编码的第一个代码单元进行设置。
因此,若字符编码序列对应的编码方式为指定编码方式,则在解码过程中,将多个字符编码分别对应的第一个代码单元依次与多个起始编码范围进行比对。其中,指定编码方式包括但不限于UTF-16编码,在一可选的示例中,在指定编码方式为UTF-16编码的条件下,针对第一基本类表情符,起始编码范围可以包括“\u00A9”~“\u3299”,针对第二基本类表情符、旗帜类表情符、附加旗帜类表情符,起始编码范围可以包括“\uD83C”~“\uD83E”;由于键盘字符的UTF-16编码只包含一个代码单元,因此,针对键盘类表情符,起始编码范围可以包括键盘字符的UTF-16编码;针对字符序列表情符,起始编码范围可以包括表情起始符的UTF-16编码中的第一个代码单元。
步骤S1520,若任一字符编码中包含的第一个代码单元与任一起始编码范围相匹配,则将任一字符编码作为目标字符编码,并从字符编码序列中,提取以目标字符编码为起点的目标子序列。
若任一字符编码中包含的第一个代码单元与任一起始编码范围相匹配,则表明该字符编码为目标字符编码,从字符编码序列中,提取以目标字符编码为起点的目标子序列。
需要说明的是,图15所示的步骤S210-步骤S220、步骤S240的具体实现细节可以参照图2所示的步骤S210-步骤S220、步骤S240,此处不再赘述。
在图15所示的实施例中,在字符编码序列对应的编码方式为指定编码方式的条件下,只需根据一个代码单元所属的起始编码范围,就能够确定其对应的表情符类型,从而提升了表情符编码提取效率,降低了数据处理量。
在一示例性实施例中,参见图16,图16是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图16所示,该方法包括步骤S210-步骤S220、步骤S910-步骤S920、步骤S1610-步骤S1630、步骤S940,以及步骤S240,其中,步骤S1610-步骤S1630的详细介绍如下:
步骤S1610,从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且连续的第一数量个字符编码;其中,第一数量为设定的表情修饰符对应的编码中包含的字符编码数量。
表情修饰符是指用于修饰表情符的符号,其对应的编码中包含的字符编码数量记为第一数量。
完整性编码条件包含:位于候选子序列之后,且与候选子序列相邻的子序列不属于表情修饰符对应的编码;设定拼接条件包含位于候选子序列之后,且与候选子序列相邻的子序列与表情符修饰符相匹配。因此,为了检测候选子序列是否完整,可以从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且连续的第一数量个字符编码。
步骤S1620,若第一数量个字符编码与表情修饰符相匹配,则确定候选子序列不满足完整性条件,并将第一数量个字符编码作为待拼接子序列。
若第一数量个字符编码与表情修饰符相匹配,则表明候选子序列不满足完整性条件,且第一数量个字符编码为设定表情修饰符对应的编码,满足设定拼接条件,因此,可以将第一编码数量个字符作为待拼接子序列。
步骤S1630,将待拼接子序列拼接在候选子序列之后,以对候选子序列进行更新,直至更新后的候选子序列满足完整性条件。
将待拼接子序列拼接在候选子序列之后,得到更新后的候选子序列,并返回至步骤S1610进行循环,直至更新后的候选子序列满足完整性条件。例如,在UTF-16编码方式下,假设表情修饰符对应的编码为“\uFE0F”,则将候选子序列的下一个字符编码与“\uFE0F”进行比较,若匹配,则将下一个字符编码拼接在候选子序列之后,并返回至步骤S1610进行循环。
需要说明的是,图16所示的步骤S210-步骤S220、步骤S240的具体实现细节可以参照图2所示的步骤S210-步骤S220、步骤S240,图16所示的步骤S910-步骤S920、步骤S940的具体实现细节可以参照图9所示的步骤S910-步骤S920、步骤S940,此处不再赘述。
在图16所示的实施例中,根据表情修饰符来检测候选子序列是否完整,并在候选子序列后面连接有表情修饰符对应的子序列的条件下,将子序列与候选子序列进行拼接,从而能够检测到携带有表情修饰的表情符,提升表情符检测准确性。
在一示例性实施例中,参见图17,图17是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图17所示,该方法包括步骤S210-步骤S220、步骤S910-步骤S920、步骤S1610-步骤S1620、步骤S1710-步骤S1740、步骤S1630、步骤S940,以及步骤S240,其中,步骤S1710-步骤S1750的详细介绍如下:
步骤S1710,若第一数量个字符编码与表情修饰符不匹配,则从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且连续的第二数量个字符编码;其中,第二数量为设定的表情连接符对应的编码中包含的字符编码数量。
表情连接符用于将单表情符进行连接,具体为哪一字符以及对应的码点可以根据实际需要灵活设置,其对应的编码中包含的字符编码的数量记为第二数量。
完整性编码条件包含:位于候选子序列之后,且与候选子序列相邻的子序列即不属于表情修饰符对应的编码,也不属于表情连接符对应的编码;设定拼接条件包含位于候选子序列之后,且与候选子序列相邻的子序列与表情符修饰符相匹配,或者,与表情符连接符和单表情符相匹配。
因此,在第一数量个字符编码与表情修饰符不匹配的条件下,还需要从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且连续的第二数量个字符编码,以判断候选子序列之后是有连接有表情连接符对应的编码。
步骤S1720,若第二数量个字符编码与表情连接符相匹配,则从字符编码序列中,查找位于第二数量个字符编码后一位的待拼接字符编码。
若第二数量个字符编码与表情连接符相匹配,则表明在表情连接符后面,还可能连接有单表情符编码,因此,将位于第二数量个字符编码后一位的字符编码作为待拼接字符编码。
可选的,若第二数量个字符编码与设定表情连接符不匹配,则表明候选子序列满足完整性条件,因此,结束。
步骤S1730、从字符编码序列中,提取连续的、且以待拼接字符编码为起点的至少一个字符编码作为待拼接字符编码对应的表情符编码。
从字符编码序列中,获取待拼接字符编码对应的表情符编码,其中,其具体获取方式与从字符编码序列中获取目标字符编码对应的表情符编码类似,例如,可以先判断待拼接字符编码与表情符对应的设定编码范围是否相匹配,若是,则从字符编码序列中,提取以待拼接字符编码为起点的至少一个连续的字符编码作为待拼接字符编码对应的表情符编码,若否,则可以结束循环,将候选子序列作为目标子序列。
可选的,若未提取到待拼接字符编码对应的表情符编码,则可以结束循环,将候选子序列作为目标子序列。
步骤S1740,对第二数量个字符编码以及待拼接字符编码对应的表情符编码进行拼接,得到待拼接子序列。
在获取到第二数量个字符编码以及待拼接字符编码对应的表情符编码后,表明满足设定拼接条件,因此,将第二数量个字符编码以及待拼接字符编码对应的表情符编码作为待拼接子序列,并拼接在候选子序列之后,然后,返回至步骤S1610进行循环,直至候选子序列满足完整性条件。例如,在UTF-16编码方式下,假设表情修饰符对应的编码为“\uFE0F”,表情连接符对应的编码为“\u200D”,则将候选子序列的下一个字符编码与“\uFE0F”进行比较,若与“\uFE0F”不匹配,则将下一个字符编码与“\u200D”进行比较,若与“\u200D”不匹配,则结束,若与“\u200D”匹配,则将“\u200D”的下一个字符编码作为待拼接字符编码,并获取待拼接字符编码对应的表情符编码,将“\u200D”以及待拼接字符编码对应的表情符编码拼接在候选子序列之后,并返回至步骤S1610进行循环。
需要说明的是,图17所示的步骤S210-步骤S220、步骤S240的具体实现细节可以参照图2所示的步骤S210-步骤S220、步骤S240,图17所示的步骤S910-步骤S920、步骤S940的具体实现细节可以参照图9所示的步骤S910-步骤S920、步骤S940,图17所示的步骤S1610-步骤S1630的具体实现细节可以参照图16所示的步骤S1610-步骤S1630,此处不再赘述。
在图17所示的实施例中,根据表情修饰符来检测候选子序列是否完整,并将候选子序列后面连接的表情连接符的编码和表情符编码拼接在候选子序列之后,从而能够检测到连接类表情符,提升表情符检测准确性。
在一示例性实施例中,参见图18,图18是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图18所示,该方法包括步骤S210-步骤S230,以及步骤S1810-步骤S1820,其中,步骤S1810-步骤S1820的详细介绍如下:
步骤S1810,从应用程序中,获取表情符标识信息与表情图之间的映射数据。
表情符标识信息用于唯一标识表情符,其包含表情符编码、表情符对应的字符序列中的至少一种。表情图是指用于表征表情符的图片。
表情符标识信息与表情图之间的映射数据用于解码表情符,为了保障不同操作系统、不同应用环境中,同一应用程序中解码出的表情图是统一的,映射数据被部署在应用程序中。可选的,映射数据可以打包至用于程序的安装包中,从而在应用程序的安装包中,将字符解码算法部署在应用程序中;或者,可以在应用程序安装后的首次或每次启动过程中,检测应用程序中是否包含映射数据,若不包含,则从对应的服务器中下载该映射数据并部署在应用程序中,这样,不仅可以减小应用程序的安装包的大小,并且,在映射数据有更新的情况下,服务器可以通知应用程序下载更新后的映射数据,使得映射数据的更新无需依赖应用程序的版本更新。并且,在表情图更新后,无需更新解码算法,只需更新映射数据。
可选的,映射数据可以体现为哈希表、文字描述等形式。映射数据中,不同类型的表情符对应的映射关系,可以按照其对应的类型进行分类,从而便于后续表情符的更新。
步骤S1820,从映射数据中,查找与目标子序列相匹配的表情图。
为了查找到目标子序列对应的表情图,可以将目标子序列与映射数据中包含的表情符标识信息进行比对,从而查找到与目标子序列相匹配的表情符标识信息,并将该表情符标识信息对应的表情图作为目标子序列对应的表情图。
可选的,映射数据中可以包含表情符编码和表情图之间的映射子数据,以及表情符对应的字符序列与表情图之间的映射子数据,在查找表情图的过程中,可以从这两种映射子数据中,筛选出目标表情符类型对应的映射子数据,以从筛选出的映射子数据中,查找与目标子序列相匹配的表情图。例如,若目标表情符类型为字符序列表情符,则从表情符对应的字符序列与表情图之间的映射子数据中,查找与目标子序列相匹配的表情图;若目标表情符类型为基本类表情符,则从表情符编码和表情图之间的映射子数据,查找与目标子序列相匹配的表情图。
可选的,在查找出目标子序列对应的表情图后,还可以在目标子序列对应的显示位置中显示查找出的表情图。
需要说明的是,图18所示的步骤S210-步骤S230的具体实现细节可以参照图2所示的步骤S220-步骤S230,此处不再赘述。
相关技术中,应用程序被部署在不同应用平台后,由于不同应用平台中,操作系统的类型、版本等不同,同一表情符标识信息对应的表情图不一致,例如,参见图10所示,A平台中的“破涕为笑”表情符发送至B平台后,显示的“破涕为笑”表情符与A平台中的不一致;在图18所示的实施例中,表情符标识信息与表情图之间的映射数据部署在应用程序中,使得不同应用平台中同一应用程序解码显示出的表情图是统一的,例如,参见图10所示,C平台中的“破涕为笑”表情符发送至D平台后,所显示的“破涕为笑”表情符与C平台中的一致。
在一示例性实施例中,参见图19,图19是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图19所示,该方法包括步骤S210-步骤S230、步骤S1910-步骤S1920,以及步骤S1820,其中,步骤S1910-步骤S1920的详细介绍如下:
步骤S1910,从设定存储区域中查找与目标子序列相匹配的表情图;其中,设定存储区域中包含历史解码过程中查找到的表情符标识信息与表情图之间的映射关系。
为了提升表情图查找效率,设置了设定存储区域,用于存储历史解码过程中查找到的表情符标识信息与表情图之间的映射关系。设定存储区域可以是缓存区域,例如,LruCache(Least Recently Used Cache,最近最少使用缓存)。为了进一步提升表情图查找效率,可以从历史解码过程中查找到的表情符标识信息与表情图之间的映射关系中,按照所对应的解码时间与当前之间时间的时差由小到大的顺序,提取出设定数量个表情符标识信息以及其对应的表情图,并存储至设定存储区域,也就是说,设定存储区域中存储的是最近解码出的设定数量个表情符标识信息以及其对应的表情图;或者,还可以将历史解码过程中,解码次数大于设定数量阈值的表情符标识信息以及其对应的表情图存储至设定存储区域中,也就是说,设定存储区域中存储的是解码频率比较高的表情符标识信息以及其对应的表情图。
因此,在得到目标子序列后,可以先从设定存储区域中查找与目标子序列相匹配的表情图。
步骤S1920,若从设定存储区域中未查找到与目标子序列相匹配的表情图,则获取映射数据。
若从设定存储区域中,未查找到与目标子序列相匹配的表情图,则再从应用程序中获取映射数据,以从映射数据中查找与目标子序列相匹配的表情图。
可选的,在查找出目标子序列对应的表情图中,还可以将目标子序列以及对应的表情图添加至设定存储区域中。
需要说明的是,图19所示的步骤S210-步骤S230的具体实现细节可以参照图2所示的步骤S210-步骤S230,图19所示的步骤S1820的具体实现细节可以参照图18所示的步骤S1820,此处不再赘述。
在图19所示的实施例中,设定存储区域中存储有历史解码过程中查找到的表情符标识信息与表情图之间的映射关系,在查找目标子序列对应的表情图的过程中,先从设定存储区域中查找目标子序列对应的表情图,若不存在,再从映射数据中查找目标子序列对应的表情图,可以表情图查找效率。
在一示例性实施例中,参见图20,图20是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图20所示,在映射数据中包含表情符对应的字符序列与表情图之间的映射子数据的条件下,该方法包括步骤S210-步骤S230、步骤S1810,以及步骤S2010-步骤S2020,其中,步骤S2010-步骤S2020的详细介绍如下:
步骤S2010,对目标子序列进行解码,得到目标子序列对应的字符序列。
表情符标识信息可以是表情符对应的字符序列,映射数据中可以包含表情符对应的字符序列与表情图之间的映射子数据,可选的,该映射子数据可以表现为哈希表、文字描述等形式。
在此条件下,在得到目标子序列之后,可以对目标子序列进行解码,得到目标子序列对应的字符序列。
可选的,在步骤S2010之前,还可以判断目标表情符类型是否对应于字符序列表情符,若是,执行步骤S2010。
步骤S2020,从表情符对应的字符序列与表情图之间的映射子数据中,查找与目标子序列对应的字符序列相匹配的表情图。
在得到目标子序列对应的字符序列后,从表情符对应的字符序列与表情图之间的映射子数据中,查找与目标子序列对应的字符序列相匹配的字符序列,得到与目标子序列对应的字符序列相匹配的表情图。
需要说明的是,图20所示的步骤S210-步骤S230的具体实现细节可以参照图2所示的步骤S210-步骤S230,图20所示的步骤S1810的具体实现细节可以参照图18所示的步骤S1810,此处不再赘述。
在图20所示的实施例中,设置表情符对应的字符序列与表情图之间的映射子数据,从而可以实现字符序列类表情符的检测,提升表情符检测的准确性。
在一示例性实施例中,参见图21,图21是本申请的另一示例性实施例示出的表情符检测方法的流程图。该方法可以应用于图1所示的实施环境,其可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图21所示,在映射数据中包含表情符编码与表情图标识之间的映射关系,以及表情图集合的条件下,该方法包括步骤S210-步骤S230、步骤S1810,以及步骤S2110-步骤S2120,其中,步骤S2110-步骤S2120的详细介绍如下:
步骤S2110,从表情符编码与表情图标识之间的映射关系中,查找与目标子序列相匹配的目标表情符编码以及目标表情符编码对应的目标表情图标识。
表情符标识信息可以是表情符编码,映射数据中可以包含表情符编码与表情图之间的映射,可选的,为了提升查找效率,映射数据中可以包含表情符编码与表情图标识之间的映射关系,以及表情图集合,其中,表情图标识用于唯一标识表情图,其可以是表情图的名称。可选的,表情符编码与表情图标识之间的映射关系可以表现为哈希表,哈希表中以key-value(键值对)的方式存储映射关系,其中,key为表情符编码,value为表情图标识,表情图标识可以是键值对在哈希表中的位置。可选的,可以创建二维数组,将表情符编码和表情图标识添加在二维数组中,其中,表情符标识为其在二维数组中的位置坐标,并以key为表情符编码,value为表情图标识创建哈希表。
在此条件下,可从表情符编码与表情图标识之间的映射关系中,查找与目标子序列相匹配的目标表情符编码以及目标表情符编码对应的目标表情图标识。
可选的,目标子序列以及映射数据中包含的表情符编码所对应的编码方式可以不同,在此条件下,可以先将目标子序列转换为映射数据中包含的表情符编码所对应的编码方式,再从映射数据中查找转换后的目标子序列对应的目标表情图标识。在步骤S2110之前,还可以判断目标表情符类型是否为字符序列表情符,若否,则执行步骤S2110。
步骤S2120,从表情图集合中,查找与目标表情图标识相匹配的表情图。
从表情图集合中,查找表情图标识为目标表情图标识的表情图,得到目标子序列对应的表情图。
需要说明的是,图21所示的步骤S210-步骤S230的具体实现细节可以参照图2所示的步骤S210-步骤S230,图21所示的步骤S1810的具体实现细节可以参照图18所示的步骤S1810,此处不再赘述。
在图21所示的实施例中,将表情图与映射关系解耦,可以提升表情图查找效率。
在一示例性实施例中,以编码方式为UTF-16编码为例进行说明,参见图22所示,图22为表情符检测方法的流程图,该方法可以由图1所示的实施环境中的终端设备110执行,也可以由图1所示的实施环境中的服务器120执行,或者,也可以由图1所示的实施环境中的终端设备110和服务器120共同执行。
如图22所示,表情符检测方法包括步骤S2201-步骤S2217,详细介绍如下:
步骤S2201,获取应用程序中的字符编码序列,并通过应用程序中的字符编码序列对字符编码序列中包含的多个代码单元依次进行解码。
步骤S2202,判断解码位置是否已到结束位置,若是,转步骤S2217;若否,转步骤S2203。
步骤S2203,根据解码位置,从字符编码序列中提取一个代码单元。
从字符编码序列中提取出位于解码位置处的代码单元。
步骤S2204,判断该代码单元是否在“\u00A9”~“\u3299”内,若是,转步骤S2213,若否,转步骤S2205。
若提取出的代码单元在“\u00A9”~“\u3299”内,则表明该代码单元为第一类基本类表情符,转步骤S2213,将该代码单元作为对应的表情符编码,
若该代码单元没有处于“\u00A9”~“\u3299”内,则转步骤S2204,继续判断。
步骤S2205,判断该代码单元是否在“\uD83C”~“\uD83E”内,若是,转步骤S2206;若否,转步骤S2209。
由于第二基本类表情符、旗帜类表情符以及附加旗帜类表情符的表情符编码中的第一个代码单元均处于“\uD83C”~“\uD83E”内,因此,将提取出的代码单元与“\uD83C”~“\uD83E”进行比对,若该代码单元在“\uD83C”~“\uD83E”内,则转步骤S2206,继续判断该代码单元对应于第二基本类表情符、旗帜类表情符,还是附加旗帜类表情符。
若该代码单元没有在“\uD83C”~“\uD83E”内,则表明该代码单元不是第二基本类表情符、旗帜类表情符以及附加旗帜类表情符对应的代码单元,因此,转步骤S2209,继续判断该代码单元是否为键盘字符类表情符对应的代码单元。
步骤S2206,判断该代码单元是否对应于旗帜类表情符;若是,转步骤S2213;若否,转步骤S2207。
在代码单元处于“\uD83C”~“\uD83E”的条件下,可以先判断该代码单元是否对应于旗帜类表情符。
在判断过程中,旗帜类表情符由两个地域指示符组成,每个地域指示符的编码范围为:“\uD83C \uDDE6” ~“\uD83C \uDDFF”,因此,可以判断该代码单元后的第1个代码单元是否属于“\uDDE6” ~“\uDDFF”,该代码单元后的第2个代码单元是否为“\uD83C”,该代码单元后的第3个代码单元是否属于“\uDDE6” ~“\uDDFF”,若判断结果均为是,则表明该代码单元对应于旗帜类表情符,因此,转步骤S2213,将该代码单元以及该代码单元后的第1-3个代码单元作为该代码单元对应的表情符编码。
步骤S2207,判断该代码单元是否对应于附加旗帜类表情符;若是,转步骤S2213,若否,转步骤S2208。
在该代码单元旗帜类表情符的条件下,需要继续判断该代码单元是否对应于附加旗帜类表情符。
在判断过程中,可以将以该代码单元所属字符编码为起点的连续7个字符编码与前述示例中的3种附加旗帜类表情符对应的表情符编码是否相匹配,若是,则转步骤S2213,将这连续7个字符编码作为该代码单元对应的表情符编码;若否,转步骤S2208。
步骤S2208,判断该代码单元是否对应于第二基本类表情符;若是,转步骤S2213,若否,转步骤S2209。
在该代码单元非附加旗帜类表情符的条件下,需要继续判断该代码单元是否对应于第二基本类表情符。
其中,第二基本类表情符的表情符编码中的第2个代码单元的编码范围为“\uDxxx”,因此,可以判断该代码单元的下一个代码对应是否与“\uDxxx”相匹配,即判断下一个代码单元是否以“D”开头,若是,则转步骤S2213,将该代码单元和下一个代码单元作为该代码单元对应的表情符编码。
步骤S2209,判断该代码单元是否处于键盘字符的编码范围,若是,转步骤S2210;若否,转步骤S2210。
键盘字符通常包含“0-9、、#”,分别对应的UTF-16编码为“\u0030”~“\u0039”、“\u002A”、“\u0023”,因此,判断该代码单元是否处于“\u0030”~“\u0039”、“\u002A”、“\u0023”,若是,转步骤S2210;若否,转步骤S2211。
步骤S2210,判断该代码单元是否对应于键盘类表情符,若是,转步骤S2213。
在该代码单元与键盘字符的编码范围相匹配的条件下,需要继续判断该代码单元是否对应于键盘类表情符。
在判断过程中,可以判断该代码单元后的第1、2个代码单元是否分别为“\uFE0F”、“\u20E3”,若是,则转步骤S2213,将该代码单元以及该代码单元后的第1、2个代码单元作为表情符编码。
可选的,若否,则可以将该代码单元的下一个代码单元作为解码位置,并转步骤S2202。
步骤S2211,判断该代码单元是否对应于字符序列表情符,若是,转步骤S2212。
在该代码单元没有处于键盘字符的编码范围的条件下,可以判断该代码单元是否对应于字符序列表情符,其中,字符序列表情符的格式为“[ 短文本 ]”,因此,先判断该代码单元是否为“[”的编码“\u005B”,若是,则从该代码单元后查找与该代码单元最近的“]”的编码“\u005D”,并转步骤S2213。
可选的,若该代码单元不是字符序列表情符,则可以将该代码单元的下一个代码单元作为解码位置,并转步骤S2202。
步骤S2212,从字符编码序列中,提取该代码单元对应的表情符编码作为目标子序列,并记录目标子序列的位置。
由于该代码单元对应于字符序列编码,因此,将以该代码单元为起点,“\u005D”为终点的代码单元序列作为表情符编码。
步骤S2213,从字符编码序列中,提取该代码单元对应的表情符编码,并将表情符编码作为候选子序列。
其中,提取该代码单元对应的表情符编码的具体方式以在前述介绍,此处不再赘述。
步骤S2214,判断候选子序列的下一个代码单元是否为表情连接符的编码或表情修饰符的编码,若否,转步骤S2215。
表情连接符的编码为“\u200D”,表情符修饰符的编码包含浅、中等浅、中等、中等深、深5种颜色深浅修饰符分别对应的编码、以及“\uFE0E”、 “\u FE0F”,因此,可以将候选子序列的下一个代码单元与“\u200D”或表情修饰符的编码进行比对,若均不匹配,则转步骤S2215。
若下一个代码单元为表情修饰符的编码,则将下一个代码单元拼接在候选子序列之后,得到更新后的候选子序列,并转步骤S2214进行循环;若下一个代码单元与“\u200D”相匹配,则获取“\u200D”的下一个代码单元所对应的表情符编码,并将“\u200D”和获取到的表情符编码拼接在候选子序列之后,并转步骤S2214进行循环。
步骤S2215,将候选子序列作为目标子序列,并记录目标子序列的位置。
步骤S2216,将目标子序列的下一个代码单元作为解码位置。
将目标子序列的下一个代码单元作为更新后的解码位置,以对字符编码序列中的代码单元进行解码。
步骤S2217,输出解码结果。
在解码位置为字符编码序列的末尾时,则可以输出解码结果,解码结果中可以包含解码得到的多个目标子序列,以及每个子序列在字符编码序列中的位置。
可选的,在得到解码结果后,还序列查找解码结果中包含的每个目标子序列对应的表情图,以将表情图显示在对应的位置;其中若目标子序列对应于字符序列表情符,则可以从Emoji Text Map中查找目标子序列对应的表情图,其中,Emoji Text Map包含表情符对应的字符序列以及表情符。
若目标子序列并非字符序列表情符,参见图23A所示,图23A为目标子序列的显示流程图,如图所示,包括步骤S2301-步骤S2305,详细介绍如下:
步骤S2301,从解码结果中获取目标子序列。
从解码结果中获取非字符序列表情符对应的目标子序列。
步骤S2302,判断指定缓存中是否存在与目标子序列相匹配的目标表情图,若是,转,若否,转步骤S2303。
指定缓存可以是LruCache 缓存,其中缓存有最近设定数量个(例如,300)解码出的表情图名称,以及表情图名称对应的表情符编码、表情图。
若从指定缓存中查找到目标子序列对应的目标表情图名称,则转步骤S;若从指定缓存中没有查找到目标子序列对应的目标表情图名称,则转步骤S2303。
步骤S2303,判断Emoji Image HashMap中是否存在与目标子序列相匹配的目标表情图名称,若是,转步骤S2304。
Emoji Image HashMap中包含表情符编码和表情图名称之间的映射关系,从EmojiImage HashMap中查找目标子序列对应的表情图名称,若查找到,则转步骤S2304。
其中,在步骤S2304之前,参见图23B所示,在应用程序启动后,可以获取表情图和表情符编码,并创建二维数组,二维数组中包含不同功能类型的表情符对应的分组,然后,将表情符编码按照对应的功能类型添加至分组中,以生成表情符编码为key,二维数组的位置坐标为value的Emoji Image HashMap,其中,二维数组的位置坐标作为对应表情图的表情图名称,并将表情图添加至表情图集合中。
步骤S2304,从表情图集合中查找目标表情图名称对应的表情图,并将查找出的表情图转换为位图。
可选的,表情图集合中包含表情图以及表情图的名称,从表情符集合中,可以查找出目标表情图名称对应的表情图,为了能够显示,将查找出的表情图转换为位图“Bitmap”。
其中,Emoji Image HashMap和Emoji Text Map均部署在应用程序中,在表情图发生更新时,只需更新这两个哈希表,无需更新字符解码算法,提升了解码效率。
步骤S2305,将表情图显示在文本中的对应位置。
可选的,可以创建ImageSpan,并基于ImageSpan将表情图显示在文本中的对应位置。该文本为字符编码序列所对应的文本,ImageSpan是一种在文本控件中插入图片的组件,可以 将一个 Drawable 对象或 Bitmap 对象插入到文本中,并指定图片的位置、大小、对齐方式等属性,通常用于实现富文本效果,将图片与文本混排。
需要说明的是,图22所示的步骤S2201-步骤S2208的具体过程已在前述实施例中详细介绍,此处不再赘述。
基于图22提供的表情符检测方法,能够检测出不同类型的表情符,并且,使得同一应用程序在不同应用平台中解码出的表情图一致,提升了表情符检测的准确性;特别对于聊天应用,能够使聊天双方显示的表情图一致,避免由于解码出的表情图不一致,导致情感或意图表达错误,造成沟通困扰的情况。
需要说明的是,前述实施例提供的表情符检测方法,在不冲突的情况下,可以互相结合。
参见图24,图24是本申请的一示例性实施例示出的表情符检测装置的框图。如图24所示,该装置包括:获取模块2401,配置为获取应用程序中包含的字符编码序列;其中,字符编码序列是对字符序列进行编码得到的;解码模块2402,配置为根据应用程序中包含的字符解码算法,对字符编码序列中包含的多个字符编码依次进行解码;提取模块2403,配置为在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从字符编码序列中,提取以目标字符编码为起点的目标子序列;检测模块2404,配置为根据目标子序列进行表情符检测处理。
在一示例性实施例中,基于前述方案,提取模块2403配置为:从字符编码序列中,提取以目标字符编码为起点的至少一个连续的字符编码作为目标字符编码对应的表情符编码;将目标字符编码对应的表情符编码作为候选子序列;若候选子序列不满足设定的完整性条件,则从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且满足设定拼接条件的待拼接子序列,并将待拼接子序列拼接在候选子序列之后,以对候选子序列进行更新,直至更新后的候选子序列满足完整性条件;将满足完整性条件的候选子序列作为目标子序列。
在一示例性实施例中,基于前述方案,在设定编码范围参数中包含多个起始编码范围以及每个起始编码范围对应的表情符类型的条件下,提取模块2403具体配置为:从设定编码范围参数中,查找与目标字符编码相匹配的目标起始编码范围,以及目标起始编码范围对应的目标表情符类型;若目标表情符类型对应的表情符编码为多字符编码,则从字符编码序列中,提取以目标字符编码为起点的多个连续的字符编码作为目标字符编码对应的表情符编码。
在一示例性实施例中,基于前述方案,提取模块2403具体配置为:获取目标表情符类型对应的编码特征参数;从字符编码序列中,提取以目标字符编码为起点的、且与编码特征参数相匹配的子序列。
在一示例性实施例中,基于前述方案,在编码特征参数中包含指定数量和编码区间参数的条件下,提取模块2403具体配置为:从字符编码序列中查找以目标字符编码为起点的、且连续的指定数量个字符编码;若指定数量个字符编码与编码区间参数相匹配,则提取指定数量个字符编码。
在一示例性实施例中,基于前述方案,在编码特征参数中包含设定的表情终止符的条件下,提取模块2403具体配置为:以目标字符编码为起点,将字符编码序列中包含的字符编码依次与表情终止符进行比对,直至查找出与表情终止符相匹配的结束字符编码;从字符编码序列中,提取以目标字符编码为起点,结束字符编码为终点的子序列。
在一示例性实施例中,基于前述方案,在每个字符编码包含至少一个代码单元,设定编码范围参数包含多个起始编码范围的条件下,解码模块2402具体配置为:若字符编码序列对应的编码方式为指定编码方式,则在解码过程中,将多个字符编码分别对应的第一个代码单元依次与多个起始编码范围进行比对;若任一字符编码中包含的第一个代码单元与任一起始编码范围相匹配,则将任一字符编码作为目标字符编码,并从字符编码序列中,提取以目标字符编码为起点的目标子序列。
在一示例性实施例中,基于前述方案,提取模块2403具体配置为:从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且连续的第一数量个字符编码;其中,第一数量为设定的表情修饰符对应的编码中包含的字符编码数量;若第一数量个字符编码与表情修饰符相匹配,则确定候选子序列不满足完整性条件,并将第一数量个字符编码作为待拼接子序列。
在一示例性实施例中,基于前述方案,提取模块2403还配置为:若第一数量个字符编码与表情修饰符不匹配,则从字符编码序列中,获取以候选子序列的下一个字符编码为起点、且连续的第二数量个字符编码;其中,第二数量为设定的表情连接符对应的编码中包含的字符编码数量;若第二数量个字符编码与表情连接符相匹配,则从字符编码序列中,查找位于第二数量个字符编码后一位的待拼接字符编码;从字符编码序列中,提取连续的、且以待拼接字符编码为起点的至少一个字符编码作为待拼接字符编码对应的表情符编码;对第二数量个字符编码以及待拼接字符编码对应的表情符编码进行拼接,得到待拼接子序列。
在一示例性实施例中,基于前述方案,检测模块2404具体配置为:从应用程序中,获取表情符标识信息与表情图之间的映射数据;从映射数据中,查找与目标子序列相匹配的表情图。
在一示例性实施例中,基于前述方案,检测模块2404具体配置为:从设定存储区域中查找与目标子序列相匹配的表情图;其中,设定存储区域中包含历史解码过程中查找到的表情符标识信息与表情图之间的映射关系;若从设定存储区域中未查找到与目标子序列相匹配的表情图,则获取映射数据。
在一示例性实施例中,基于前述方案,在映射数据中包含表情符对应的字符序列与表情图之间的映射子数据的条件下,检测模块2404具体配置为:对目标子序列进行解码,得到目标子序列对应的字符序列;从表情符对应的字符序列与表情图之间的映射子数据中,查找与目标子序列对应的字符序列相匹配的表情图。
在一示例性实施例中,基于前述方案,在映射数据中包含表情符编码与表情图标识之间的映射关系,以及表情图集合的条件下,检测模块2404具体配置为:从表情符编码与表情图标识之间的映射关系中,查找与目标子序列相匹配的目标表情符编码以及目标表情符编码对应的目标表情图标识;从表情图集合中,查找与目标表情图标识相匹配的表情图。
需要说明的是,上述实施例所提供的表情符检测装置与上述实施例所提供的表情符检测方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个计算机程序,当一个或多个计算机程序被一个或多个处理器执行时,使得电子设备实现上述各个实施例中提供的表情符检测方法。
图25示出了适于实现本申请实施例电子设备的计算机系统的结构示意图。
需要说明的是,图25示出的电子设备的计算机系统2500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图25所示,计算机系统2500包括中央处理单元(Central Processing Unit,CPU)2501,其可以根据存储在只读存储器(Read-Only Memory,ROM)2502中的计算机程序或者从储存部分2508加载到随机访问存储器(Random Access Memory,RAM)2503中的计算机程序而执行各种适当的动作和处理,例如执行上述实施例中的表情符检测方法。在RAM2503中,还存储有系统操作所需的各种计算机程序和数据。CPU 2501、ROM 2502以及RAM2503通过总线2504彼此相连。输入/输出(Input /Output,I/O)接口2503也连接至总线2504。
在一些实施例中,以下部件连接至I/O接口2503:包括键盘、鼠标等的输入部分2506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid CrystalDisplay,LCD)等以及扬声器等的输出部分2507;包括硬盘等的储存部分2508;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分2509。通信部分2509经由诸如因特网的网络执行通信处理。驱动器2510也根据需要连接至I/O接口2503。可拆卸介质2511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2510上,以便于从其上读出的计算机程序根据需要被安装入储存部分2508。
特别地,根据本申请的实施例,实现表情符检测方法的计算机程序可以承载在计算机可读介质上,该计算机程序可以通过通信部分2509从网络上被下载和安装,和/或从可拆卸介质2511被安装。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储计算机程序的有形介质,该计算机程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序,这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读介质包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机程序的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被电子设备的处理器执行时,使电子设备实现如前的表情符检测方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,计算机程序被处理器执行时实现上述各个实施例中提供的表情符检测方法。其中,该计算机程序可以存储在计算机可读存储介质中。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请实施方案,本领域普通技术人员根据本申请主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (17)
1.一种表情符检测方法,其特征在于,所述方法包括:
获取应用程序中包含的字符编码序列;其中,所述字符编码序列是对字符序列进行编码得到的;
根据所述应用程序中包含的字符解码算法,对所述字符编码序列中包含的多个字符编码依次进行解码;
在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从所述字符编码序列中,提取以所述目标字符编码为起点的目标子序列;
根据所述目标子序列进行表情符检测处理。
2.如权利要求1所述的方法,其特征在于,所述从所述字符编码序列中,提取以所述目标字符编码为起点的目标子序列,包括:
从所述字符编码序列中,提取以所述目标字符编码为起点的至少一个连续的字符编码作为所述目标字符编码对应的表情符编码;
将所述目标字符编码对应的表情符编码作为候选子序列;
若所述候选子序列不满足设定的完整性条件,则从所述字符编码序列中,获取以所述候选子序列的下一个字符编码为起点、且满足设定拼接条件的待拼接子序列,并将所述待拼接子序列拼接在所述候选子序列之后,以对所述候选子序列进行更新,直至更新后的候选子序列满足所述完整性条件;
将满足所述完整性条件的候选子序列作为所述目标子序列。
3.如权利要求2所述的方法,其特征在于,所述设定编码范围参数中包含多个起始编码范围以及每个起始编码范围对应的表情符类型;
所述从所述字符编码序列中,提取以所述目标字符编码为起点的至少一个连续的字符编码作为所述目标字符编码对应的表情符编码,包括:
从所述设定编码范围参数中,查找与所述目标字符编码相匹配的目标起始编码范围,以及所述目标起始编码范围对应的目标表情符类型;
若所述目标表情符类型对应的表情符编码为多字符编码,则从所述字符编码序列中,提取以所述目标字符编码为起点的多个连续的字符编码作为所述目标字符编码对应的表情符编码。
4.如权利要求3所述的方法,其特征在于,所述从所述字符编码序列中,提取以所述目标字符编码为起点的多个连续的字符编码作为所述目标字符编码对应的表情符编码,包括:
获取所述目标表情符类型对应的编码特征参数;
从所述字符编码序列中,提取以所述目标字符编码为起点的、且与所述编码特征参数相匹配的子序列。
5.如权利要求4所述的方法,其特征在于,所述编码特征参数中包含指定数量和编码区间参数;
所述从所述字符编码序列中,提取以所述目标字符编码为起点的、且与所述编码特征参数相匹配的子序列,包括:
从所述字符编码序列中查找以所述目标字符编码为起点的、且连续的指定数量个字符编码;
若所述指定数量个字符编码与所述编码区间参数相匹配,则提取所述指定数量个字符编码。
6.如权利要求4所述的方法,其特征在于,所述编码特征参数中包含设定的表情终止符;
所述从所述字符编码序列中,提取以所述目标字符编码为起点的、且与所述编码特征参数相匹配的子序列,包括:
以所述目标字符编码为起点,将所述字符编码序列中包含的字符编码依次与所述表情终止符进行比对,直至查找出与所述表情终止符相匹配的结束字符编码;
从所述字符编码序列中,提取以所述目标字符编码为起点,所述结束字符编码为终点的子序列。
7.如权利要求2所述的方法,其特征在于,所述若所述候选子序列不满足设定的完整性条件,则从所述字符编码序列中,获取以所述候选子序列的下一个字符编码为起点、且满足设定拼接条件的待拼接子序列,包括:
从所述字符编码序列中,获取以所述候选子序列的下一个字符编码为起点、且连续的第一数量个字符编码;其中,所述第一数量为设定的表情修饰符对应的编码中包含的字符编码数量;
若所述第一数量个字符编码与所述表情修饰符相匹配,则确定所述候选子序列不满足所述完整性条件,并将所述第一数量个字符编码作为所述待拼接子序列。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
若所述第一数量个字符编码与所述表情修饰符不匹配,则从所述字符编码序列中,获取以所述候选子序列的下一个字符编码为起点、且连续的第二数量个字符编码;其中,所述第二数量为设定的表情连接符对应的编码中包含的字符编码数量;
若所述第二数量个字符编码与所述表情连接符相匹配,则从所述字符编码序列中,查找位于所述第二数量个字符编码后一位的待拼接字符编码;
从所述字符编码序列中,提取连续的、且以所述待拼接字符编码为起点的至少一个字符编码作为所述待拼接字符编码对应的表情符编码;
对所述第二数量个字符编码以及所述待拼接字符编码对应的表情符编码进行拼接,得到所述待拼接子序列。
9.如权利要求1所述的方法,其特征在于,每个字符编码包含至少一个代码单元,所述设定编码范围参数包含多个起始编码范围;
所述在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从所述字符编码序列中,提取以所述目标字符编码为起点的目标子序列,包括:
若所述字符编码序列对应的编码方式为指定编码方式,则在解码过程中,将所述多个字符编码分别对应的第一个代码单元依次与所述多个起始编码范围进行比对;
若任一字符编码中包含的第一个代码单元与任一起始编码范围相匹配,则将所述任一字符编码作为所述目标字符编码,并从所述字符编码序列中,提取以所述目标字符编码为起点的目标子序列。
10.如权利要求1所述的方法,其特征在于,所述根据所述目标子序列进行表情符检测处理,包括:
从所述应用程序中,获取表情符标识信息与表情图之间的映射数据;
从所述映射数据中,查找与所述目标子序列相匹配的表情图。
11.如权利要求10所述的方法,其特征在于,所述从所述应用程序中,获取表情符标识信息与表情图之间的映射数据,包括:
从设定存储区域中查找与所述目标子序列相匹配的表情图;其中,所述设定存储区域中包含历史解码过程中查找到的表情符标识信息与表情图之间的映射关系;
若从所述设定存储区域中未查找到与所述目标子序列相匹配的表情图,则获取所述映射数据。
12.如权利要求10所述的方法,其特征在于,所述映射数据中包含表情符对应的字符序列与表情图之间的映射子数据;所述从所述映射数据中,查找与所述目标子序列相匹配的表情图,包括:
对所述目标子序列进行解码,得到所述目标子序列对应的字符序列;
从所述表情符对应的字符序列与表情图之间的映射子数据中,查找与所述目标子序列对应的字符序列相匹配的表情图。
13.如权利要求10所述的方法,其特征在于,所述映射数据中包含表情符编码与表情图标识之间的映射关系,以及表情图集合;
所述从所述映射数据中,查找与所述目标子序列相匹配的表情图,包括:
从所述表情符编码与表情图标识之间的映射关系中,查找与所述目标子序列相匹配的目标表情符编码以及所述目标表情符编码对应的目标表情图标识;
从所述表情图集合中,查找与所述目标表情图标识相匹配的表情图。
14.一种表情符检测装置,其特征在于,所述装置包括:
获取模块,配置为获取应用程序中包含的字符编码序列;其中,所述字符编码序列是对字符序列进行编码得到的;
解码模块,配置为根据所述应用程序中包含的字符解码算法,对所述字符编码序列中包含的多个字符编码依次进行解码;
提取模块,配置为在解码过程中,若检测到与表情符对应的设定编码范围参数相匹配的目标字符编码,则从所述字符编码序列中,提取以所述目标字符编码为起点的目标子序列;
检测模块,配置为根据所述目标子序列进行表情符检测处理。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现权利要求1-13中的任一项所述的表情符检测方法。
16.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述电子设备实现权利要求1-13中的任一项所述的表情符检测方法。
17.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-13中的任一项所述的表情符检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310996715.6A CN116796705B (zh) | 2023-08-09 | 2023-08-09 | 表情符检测方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310996715.6A CN116796705B (zh) | 2023-08-09 | 2023-08-09 | 表情符检测方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116796705A true CN116796705A (zh) | 2023-09-22 |
CN116796705B CN116796705B (zh) | 2024-03-12 |
Family
ID=88046099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310996715.6A Active CN116796705B (zh) | 2023-08-09 | 2023-08-09 | 表情符检测方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116796705B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104076944A (zh) * | 2014-06-06 | 2014-10-01 | 北京搜狗科技发展有限公司 | 一种聊天表情输入的方法和装置 |
CN110765097A (zh) * | 2018-07-27 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 数据处理方法及装置、计算机存储介质、电子设备 |
US20210248598A1 (en) * | 2020-02-07 | 2021-08-12 | Emoji ID, LLC | Generating emoji sequence identifications to identify wallet addresses for blockchain wallets |
CN114638218A (zh) * | 2022-03-23 | 2022-06-17 | 北京字跳网络技术有限公司 | 符号处理方法、装置、电子设备和存储介质 |
CN115686229A (zh) * | 2021-07-29 | 2023-02-03 | 腾讯科技(深圳)有限公司 | 表情输入方法、装置及计算机程序存储介质 |
-
2023
- 2023-08-09 CN CN202310996715.6A patent/CN116796705B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104076944A (zh) * | 2014-06-06 | 2014-10-01 | 北京搜狗科技发展有限公司 | 一种聊天表情输入的方法和装置 |
CN110765097A (zh) * | 2018-07-27 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 数据处理方法及装置、计算机存储介质、电子设备 |
US20210248598A1 (en) * | 2020-02-07 | 2021-08-12 | Emoji ID, LLC | Generating emoji sequence identifications to identify wallet addresses for blockchain wallets |
CN115686229A (zh) * | 2021-07-29 | 2023-02-03 | 腾讯科技(深圳)有限公司 | 表情输入方法、装置及计算机程序存储介质 |
CN114638218A (zh) * | 2022-03-23 | 2022-06-17 | 北京字跳网络技术有限公司 | 符号处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116796705B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10685186B2 (en) | Semantic understanding based emoji input method and device | |
US11055373B2 (en) | Method and apparatus for generating information | |
CN112527291A (zh) | 网页生成方法、装置、电子设备及存储介质 | |
CN111368697A (zh) | 一种信息识别方法和装置 | |
CN115630618A (zh) | 一种pdf文档的智能场景化编辑方法、系统、设备及介质 | |
CN111555960A (zh) | 信息生成的方法 | |
WO2019149065A1 (zh) | 绘文字兼容显示方法、装置、终端及计算机可读存储介质 | |
CN116796705B (zh) | 表情符检测方法及装置、电子设备、存储介质 | |
CN110505289B (zh) | 文件下载方法及装置、计算机可读介质、无线通信设备 | |
CN113779316A (zh) | 信息生成方法、装置、电子设备和计算机可读介质 | |
CN113946648B (zh) | 结构化信息生成方法、装置、电子设备和介质 | |
CN110598068A (zh) | 全局标识生成方法和装置 | |
CN112487765B (zh) | 一种生成通知文本的方法和装置 | |
CN112528674B (zh) | 文本处理方法、模型的训练方法、装置、设备及存储介质 | |
CN115202731A (zh) | 代码检测方法和代码检测装置、计算机设备、存储介质 | |
CN113868479A (zh) | 对于业务数据的处理方法及装置 | |
CN109426357B (zh) | 信息输入方法和装置 | |
CN109426358B (zh) | 信息输入方法和装置 | |
CN110543243A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115129899B (zh) | 文档标签信息生成方法、装置、设备、介质和程序产品 | |
CN115002100B (zh) | 文件传输方法、装置、电子设备及存储介质 | |
CN110880999B (zh) | 一种电子红包识别方法、装置及终端设备 | |
CN113033150A (zh) | 一种程序文本的编码处理方法、装置以及存储介质 | |
CN110881002B (zh) | 一种电子红包监控方法、装置及终端设备 | |
CN109426356B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40092655 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |