一种会话文本中表情解析的方法和系统的制作方法

文档序号:6372635阅读:181来源:国知局
专利名称:一种会话文本中表情解析的方法和系统的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种会话文本中表情解析的方法和系统。
背景技术
表情功能为现在大部分即时聊天应用中常见功能,即在聊天过程中用户可以收发表情图片,实际传输时使用对应的表情代码来代替图片本身,聊天应用接收到这些表情代码后,再做相应的解析来显示对应的表情图片。使用此种方案要比直接发送表情图片本身节省网络流量。但是,使用该技术,需要从会话文本中解析出表情代码以显示表情图片。现有技术中,通过字符串搜索函数,在会话文字中逐一搜索每个表情代码,确定匹配的表情代码。该种方法,需要对每个表情代码做整个会话文本的匹配检索,解析效率低。

发明内容
本发明提供了一种会话文本中表情解析的方法和系统,以解决会话文本中表情解析效率低下的问题。本发明公开了一种会话文本中表情解析的方法,所述方法包括步骤1,比较会话文本中字符与各个表情代码的第一个符号,对于与第一个符号匹配的字符执行步骤2 ;步骤2,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。较佳的,所述步骤I前还包括步骤21,依据表情代码构建匹配树的集合,集合中各个匹配树的根节点为表情代码的第一个符号,匹配树中父节点的子节点为父节点对应的符号在表情代码中的下一个符号;所述步骤2具体包括步骤22,依据以匹配的符号为根节点的匹配树,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。较佳的,所述步骤22具体包括步骤31,以与表情代码第一个符号匹配的字符在会话文本中的下一个字符为当前字符;步骤32,判断当前字符与匹配树中匹配的节点的子节点是否匹配,如果匹配,则执行步骤33,否则,执行步骤35;步骤33,判断匹配的节点是否为叶子节点,如果是,则执行步骤34,否则,取当前字符在会话文本中的下一个字符为当前字符,执行步骤32 ;步骤34,获取匹配的表情代码对应的表情图片,以供显示;步骤35,确定匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号不匹配。较佳的,所述匹配树的每个叶节点包含该叶节点对应的表情的表情图片的编号;该叶节点对应的表情为从根节点到该叶节点的路径中各个节点对应的符号组成的表情代码对应的表情;所述获取匹配的表情代码对应的表情图片具体包括按匹配的叶节点包含的表情图片的编号获取表情图片。 较佳的,所述步骤I具体包括步骤51,以会话文本的第一个字符为当前字符;步骤52,判断当前字符与各个表情代码的第一个符号是否匹配,如果匹配,执行步骤2后执行步骤53,如果不匹配,执行步骤55 ; 步骤53,确定当前字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果不匹配,执行步骤55,如果匹配,执行步骤54 ;步骤54,以后续字符中与表情代码匹配的最后一个字符在会话文本中的下一个字符为当前字符,执行步骤52 ;步骤55,以当前字符的在会话文本中的下一个字符为当前字符,执行步骤52。本发明还公开了一种会话文本中表情解析的系统,所述系统包括第一匹配模块,用于比较会话文本中字符与各个表情代码的第一个符号,对于与第一个符号匹配的字符调用第二匹配模块。第二匹配模块,用于判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。较佳的,所述系统还包括构建模块,用于依据表情代码构建匹配树的集合,集合中各个匹配树的根节点为表情代码的第一个符号,匹配树中父节点的子节点为父节点对应的符号在表情代码中的下一个符号;所述第二匹配模块具体用于依据以匹配的符号为根节点的匹配树,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。较佳的,所述第二匹配模块具体包括第二初始化单元,用于以与表情代码第一个符号匹配的字符在会话文本中的下一个字符为当前字符,调用子节点判断单元;子节点判断单元,用于判断当前字符与匹配树中匹配的节点的子节点是否匹配,如果匹配,则调用叶子节点判断单元,否则,调用匹配失败单元;叶子节点判断单元,用于判断匹配的节点是否为叶子节点,如果是,则调用匹配成功单元,否则,取当前字符在会话文本中的下一个字符为当前字符,调用子节点判断单元;匹配成功单元,用于获取匹配的表情代码对应的表情图片,以供显示;匹配失败单元,用于确定匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号不匹配。较佳的,所述构建模块还用于在匹配树的每个叶节点中保存该叶节点对应的表情的表情图片的编号;该叶节点对应的表情为从根节点到该叶节点的路径中各个节点对应的符号组成的表情代码对应的表情;所述第二匹配模块在获取匹配的表情代码对应的表情图片时具体用于按匹配的叶节点包含的表情图片的编号获取表情图片。较佳的,所述第一匹配模块具体包括第一初始化单元,用于以会话文本的第一个字符为当前字符,调用第一字符判断单元;第一字符判断单元,用于判断当前字符与各个表情代码的第一个符号是否匹配,如果匹配,调用第二匹配模块后调用后续判断单元,如果不匹配,调用第一提取单元;后续判断单元,用于确定当前字符在会话文本中后续的字符与匹配符号在表情 代码中后续的符号是否匹配,如果不匹配,调用第一提取单元,如果匹配,调用第二提取单元;第二提取单元,用于以后续字符中与表情代码匹配的最后一个字符在会话文本中的下一个字符为当前字符,调用第一字符判断单元;第一提取单元,用于以当前字符的在会话文本中的下一个字符为当前字符,调用第一字符判断单元。本发明实施例的有益效果是通过将会话文本中每个字符与各个表情代码的第一个符号是否匹配,对于每个匹配的字符,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配;能够提高会话文本中表情解析的效率。


图I为本发明会话文本中表情解析的方法的流程图。图2为本发明实施方式一的方法的流程图。图3为本发明实施方式二中使用匹配树的方法的流程图。图4为本发明实施例的方法流程图。图5为本发明实施例的表情示意图。图6为本发明会话文本中表情解析的系统的结构图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。参见图1,为本发明提供的会话文本中表情解析的方法的流程。步骤S 100,比较会话文本中字符与各个表情代码的第一个符号,对于与第一个符号匹配的字符执行步骤S200。步骤S200,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。通过该方式能够提高会话文本中表情解析的效率。在一较佳的实施方式中,所述步骤SlOO具体包括如下步骤,流程图参见图2。步骤S110,以会话文本的第一个字符为当前字符。步骤S120,判断当前字符与各个表情代码的第一个符号是否匹配,如果匹配,执行步骤S200后执行步骤S130,如果不匹配,执行步骤S150。步骤S 130,确定当前字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果不匹配,执行步骤S 150,如果匹配,执行步骤S140。步骤S140,以后续字符中与表情代码匹配的最后一个字符在会话文本中的下一个字符为当前字符,执行步骤S120。步骤S150,以当前字符的在会话文本中的下一个字符为当前字符,执行步骤S120。在现有技术中,当表情代码中具有包含性编码时可能会解析错误,如表情中同时有 >:)和)两种表情符号,如果先搜索)就可能会导致解析出错误的表情。采用所述方法,能够避免当表情代码中具有包含性编码时会解析错误。
此外,本发明的步骤SlOO的具体实现方式不限于此,也可以为判断会话文本中每个字符与各个表情代码的第一个符号是否匹配,对于匹配的字符执行步骤S200。在此种方式下,当表情代码中具有包含性编码时,例如表情代码中同时有 >:)和)两种表情符号;则两种表情符号都会被检索到。此时,可以规定在匹配的会话文本中字符串间具有包含关系时,取字符串数量最大的字符串对应的表情为匹配的表情。在一较佳的实施方式中,所述步骤SlOO前还包括依据表情代码构建匹配树的集合,集合中各个匹配树的根节点为表情代码的第一个符号,匹配树中父节点的子节点为父节点对应的符号在表情代码中的下一个符号。所述步骤S200具体包括依据以匹配的符号为根节点的匹配树,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。通过使用匹配树,进一步提闻表情解析效率。所述步骤S200具体实现方式如图3所示。步骤S210,以与表情代码第一个符号匹配的字符在会话文本中的下一个字符为当前字符。步骤S220,判断当前字符与匹配树中匹配的节点的子节点是否匹配,如果匹配,则执行步骤S230,否则,执行步骤S250。步骤S230,判断匹配的节点是否为叶子节点,如果是,则执行步骤S240,否则,取当前字符在会话文本中的下一个字符为当前字符,执行步骤S220。步骤S240,获取匹配的表情代码对应的表情图片,以供显示。步骤S250,确定匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号不匹配。进一步地,所述匹配树的每个叶节点包含该叶节点对应的表情的表情图片的编号;该叶节点对应的表情为从根节点到该叶节点的路径中各个节点对应的符号组成的表情代码对应的表情;所述获取匹配的表情代码对应的表情图片具体包括按匹配的叶节点包含的表情图片的编号获取表情图片。实施例在本实施例中,表情包括编号、表情图片、表情代码,如图5所示。依据表情代码建立的匹配树的存储如下表所示。

权利要求
1.一种会话文本中表情解析的方法,其特征在于,所述方法包括 步骤1,比较会话文本中字符与各个表情代码的第一个符号,对于与第一个符号匹配的字符执行步骤2 ; 步骤2,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。
2.根据权利要求I所述的方法,其特征在于, 所述步骤I前还包括 步骤21,依据表情代码构建匹配树的集合,集合中各个匹配树的根节点为表情代码的第一个符号,匹配树中父节点的子节点为父节点对应的符号在表情代码中的下一个符号;所述步骤2具体包括 步骤22,依据以匹配的符号为根节点的匹配树,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。
3.根据权利要求2所述的方法,其特征在于, 所述步骤22具体包括 步骤31,以与表情代码第一个符号匹配的字符在会话文本中的下一个字符为当前字符; 步骤32,判断当前字符与匹配树中匹配的节点的子节点是否匹配,如果匹配,则执行步骤33,否则,执行步骤35 ; 步骤33,判断匹配的节点是否为叶子节点,如果是,则执行步骤34,否则,取当前字符在会话文本中的下一个字符为当前字符,执行步骤32 ; 步骤34,获取匹配的表情代码对应的表情图片,以供显示; 步骤35,确定匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号不匹配。
4.根据权利要求2所述的方法,其特征在于, 所述匹配树的每个叶节点包含该叶节点对应的表情的表情图片的编号;该叶节点对应的表情为从根节点到该叶节点的路径中各个节点对应的符号组成的表情代码对应的表情; 所述获取匹配的表情代码对应的表情图片具体包括 按匹配的叶节点包含的表情图片的编号获取表情图片。
5.根据权利要求I所述的方法,其特征在于, 所述步骤I具体包括 步骤51,以会话文本的第一个字符为当前字符; 步骤52,判断当前字符与各个表情代码的第一个符号是否匹配,如果匹配,执行步骤2后执行步骤53,如果不匹配,执行步骤55 ; 步骤53,确定当前字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果不匹配,执行步骤55,如果匹配,执行步骤54 ; 步骤54,以后续字符中与表情代码匹配的最后一个字符在会话文本中的下一个字符为当前字符,执行步骤52;步骤55,以当前字符的在会话文本中的下一个字符为当前字符,执行步骤52。
6.一种会话文本中表情解析的系统,其特征在于,所述系统包括 第一匹配模块,用于比较会话文本中字符与各个表情代码的第一个符号,对于与第一个符号匹配的字符调用第二匹配模块。
第二匹配模块,用于判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。
7.根据权利要求6所述的系统,其特征在于, 所述系统还包括 构建模块,用于依据表情代码构建匹配树的集合,集合中各个匹配树的根节点为表情代码的第一个符号,匹配树中父节点的子节点为父节点对应的符号在表情代码中的下一个符号; 所述第二匹配模块具体用于依据以匹配的符号为根节点的匹配树,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。
8.根据权利要求7所述的系统,其特征在于, 所述第二匹配模块具体包括 第二初始化单元,用于以与表情代码第一个符号匹配的字符在会话文本中的下一个字符为当前字符,调用子节点判断单元; 子节点判断单元,用于判断当前字符与匹配树中匹配的节点的子节点是否匹配,如果匹配,则调用叶子节点判断单元,否则,调用匹配失败单元; 叶子节点判断单元,用于判断匹配的节点是否为叶子节点,如果是,则调用匹配成功单元,否则,取当前字符在会话文本中的下一个字符为当前字符,调用子节点判断单元;匹配成功单元,用于获取匹配的表情代码对应的表情图片,以供显示; 匹配失败单元,用于确定匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号不匹配。
9.根据权利要求7所述的系统,其特征在于, 所述构建模块还用于在匹配树的每个叶节点中保存该叶节点对应的表情的表情图片的编号;该叶节点对应的表情为从根节点到该叶节点的路径中各个节点对应的符号组成的表情代码对应的表情; 所述第二匹配模块在获取匹配的表情代码对应的表情图片时具体用于按匹配的叶节点包含的表情图片的编号获取表情图片。
10.根据权利要求6所述的系统,其特征在于, 所述第一匹配模块具体包括 第一初始化单元,用于以会话文本的第一个字符为当前字符,调用第一字符判断单元; 第一字符判断单元,用于判断当前字符与各个表情代码的第一个符号是否匹配,如果匹配,调用第二匹配模块后调用后续判断单元,如果不匹配,调用第一提取单元; 后续判断单元,用于确定当前字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果不匹配,调用第一提取单元,如果匹配,调用第二提取单元;第二提取单元,用于以后续字符中与表情代码匹配的最后一个字符在会话文本中的下一个字符为当前字符,调用第一字符判断单元; 第一提取单元,用于以当前字符的在会话文本中的下一个字符为当前字符,调用第一字符判断单元。
全文摘要
本发明公开了一种会话文本中表情解析的方法和系统,所述方法包括步骤1,比较会话文本中字符与各个表情代码的第一个符号,对于与第一个符号匹配的字符执行步骤2;步骤2,判断匹配的字符在会话文本中后续的字符与匹配符号在表情代码中后续的符号是否匹配,如果是,则获取匹配的表情代码对应的表情图片,以供显示。本发明能够解决会话文本中表情解析效率低下的问题。
文档编号G06F17/30GK102841919SQ20121022716
公开日2012年12月26日 申请日期2012年6月30日 优先权日2012年6月30日
发明者王明帅 申请人:北京神州泰岳软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1