书签 分享 收藏 举报 版权申诉 / 11

一种表情解析的方法和系统.pdf

  • 上传人:t****
  • 文档编号:4218971
  • 上传时间:2018-09-07
  • 格式:PDF
  • 页数:11
  • 大小:1.29MB
  • 摘要
    申请专利号:

    CN201210227200.1

    申请日:

    2012.06.30

    公开号:

    CN102779189A

    公开日:

    2012.11.14

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20120630|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    北京神州泰岳软件股份有限公司

    发明人:

    鞠训卓

    地址:

    100089 北京市海淀区万泉庄路28号万柳新贵大厦A座6层601室

    优先权:

    专利代理机构:

    北京市隆安律师事务所 11323

    代理人:

    权鲜枝

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开一种表情解析的方法和系统,所述方法包括:根据表情代码构建表情平衡二叉树和前缀平衡二叉树,表情平衡二叉树中节点为表情代码;前缀平衡二叉树中节点为表情代码中前缀子字符串;利用表情平衡二叉树和前缀平衡二叉树从目标文本对目标文本进行检索,从目标文本中解析出表情代码。本发明能够解决表情解析速度慢的问题。

    权利要求书

    1: 一种表情解析的方法, 其特征在于, 所述方法包括 : 根据表情代码构建表情平衡二叉树和前缀平衡二叉树, 表情平衡二叉树中节点为表情 代码 ; 前缀平衡二叉树中节点为表情代码中前缀子字符串 ; 利用表情平衡二叉树和前缀平衡二叉树从目标文本对目标文本进行检索, 从目标文本 中解析出表情代码。
    2: 根据权利要求 1 所述的方法, 其特征在于, 所述利用表情平衡二叉树和前缀平衡二叉树从目标文本对目标文本进行检索, 从目标 文本中解析出表情代码具体包括 : 从目标文本中取字符作为当前解析字符串的初始字符, 按如下步骤解析当前解析字符 串, 步骤 1, 在表情平衡二叉树中检索当前解析字符串, 如果检索到, 则执行步骤 2, 如果没 有检索到, 则执行步骤 3 ; 步骤 2, 确定当前解析字符串为表情代码 ; 步骤 3, 在前缀平衡二叉树中检索当前解析字符串, 如果检索到, 则从目标文本中取下 一个字符添加到当前解析字符串中, 执行步骤 1, 如果没有检索到, 则执行步骤 4 ; 步骤 4, 确定当前解析字符串不为表情代码。
    3: 根据权利要求 1 所述的方法, 其特征在于, 所述根据表情代码构建前缀平衡二叉树具体包括 : 从各个表情代码中提取前缀子字符串, 组成前缀集合 ; 对于前缀集合中多个相同前缀子字符串, 保留一个在前缀集合中 ; 依据前缀集合构建前缀平衡二叉树。
    4: 根据权利要求 2 所述的方法, 其特征在于, 所述从目标文本中取字符作为当前解析字符串的初始字符具体包括 : 如果上次解析的当前解析字符串为表情代码, 则从目标文本中取上次解析的当前解析 字符串中最后一个字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。
    5: 根据权利要求 2 所述的方法, 其特征在于, 所述从目标文本中取字符作为当前解析字符串的初始字符具体包括 : 如果上次解析的当前解析字符串不为表情代码, 则从目标文本中取上次解析的当前解 析字符串的初始字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。
    6: 根据权利要求 2 所述的方法, 其特征在于, 所述步骤 2 还包括 : 依据检索到的表情代码确定当前解析字符串代表的表情。
    7: 一种表情解析的系统, 其特征在于, 所述系统包括 : 平衡二叉树构建模块, 用于根据表情代码构建表情平衡二叉树和前缀平衡二叉树, 表 情平衡二叉树中节点为表情代码 ; 前缀平衡二叉树中节点为表情代码中前缀子字符串 ; 文本解析模块, 用于利用表情平衡二叉树和前缀平衡二叉树从目标文本对目标文本进 行检索, 从目标文本中解析出表情代码。
    8: 根据权利要求 7 所述的系统, 其特征在于, 所述文本解析模块具体包括 : 2 字符提取单元, 用于从目标文本中取字符作为当前解析字符串的初始字符, 调用表情 判断单元开始解析当前解析字符串, 表情判断单元, 用于在表情平衡二叉树中检索当前解析字符串, 如果检索到, 则确定当 前解析字符串为表情代码, 并调用字符提取单元, 如果没有检索到, 则调用前缀判断单元 ; 前缀判断单元, 用于在前缀平衡二叉树中检索当前解析字符串, 如果检索到, 则从目标 文本中取下一个字符添加到当前解析字符串中, 调用表情判断单元, 如果没有检索到, 则确 定当前解析字符串不为表情代码, 并调用字符提取单元。
    9: 根据权利要求 7 所述的系统, 其特征在于, 所述平衡二叉树构建模块具体用于 : 从各个表情代码中提取前缀子字符串, 组成前缀 集合 ; 对于前缀集合中多个相同前缀子字符串, 保留一个在前缀集合中 ; 依据前缀集合构 建前缀平衡二叉树。
    10: 根据权利要求 8 所述的系统, 其特征在于, 所述字符提取单元具体用于 : 如果上次解析的当前解析字符串为表情代码, 则从目标文本中取上次解析的当前解析 字符串中最后一个字符的下一个字符, 作为本次解析的当前解析字符串的初始字符 ; 和 / 或, 如果上次解析的当前解析字符串不为表情代码, 则从目标文本中取上次解析的当前解 析字符串的初始字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。

    说明书


    一种表情解析的方法和系统

        【技术领域】
         本发明涉及计算机领域, 特别涉及一种表情解析的方法和系统。背景技术 IM(Instant Message, 即时消息) 工具已经成为人们日常生活和工作中不可或缺 的通信工具。随着智能手机的用户的增多, 运行在智能手机上的 IM 工具也越来越丰富等。 能够发送和接收表情是 IM 应用一个重要的组成部分, 缺少表情的 IM 应用会带来用户体验 的下降。 在智能手机平台上, 处理器速度有限, 内存也较为紧张, 在这种情况下, 如何提高表 情解析的速度, 占用较少的内存, 就显得尤为重要。
         现有技术中进行表情解析时, 使用多叉树进行遍历。 在针对给定的表情代码集合, 创建用于存储表情代码的多叉树时, 在程序中需要对每个表情代码使用硬编码, 不利于表 情的扩展。在使用该多叉树进行表情解析的时候, 遍历速度慢导致表情解析速度慢。
         发明内容
         本发明提供了一种表情解析的方法和系统, 以解决表情解析速度慢的问题。
         本发明公开了一种表情解析的方法, 所述方法包括 :
         根据表情代码构建表情平衡二叉树和前缀平衡二叉树, 表情平衡二叉树中节点为 表情代码 ; 前缀平衡二叉树中节点为表情代码中前缀子字符串 ;
         利用表情平衡二叉树和前缀平衡二叉树从目标文本对目标文本进行检索, 从目标 文本中解析出表情代码。
         其中, 所述利用表情平衡二叉树和前缀平衡二叉树从目标文本对目标文本进行检 索, 从目标文本中解析出表情代码具体包括 :
         从目标文本中取字符作为当前解析字符串的初始字符, 按如下步骤解析当前解析 字符串,
         步骤 1, 在表情平衡二叉树中检索当前解析字符串, 如果检索到, 则执行步骤 2, 如 果没有检索到, 则执行步骤 3 ;
         步骤 2, 确定当前解析字符串为表情代码 ;
         步骤 3, 在前缀平衡二叉树中检索当前解析字符串, 如果检索到, 则从目标文本中 取下一个字符添加到当前解析字符串中, 执行步骤 1, 如果没有检索到, 则执行步骤 4 ;
         步骤 4, 确定当前解析字符串不为表情代码。
         其中, 所述根据表情代码构建前缀平衡二叉树具体包括 :
         从各个表情代码中提取前缀子字符串, 组成前缀集合 ;
         对于前缀集合中多个相同前缀子字符串, 保留一个在前缀集合中 ;
         依据前缀集合构建前缀平衡二叉树。
         其中, 所述从目标文本中取字符作为当前解析字符串的初始字符具体包括 :
         如果上次解析的当前解析字符串为表情代码, 则从目标文本中取上次解析的当前解析字符串中最后一个字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。
         其中, 所述从目标文本中取字符作为当前解析字符串的初始字符具体包括 :
         如果上次解析的当前解析字符串不为表情代码, 则从目标文本中取上次解析的当 前解析字符串的初始字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。
         其中, 所述步骤 2 还包括 :
         依据检索到的表情代码确定当前解析字符串代表的表情。
         本发明还公开了一种表情解析的系统, 所述系统包括 :
         平衡二叉树构建模块, 用于根据表情代码构建表情平衡二叉树和前缀平衡二叉 树, 表情平衡二叉树中节点为表情代码 ; 前缀平衡二叉树中节点为表情代码中前缀子字符 串;
         文本解析模块, 用于利用表情平衡二叉树和前缀平衡二叉树从目标文本对目标文 本进行检索, 从目标文本中解析出表情代码。
         其中, 所述文本解析模块具体包括 :
         字符提取单元, 用于从目标文本中取字符作为当前解析字符串的初始字符, 调用 表情判断单元开始解析当前解析字符串, 表情判断单元, 用于在表情平衡二叉树中检索当前解析字符串, 如果检索到, 则确 定当前解析字符串为表情代码, 并调用字符提取单元, 如果没有检索到, 则调用前缀判断单 元;
         前缀判断单元, 用于在前缀平衡二叉树中检索当前解析字符串, 如果检索到, 则从 目标文本中取下一个字符添加到当前解析字符串中, 调用表情判断单元, 如果没有检索到, 则确定当前解析字符串不为表情代码, 并调用字符提取单元。
         其中, 所述平衡二叉树构建模块具体用于 : 从各个表情代码中提取前缀子字符串, 组成前缀集合 ; 对于前缀集合中多个相同前缀子字符串, 保留一个在前缀集合中 ; 依据前 缀集合构建前缀平衡二叉树。
         其中, 所述字符提取单元具体用于 :
         如果上次解析的当前解析字符串为表情代码, 则从目标文本中取上次解析的当前 解析字符串中最后一个字符的下一个字符, 作为本次解析的当前解析字符串的初始字符 ;
         和 / 或,
         如果上次解析的当前解析字符串不为表情代码, 则从目标文本中取上次解析的当 前解析字符串的初始字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。
         本发明的有益效果是 : 通过构建表情平衡二叉树和前缀平衡二叉树, 在表情平衡 二叉树和前缀平衡二叉树中进行检索来从目标文本中解析表情, 能够提高表情解析的速 度, 更加适应智能手机等处理速度有限的终端设备。
         附图说明
         图 1 为本发明表情解析的方法的流程图。 图 2 为本发明具体实施方式中解析当前解析字符串的方法流程图。 图 3 为本发明表情解析的方法的实施例的流程图。 图 4 为本发明表情解析的系统的结构图。图 5 为本发明具体实施方式中文本解析模块的结构图。具体实施方式
         为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明实施方 式作进一步地详细描述。
         参见图 1, 为本发明提供的表情解析的方法的流程。
         所述方法包括如下步骤。
         步骤 S100, 根据表情代码构建表情平衡二叉树和前缀平衡二叉树。
         表情平衡二叉树中节点为表情代码 ; 前缀平衡二叉树中节点为表情代码中前缀子 字符串。
         步骤 S200, 利用表情平衡二叉树和前缀平衡二叉树对目标文本进行检索, 从目标 文本中解析出表情代码。
         其中, 前缀子字符串为表情代码中第一个字符到除最后一个字符之外的各个字符 的字符串。即表情代码表示为 : E0E1...Ei...Em, 其中 Ei 为该表情符号的第 i 个字符, 则该表 情代码的前缀子字符串包括 : E0, E0E1, ..., E0E1...Ei, ..., E0E1...Ei...Em-1。
         本发明中字符串可以为一个字符或多个字符。
         在一具体实施方式中, 所述步骤 S200 实现的具体流程如图 2 所示。
         从目标文本中取字符作为当前解析字符串的初始字符, 按如下步骤解析当前解析 字符串。
         步骤 S210, 在表情平衡二叉树中检索当前解析字符串, 如果检索到, 则执行步骤 S220, 如果没有检索到, 则执行步骤 S230。
         步骤 S220, 确定当前解析字符串为表情代码。
         步骤 S230, 在前缀平衡二叉树中检索当前解析字符串, 如果检索到, 则执行步骤 S250, 如果没有检索到, 则执行步骤 S240。
         步骤 S240, 确定当前解析字符串不为表情代码。
         步骤 S250, 从目标文本中取下一个字符添加到当前解析字符串中, 执行步骤 S210
         进一步地, 步骤 S220 还包括 : 依据检索到的表情代码确定当前解析字符串代表的 表情。
         在一具体实施方式中, 所述根据表情代码构建前缀平衡二叉树具体包括 :
         步骤 S110, 从各个表情代码中提取前缀子字符串, 组成前缀集合。
         步骤 S120, 对于前缀集合中多个相同前缀子字符串, 保留一个在前缀集合中。
         步骤 S130, 依据前缀集合构建前缀平衡二叉树。
         例如, 表情代码组成的集合为 {ab,abc,abd,ba,bd,bca,bcd}。根据该集合利用公 知构建平衡二叉树的方法, 构建表情平衡二叉树。
         表情代码 ab 的前缀子字符串包括 : a。
         表情代码 abc 的前缀子字符串包括 : a, ab。
         表情代码 abd 的前缀子字符串包括 : a, ab。
         表情代码 ba 的前缀子字符串包括 : b。
         表情代码 bd 的前缀子字符串包括 : b。表情代码 bca 的前缀子字符串包括 : b, bc。
         表情代码 bcd 的前缀子字符串包括 : b, bc。
         除去其中重复部分, 最终得前缀集合 {a,ab,b,bc}。
         初始的前缀平衡二叉树为空, 按公知平衡二叉树构建方法, 将前缀集合中字符串 插入前缀平衡二叉树中。
         在一较佳的具体实施方式中, 所述从目标文本中取字符作为当前解析字符串的初 始字符具体包括 :
         如果上次解析的当前解析字符串为表情代码, 则从目标文本中取上次解析的当前 解析字符串中最后一个字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。
         在一较佳的具体实施方式中, 所述从目标文本中取字符作为当前解析字符串的初 始字符具体包括 :
         如果上次解析的当前解析字符串不为表情代码, 则从目标文本中取上次解析的当 前解析字符串的初始字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。
         实施例
         参见图 3, 为本发明表情解析的方法的实施例的流程图。 在实施例中, 设置文本参量 text, 用于保存解析出来的非表情字符串, 设置前缀参 量 prefix, 用于保存本次解析的当前解析字符串。步骤 S301, 进行初始化, 将参量 text 和 prefix 置空。
         步骤 S302, 判断目标文本是否扫描完毕, 如果是, 则执行步骤 S308, 否则, 执行步 骤 S303。
         步骤 S303, 将所取目标文本中当前字符加入 prefix 中。
         在初始时, 取目标文本中第一个字符加入 prefix 中。
         初始之后, 每次都为取当前字符的下一个字符为当前字符, 加入 prefix。
         步骤 S304, 在表情平衡二叉树中检索 prefix, 判断 prefix 是否为表情代码, 如果 是, 则执行步骤 S305, 否则, 执行步骤 S306。
         步骤 S305, 将 text 保存, 将 prefix 保存, 清空 text 和 prefix。
         步骤 S306, 在前缀平衡二叉树中检索 prefix, 判断 prefix 是否为前缀子字符串, 如果是, 则执行步骤 S302, 否则, 执行步骤 S307。
         步 骤 S307, 将 prefix 的 第 一 个 字 符 压 到 text 中, 当 前 字 符 回 溯 length (prefix) -1 个位置, 清空 prefix。
         步骤 S308, 将 prefix 压入 text 中, 将 text 保存, 清空 prefix。
         将使用本发明的技术方案 (以下简称新版本) 与使用多叉树的旧有技术方案 (以下 简称旧版本) 进行性能比较, 结果如下。
         1, 测试用例包含 500 个普通字符, 没有表情
         旧版本 : 运行该测试用例 1000 次, 耗时 7000 毫秒 ;
         新版本 : 运行该测试用例 2000 次, 耗时 3000 毫秒 ;
         2, 测试用例只包含 200 个表情 :
         旧版本 : 运行该测试用例 2000 次, 耗时 117000 毫秒 ;
         新版本 : 运行该测试用例 2000 次, 耗时 27000 毫秒 ;
         3, 测试用例包含 400 个字符, 其中表情和普通文本混合 :
         旧版本 : 运行该测试用例 2000 次, 耗时 29000 毫秒 ;
         新版本 : 运行该测试用例 2000 次, 耗时 9000 毫秒。
         一种表情解析的系统的结构如图 4 所示。
         平衡二叉树构建模块 100, 用于根据表情代码构建表情平衡二叉树和前缀平衡二 叉树, 表情平衡二叉树中节点为表情代码 ; 前缀平衡二叉树中节点为表情代码中前缀子字 符串 ;
         文本解析模块 200, 用于利用表情平衡二叉树和前缀平衡二叉树从目标文本对目 标文本进行检索, 从目标文本中解析出表情代码。
         参见图 5, 为本发明具体实施方式中文本解析模块的结构图。
         在一较佳的实施方式中, 所述文本解析模块 200 具体包括 :
         字符提取单元 210, 用于从目标文本中取字符作为当前解析字符串的初始字符, 调 用表情判断单元 220 开始解析当前解析字符串。
         表情判断单元 220, 用于在表情平衡二叉树中检索当前解析字符串, 如果检索到, 则确定当前解析字符串为表情代码, 并调用字符提取单元 210, 如果没有检索到, 则调用前 缀判断单元 230。 前缀判断单元 230, 用于在前缀平衡二叉树中检索当前解析字符串, 如果检索到, 则从目标文本中取下一个字符添加到当前解析字符串中, 调用表情判断单元 220, 如果没有 检索到, 则确定当前解析字符串不为表情代码, 并调用字符提取单元 210。
         在一较佳的实施方式中, 所述平衡二叉树构建模块 100 具体用于 : 从各个表情代 码中提取前缀子字符串, 组成前缀集合 ; 对于前缀集合中多个相同前缀子字符串, 保留一个 在前缀集合中 ; 依据前缀集合构建前缀平衡二叉树。
         在一较佳的实施方式中, 所述字符提取单元 210 具体用于 :
         如果上次解析的当前解析字符串为表情代码, 则从目标文本中取上次解析的当前 解析字符串中最后一个字符的下一个字符, 作为本次解析的当前解析字符串的初始字符 ;
         在一较佳的实施方式中, 所述字符提取单元 210 具体用于 :
         如果上次解析的当前解析字符串不为表情代码, 则从目标文本中取上次解析的当 前解析字符串的初始字符的下一个字符, 作为本次解析的当前解析字符串的初始字符。
         以上所述仅为本发明的较佳实施例而已, 并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、 等同替换、 改进等, 均包含在本发明的保护范围 内。
        

    关 键  词:
    一种 表情 解析 方法 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种表情解析的方法和系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4218971.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1