首页 / 公式检测引擎

公式检测引擎有效专利 发明

技术内容

公式检测引擎 背景技术 [0001] 流格式文档和固定格式文档被广泛使用且具有不同的目的。流格式文档使用复杂逻辑格式化结构(如章节、段落、列以及表)来组织文档。结果,流格式文档提供了灵活性且易于修改,使得它们适用于涉及被频繁更新或受到显著编辑的文档的任务。相反,固定格式文档使用基本物理布局元素(如文本串、路径、以及图像)来组织文档以保留原始外观。 固定格式文档提供一致且精确的格式布局,使得它们适用于涉及不被频繁或大量变更或其中需要统一性的文档的任务。这样的任务的示例包括文档归档、高质量再现、以及用于广告发布和打印的源文件。固定格式文档通常从流格式源文档中创建。固定格式文档还包括物理(即,纸质)文档的数字再现(例如,扫描和照片)。 [0002] 在其中需要编辑固定格式文档但流格式源文档不可用的情况下,固定格式文档必须被转换成流格式文档。转换涉及解析该固定格式文档并将来自该固定格式文档的基本物理布局元素变换成在流格式文档中使用的更复杂的逻辑元素。面对复杂元素(诸如数学公式和表达式)的现有文档转换器采取被设计成以输出文档的可流动性为代价保留固定格式文档的布局(例如,文本框、行间距、字符间距和图像)的视觉保真度的基本技术。结果是需要用户执行大量手动重构来获得真正有用的流格式文档的受限流格式文档。本发明正是对于这些和其他考虑事项而做出的。 发明内容 [0003] 提供以下发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。 [0004] 作为将固定格式文档转换成流格式文档的转换过程的一部分,公式检测引擎的一个实施例执行相关联的公式检测方法。公式检测引擎通过标识可能是数学公式的一部分的元素并基于这些元素的相对位置将这些元素分组成各个公式区域来创建初始公式区域。公式检测引擎通过标识经解析的元素中的公式种子来开始。公式种子是携带对作为公式的一部分的某种指示的文本元素,诸如用专用或几乎专用于显示数学表达式的字体来编写的文本串以及在数学公式中专用或几乎专用的数学运算符、符号或关键字。一旦标识出公式种子,公式检测引擎就限定检测到的每一个公式种子周围的公式区域(即,边界)并扩展边界以基于邻近度来对公式种子和其它元素进行分组。被公式区域的边界框包围的所有页面元素都被认为是捕捉到的元素。 [0005] 接着,公式检测引擎通过基于垂直位置对覆盖普通文本的公式区域进行细分并基于水平间隔拆分公式区域来消除公式区域与周围普通文本(即,不是数学公式的一部分的文本元素)之间的重叠。公式检测引擎通过分析每一公式区域以确定该公式区域是否覆盖任何普通文本区域来开始。如果公式区域覆盖任何普通文本,则公式检测引擎通过基于垂直位置对捕捉到的元素进行分组来划分公式区域。在每一组捕捉到的元素周围创建新公式区域。公式检测引擎分析新公式区域的内容以寻找与普通文本的重叠,并且进一步划分仍旧包含普通文本的任何新公式区域。一旦划分出各个公式区域,则公式检测引擎根据捕捉到的元素之间的水平间隔来拆分每一个公式区域。 [0006] 最后,公式检测引擎通过基于邻近度合并任何相邻公式区域来将数学公式重构为可流动元素。公式检测引擎使用关于相邻文本元素的位置的信息来防止合并出现在一页面上的不同行中的公式区域。水平重叠(即,至少部分地垂直对齐)且在所选垂直分隔距离内的公式区域被分组为合并候选。公式检测引擎根据公式区域之间的垂直分隔来对合并候选进行排序(例如,排列),并且在合并候选的两个公式区域尚未被合并且不在分开的行中的情况下用一新的公式区域来替换这两个公式区域。 [0007] 一个或多个实施例的细节在附图和以下描述中阐明。通过阅读下面的具体实施例并参考相关联的附图,其他特征和优点将变得显而易见。要理解的是下面的具体实施例仅仅是说明性的,而不是对所要求保护的发明的限制。 [0008] 附图简述 [0009] 通过参考下面的具体实施方式、所附的权利要求书和附图,进一步的特征、各方面和益处将变得更好理解,其中各元素不会缩放以更清晰地示出细节,在若干视图中,相同的附图标记指示相同的元素,并且其中: [0010] 图1示出了包括公式检测引擎的系统; [0011] 图2是示出文档处理器的一个实施例的操作流程的框图; [0012] 图3是示出公式检测方法的一个实施例的流程图; [0013] 图4是示出在公式检测方法中使用的用于创建初始公式区域的过程的一个实施例的流程图; [0014] 图5A用图形示出了标识公式种子的示例性操作,其被应用于从固定格式文档中解析的包含出现在普通文本串内的若干数学公式和等式的所选数据部分; [0015] 图5B用图形示出了来自创建初始公式区域的过程的一个实施例的示例性操作; [0016] 图6是示出在公式检测方法中使用的用于消除公式区域和普通文本之间的重叠的过程的一个实施例的流程图; [0017] 图7A-D用图形示出了来自在公式检测方法的一个实例中使用的消除公式区域和普通文本之间的重叠的过程的一个实施例的所选示例性操作; [0018] 图8是示出在公式检测方法中使用的重构各个公式的过程的一个实施例的流程图; [0019] 图9A-B用图形示出了来自在公式检测方法中使用的重构各个公式的过程的一个实施例的所选示例性操作; [0020] 图10示出了执行公式检测引擎的实施例的示例性平板计算设备。 [0021] 图11是适合于实施公式检测引擎的实施例的示例性计算设备的简化框图; [0022] 图12A示出了执行公式检测引擎的一个实施例的移动计算设备的一个实施例; [0023] 图12B是适合于实施公式检测引擎的实施例的示例性移动计算设备的简化框图; 以及 [0024] 图13是适合于实施公式检测引擎的实施例的示例性分布式计算系统的简化框图。 具体实施方式 [0025] 本文描述了用于标识从固定格式文档中提取的数据中的数学公式和表达式公式检测引擎及相关联的方法并在附图中示出该公式检测引擎和相关联的方法。公式检测引擎通过标识公式种子来定位固定格式文档部分中的公式。公式检测引擎创建并扩展公式种子周围的边界以限定公式区域。为了消除与周围普通文本的重叠,基于捕捉到的元素之间的垂直位置和水平间隔来将公式区域分成多个公式区域。对所得公式区域进行垂直排序,并且合并水平重叠的公式区域以将公式重构为可流动元素。 [0026] 图1示出了结合公式检测引擎100的系统的一个实施例。在所示实施例中,公式检测引擎100作为在计算设备104上执行的文档转换器102的一部分来操作。文档转换器 102使用解析器110、文档处理器112以及串行化器114将固定格式文档106转换成流格式文档108。解析器110从固定格式文档106中读取和提取数据。从固定格式文档中提取的数据被写入可由文档处理器112和串行化器114访问的数据存储116。文档处理器112使用一个或多个检测和/或重构引擎(例如,本发明的公式检测引擎100)来分析该数据并将其转换成可流动元素。最后,串行化器114将可流动元素写成可流动文档格式(例如,文字处理格式)。 [0027] 图2更详细地示出了文档处理器112的操作流程的一个实施例。文档处理器112包括可任选的光学字符识别(OCR)引擎202、布局分析引擎204以及语义分析引擎206。数据存储116中所包含的数据包括物理布局对象208和逻辑布局对象210。在一些实施例中,物理布局对象208和逻辑布局对象210被分层安排在各组的树状阵列(即,数据对象)中。 在各实施例中,页面是物理布局对象208的顶层组,而章节是逻辑布局对象210的顶层组。 从固定格式文档106中提取的数据一般被存储为由固定格式文档106中的包含页面来组织的物理布局对象208。基本物理布局对象包括文本串、图像和路径。文本串是页面内容流中的指定在显示固定格式文档时字符的绘制位置的文本元素。图像是储存在固定格式文档 106中的光栅图像(即,图片)。路径描述了诸如用于构建矢量图的线、曲线(例如,三次贝塞尔曲线)以及文本轮廓等元素。逻辑数据对象包括诸如章节、段落、列和表格等的可流动元素。 [0028] 处理开始的位置取决于被解析的固定格式文档106的类型。从流格式源文档直接创建的原生固定格式文档106a包含基本物理布局元素中的部分或全部。一般而言,数据是从原生固定格式文档中提取的。嵌入式数据结构由解析器提取并且可供文档转换器立即使用;但在某些情况下,应用次要的重新格式化或其它次要处理器以组织或标准化数据。作为对比,通过对物理文档进行数字成像(例如,扫描或拍照)而创建的基于图像的固定格式文档106b中的所有信息被存储作为不具有附加数据(即,没有文本串或路径)的一系列页面图像。在这种情况下,任选的光学字符识别引擎202分析每一页面图像并创建对应的物理布局对象。一旦物理布局对象208可用,布局分析引擎204就分析固定格式文档的布局。 在布局分析完成之后,语义分析引擎206用从对物理布局对象和/或逻辑布局对象的分析中获得的语义信息来丰富逻辑布局对象。 [0029] 图3是示出由公式检测引擎100执行的公式检测方法300的一个实施例的流程图。公式检测引擎100通过标识物理布局对象中的可能是数学公式的一部分的元素并基于这些元素的相对位置将这些元素分组成各个公式区域来创建302初始公式区域。接着,公式检测引擎100通过对覆盖普通文本的公式区域进行细分并基于水平间隔拆分公式区域来消除304公式区域与任何周围普通文本(即,不是数学公式的一部分的文本元素)之间的重叠。最后,公式检测引擎100通过基于邻近度合并任何相邻公式区域来将数学公式重构306为可流动元素。 [0030] 图4是示出在公式检测方法300中使用的创建302初始公式区域的过程的一个实施例的流程图。公式检测引擎100通过标识402经解析的元素中的公式种子来开始。更一般而言,公式种子是携带对作为公式的一部分的某种指示的文本。为了标识公式种子,公式检测引擎100搜索以下各项中的一个或多个(不限于该一个或多个):用专用或几乎专用于显示数学表达式的字体来编写的文本串以及在数学公式中专用或几乎专用的数学运算符、符号或关键字。 [0031] 例如,文字处理程序可表示具有诸如微软公司的 Math等数学字体的 公式,而文档准备系统(例如,LaTeX)可使用多个数学字体族,诸如Computer Modern数学字体。公式检测引擎100还考虑数学运算符、符号或关键字的存在以标识公式种子,因为某些文档处理器不将任何特殊数学字体用于数学。用于公式检测的数学运算符、符号或关键字的实例包括诸如“∑”等运算符和诸如“π”等符号以及诸如表示余弦函数的“cos”等关键字。一般而言,公式检测引擎100使用在普通语言中不具有含义的关键字(例如,“tan”)。在各实施例中,用于标识公式种子的字体包括但不限于以下字体中的部分或全部: Math、Computer Modern数学斜体(cmmi)、Computer Modern数学粗斜体 (cmmib)、Computer Modern数学扩展(cmex)、Computer Modern数学符号(cmsy)、Computer Modern粗体数学符号(cmbsy)、American Math Society附加数学符号-第一系列(masm)、American Math Society附加数学符号-第二系列(msbm)、积分或Computer Modern的扩展集合(esint)、MathTime TeX数学斜体(mtmi)、MathTime TeX数学符号(mtsy)、MathTime TeX数学扩展(mtex)以及Roland Waldi的符号(wasy)。在一些实施例中,公式种子包括但不限于作为公式种子的以下各项中的部分或全部:范围在$2200-#22FF(数学运算符)、#27C0-$27EF(杂数学符号-A)、#2980-$29FF(杂数学符号-B)以及#2A00-#2AFF(补充数学运算符)内的Unicode字符或字符集。在各实施例中,公式种子包括但不限于以下文本关键字中的部分或全部:diet、sin、cos、tg、tan、ctg、ctan、sinh、cosh、tanh、ctanh、log、In、gcd、arcsin、arcos、arctan、sec、esc、max、min、inf、sup、lim、sgn、exp、mod以及var。 [0032] 一旦标识出公式种子,公式检测引擎100就限定404检测到的每一个公式种子周围的公式区域(即,边界)。接着,公式检测引擎100扩展406公式种子周围的边界以创建初始公式区域。在一个实施例中,添加在公式种子附近的具有数学元素属性的所有页面元素直到没有这样的元素剩余。为了决定页面元素是否应被包括在公式区域中,公式检测引擎100查找将该页面元素标识为潜在数学公式元素的属性。在各实施例中,公式检测引擎 100考虑各个属性,包括但不限于:从公式区域到页面元素的欧几里得距离、页面元素的文本字体、数学运算符、符号和/或数字字符(即,数字)在页面元素中的存在以及页面元素的尺寸(即,该页面元素是否比标准文本元素更高或更宽)。被公式区域的边界框包围的所有页面元素都被认为是捕捉到的元素。 [0033] 图5A用图形示出了从固定格式文档解析的具有由公式检测引擎100标识的公式种子502a-d的示例的所选数据部分500。通过字体502a标识的公式种子用虚线矩形来包围,而通过数学运算符502b、符号502c和关键字502d标识的公式种子用实线圆形来包围。 [0034] 图5B用图形示出了由边界框表示的由公式检测引擎100创建的初始公式区域 504。在所示实施例中,结果是由矩形定界的包含一个或多个数学公式的公式区域。在数学公式充分地彼此分隔的情况下,每一公式区域都将捕捉到单个数学区域;然而,在多个数学公式接近的情况下,可能在单个公式区域中捕捉到不同的数学公式。此外,当在单个公式区域中捕捉到不止一个公式时,扩展的公式区域可能覆盖周围的普通文本。在所示实施例中,扩展的公式区域已捕捉到多个数学公式506并覆盖这些数学公式周围的普通文本508。 [0035] 图6是示出在公式检测方法300中使用的消除304公式区域和普通文本之间的重叠的过程的一个实施例的流程图。公式检测引擎100通过分析600每一公式区域以确定该公式区域是否覆盖任何普通文本区域来开始。如果公式区域覆盖任何普通文本,则公式检测引擎100通过基于捕捉到的元素的垂直位置来对每一个捕捉到的元素进行分组602来继续。在每一组捕捉到的元素周围创建604新公式区域。公式检测引擎100分析新公式区域的内容以寻找与普通文本的重叠,并且进一步划分包含普通文本的任何新公式区域。在必要时迭代地分析、拆分和缩小每一新公式区域允许公式检测引擎100应对公式区域覆盖多个文本行的情况。一旦公式区域被垂直分组,公式检测引擎100就根据捕捉到的元素之间的水平间隔来拆分606每一个公式区域。 [0036] 图7A-D用图形示出了在公式检测方法300中使用的应用于初始公式区域504的消除304公式区域和普通文本之间的重叠的子过程。图7A示出了由用于基于垂直位置对初始公式区域504中的捕捉到的元素进行分组的两个水平分界符700a、702a来划分的初始公式区域504。水平线700a、702a对应于普通文本行的高度。第一水平线700a对应于为包含数学公式的普通文本行定界的框的上边缘(即,边框)。第二水平线702a对应于为包含数学公式的普通文本行定界的框的下边缘。 [0037] 分界符700a、702a将初始公式区域504分成对应于在该普通文本行之上、与该普通文本行同行以及在该普通文本行之下的上区域704a、中区域706a和下区域708a。如果主分界符700a、702a之一横穿捕捉到的元素,则公式检测引擎100在必要时在被横穿的捕捉到的元素的最高位置之上和最低位置之下建立辅上水平分界线710a和辅下水平分界线 712a。本领域技术人员应认识到,如果主分界符700a、702a未横穿任何捕捉到的元素,则不需要建立辅分界符710a、712a。或者,辅分界符710a、712a可以与主分界符700a、702a共线。 [0038] 只有那些完全位于由公式检测引擎100建立的最上面的分界线700a、710a之上的捕捉到元素才被置于对应于上区域704a的第一组中。在所示实施例中,只有符号“n”和“∞”落入第一组中。类似地,只有那些完全位于由公式检测引擎100建立的最下面的分界线702a、712a之下的捕捉到元素才被置于对应于下区域708a的第二组中。在所示实施例中,项“k=0”和“n=l”以及在这些项之下的行中的文本、等式和公式变成第二组的一部分。未落入第一组或第二组的所有捕捉到的元素被置于对应于中区域706a的第三组中。换言之,第三组包含完全位于主分界符700a、702a之间、被主分界符700a、702a中的一者或两者横穿或垂直覆盖被横穿的捕捉到的元素的捕捉到的元素。丢弃任何空组。 [0039] 图7B示出了基于捕捉到的元素的垂直位置来在各组周围创建604新公式区域的操作。从初始公式区域504中创建最多三个新公式区域。公式检测引擎100可任选地将每一新公式区域的尺寸缩小至足以包围其中捕捉到的所有公式元素的合适程度。在所示实施例中,初始公式区域504已被细分成三个新公式区域714、716和718且初始公式区域500已被丢弃。对新公式区域714、716和718中的每一个进行重叠标识操作600。在所示实施例中,两个最上面的新公式区域714、716无需任何进一步的垂直划分。第三新公式区域718仍包含公式区域和普通文本之间的垂直重叠。因此,公式检测引擎100通过垂直位置操作 602和新公式区域创建操作604来对第三新公式区域718重复分组。下分界线702b横穿求和运算符,且上分界线700b横穿平方根运算符和求和运算符两者。注意,在最高的被横穿的捕捉到的元素(即,平方根运算符)之上建立辅上分界符710b。如前,分界符700b、702b将公式区域718拆分成上区域704b、中区域706b和下区域708b。公式检测引擎100以上述方式对公式区域718中的捕捉到的元素进行重新分组。 [0040] 图7C示出了重叠标识操作600、通过垂直位置分组操作602以及新公式区域创建操作604的迭代应用的最终结果。第三新公式区域718已被分成两个新公式区域724、726。 第一公式区域724对应于公式区域718的上区域704b,而第二公式区域726对应于公式区域718的中区域706b。对应于公式区域718的中区域706b的空组已被丢弃。其余公式区域724、726中没有一个需要任何进一步的垂直分组。 [0041] 图7D示出了基于捕捉到的元素之间的水平间隔来拆分606公式区域的操作。公式检测引擎100通过水平地扫描每一公式区域并确定一公式区域中的每一对连续捕捉到的元素之间的水平距离来开始。在一些实施例中,水平扫描方向对应于文档语言的阅读方向。在其他实施例中,水平扫描方向是从左到右或从右到左,而不管文档语言是什么。公式检测引擎100划分出隔开大于所选阈值距离的水平距离的两个连续捕捉到的元素之间的公式区域,以创建新公式区域。在各实施例中,连续捕捉到的元素之间的水平距离是根据空格确定的。图7D所示的虚线730指示水平分隔在何处超出所选阈值。在一些实施例中,使用单个阈值。在其他实施例中,阈值基于周围文本而变化。 [0042] 图8是示出通过对公式框进行分组来重构306各个公式的子过程的一个实施例的流程图。公式检测引擎100通过定位800出现在每一公式区域的左侧和右侧的普通文本元素来开始。公式检测引擎100使用关于相邻文本元素的位置的信息来防止合并出现在一页面上的不同行中的公式区域。公式检测引擎100然后从可用公式区域中生成合并候选的集合。将水平重叠(即,至少部分地垂直对齐)且在所选垂直分隔距离内的公式区域分组802为合并候选。公式检测引擎根据公式区域之间的垂直距离来对合并候选进行排序(例如,排列)804。在一些实施例中,合并候选是按升序排列的。在其他实施例中,合并候选是按降序排列的。从始至终地对经排列的合并候选进行操作,公式检测引擎100在构成合并候选的两个公式区域尚未被合并成单个公式区域且它们的垂直距离不与单独行的垂直距离相关联的情况下用一新公式区域来替换这两个公式区域。在一些实施例中,公式区域是否处在页面上的同一行中是根据在每一公式区域的右侧和/或左侧的普通文本来确定的。如果在每一公式区域的右侧或左侧的普通文本是相同的,则公式区域被确定为位于页面上的同一行中。相反,在公式区域的右侧或左侧的普通文本不同表明公式区域位于页面上的不同行中。经合并的公式区域的边界由构成该合并候选的两个公式区域的最大范围来限定。换言之,新公式区域是通过从合并候选的上、下、左和右边界中选择最上面、最下面、最左边和最右边的边界来限定的。 [0043] 图9A和9B用图形示出了来自应用于文本串500的重构306各个公式的子过程的所选操作。图9A示出了被分组成合并候选的所选公式区域。第一合并候选组900a包括公式区域914a、916a和924a。第二合并候选组900b包括公式区域914b、916b和924b。公式区域924a和924b并不是分别与公式区域926a和926b的合并候选,因为垂直分隔距离超出所选阈值。另外,公式区域926a和926b不分别与合并组900a和900b合并,因为在左侧和右侧的普通文本在它们之间是不同的(即,这些公式区域在页面上的不同行中)。图9B示出了最终解决方案,四个公式802a-d中的每一个都适当地彼此分隔并与周围的普通文本隔开。 [0044] 如此处所使用的,术语“区域”、“边界”、“框”可互换使用。类似地,术语“分界线”和“分界符”可互换使用。本领域技术人员应认识到,本文描述的边界和分界符在公式检测方法期间无需被实际上可视地表示和/或显示。另外,边界和分界符不限于框或线。边界和分界符可采取其它形状(例如,曲线),而不背离本发明的范围和精神。此外,边界和分界符简单地使用坐标或其它参考系。指示形状的术语(例如,矩形、框、线和椭圆)不应被解释为是限制性的,而应被宽泛地当作在适当时涵盖任何合适的边界或分界符,除非本说明书明确指明其他情况。 [0045] 本文描述的公式检测引擎及相关联的公式检测方法可用于标识出现在固定格式文档中的每一个不同的数学公式并将所标识的每一个数学公式转换成流格式元素。在各实施例中,公式检测引擎的输出在进行串行化之前由文档处理器内的附加格式化引擎来进行进一步处理。 [0046] 尽管已在结合在计算机上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述本发明,但本领域的技术人员将认识到,本发明也可结合其他程序模块实现。 一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。 [0047] 本文描述的实施例和功能可通过多种计算系统来操作,包括但不限于台式计算机系统、有线和无线计算系统、移动计算系统(如移动电话、上网本、图形输入板或平板型计算机、笔记本计算机、和膝上型计算机)、手持设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、以及大型计算机。图10示出了执行公式检测引擎100的实施例的示例性平板计算设备1000。此外,本文所述的实施例和功能可在分布式系统上操作(如基于云的计算系统),其中应用功能、存储器、数据存储和检索、以及各种处理功能可在诸如因特网或内联网之类的分布式计算网络上彼此远程地操作。各种类型的用户界面和信息可经板载计算设备显示器或经与一个或多个计算设备相关联的远程显示单元被显示。例如,各种类型的用户界面和信息可在墙壁表面上被显示和交互,各种类型的用户界面和信息被投射在墙壁表面上。与可用于实施本发明的各实施例的许多计算系统的交互包括:键击输入、触摸屏输入、语音或其他音频输入、姿势输入(其中相关联的计算设备配备有用于捕捉和解释用于控制计算设备的功能的用户姿势的检测(如相机)功能)等。图11到13以及相关描述提供了其中可实施本发明的各实施例的各种操作环境的讨论。然而,关于图11到 13所示出和讨论的设备和系统是用于示例的目的,而非对可被用于实施本文所述的本发明的各实施例的大量计算设备配置的限制。 [0048] 图11是示出可用来实施本发明的各实施例的计算设备1100的物理组件(即硬件)的框图。下面描述的计算设备组件可适用于上述的计算设备。在基本配置中,计算设备1100可包括至少一个处理单元1102和系统存储器1104。取决于计算设备的配置和类型,系统存储器1104可包括,但不限于,易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪存、或这些存储器的任何组合。系统存储器1104可包括操作系统1105和适于运行诸如公式检测引擎100、解析器110、文档转换器112以及串行化器 114等软件应用1120的一个或多个程序模块1106。操作系统1105例如可适合于控制计算设备1100的操作。此外,本发明的各实施例可以结合图形库、其他操作系统、或任何其他应用程序来实践,且不限于任何特定应用程序或系统。该基本配置在图11中由虚线1108内的那些组件示出。计算设备1100可具有附加特征或功能。例如,计算设备1100还可包括附加数据存储设备(可移动和/或不可移动),诸如,例如磁盘、光盘或磁带。这些附加存储在图11中由可移动存储设备1109和不可移动存储设备1110示出。 [0049] 如上所述,可在系统存储器1104中存储多个程序模块和数据文件。当在处理单元 1102上执行时,诸如公式检测引擎100、解析器110、文档处理器112以及串行化器114等程序模块1106可以执行包括例如公式检测方法300的各阶段中的一个或多个阶段的过程。 上述过程是一示例,且处理单元1102可执行其他过程。根据本发明的实施例可使用的其他程序模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用等。 [0050] 此外,本发明的各实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实现。例如,可以通过片上系统(SOC)来实施本发明的各实施例,其中,可以将图11中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当通过SOC操作时,在此所述的关于公式检测引擎100、解析器 110、文档处理器112以及串行化器114的功能可以通过在单个集成电路(芯片)上与计算设备1100的其它组件集成在一起的专用逻辑来操作。本发明的各实施例还可以使用能够执行诸如,例如,AND(与)、OR(或)和NOT(非)等逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施例可以在通用计算机或任何其他电路或系统中实现。 [0051] 计算设备1100也可具有一个或多个输入设备1112,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备1114,如显示器、扬声器、打印机等等。上述设备是示例且可以使用其他设备。计算设备1100可包括允许与其他计算设备1118进行通信的一个或多个通信连接1116。合适的通信连接1116的示例包括但不限于RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行或串行端口、以及适用于与适用的计算机可读介质一起使用的其他连接。 [0052] 例如,本发明的各实施方式可被实现为计算机进程(方法)、计算系统或诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并编码了用于执行计算机进程的指令的计算机程序的计算机存储介质。 [0053] 如此处所使用的术语计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器1104、可移动存储设备1109和不可移动存储设备1110都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可用于存储信息且可以由计算机设备1100访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备1100的一部分。 [0054] 通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对信号中的信息进行编码的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。 [0055] 图12A和12B示出可用来实施本发明的各实施例的移动计算环境1200,例如移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图12A,示出了用于实现各实施例的示例性移动计算设备1200。在一基本配置中,移动计算设备1200是具有输入元件和输出元件两者的手持式计算机。移动计算设备1200通常包括显示器1205以及允许用户将信息输入到移动计算设备1200中的一个或多个输入按钮1210。移动计算设备1200的显示器 1205也可充当输入设备(如触摸屏显示器)。如果包括,则可任选的侧输入元件1215允许进一步的用户输入。侧输入元件1215可以是旋转开关、按钮、或任何其他类型的手动输入元件。在替代实施例中,移动计算设备1200可结合更多或更少的输入元件。例如,在某些实施例中,显示器1205可以不是触摸屏。在又一替代实施例中,移动计算设备1200是诸如蜂窝电话之类的便携式电话系统。移动计算设备1200还可包括可选的键区1235。可选的键区1235可以是物理键区或者在触摸屏显示器上生成的“软”键区。在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器1205、可视指示器1220(如发光二极管)、和/或音频换能器1225(如扬声器)。在某些实施例中,移动计算设备1200结合振动换能器来向用户提供触觉反馈。在又一实施例中,移动计算设备1200结合诸如音频输入(如传声器插孔)、音频输出(如耳机插孔)、以及视频输出(如HDMI端口)之类的输入和/或输出端口,用于将信号发送到外部设备或从外部设备接收信号。 [0056] 图12B是示出移动计算设备的一个实施例的架构的框图。即,移动计算设备1200可结合系统(即架构)1202以实现某些实施例。在一个实施例中,系统1202被实现为能够运行一个或多个应用(如浏览器、电子邮件、日历、联系人管理器、消息收发客户端、游戏、以及媒体客户端/播放器)的“智能电话”。在某些实施例中,系统1202被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。 [0057] 一个或多个应用程序1266可被加载到存储器1262中并在操作系统1264上或与操作系统1264相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息通信程序等等。 系统1202还包括存储器1262内的非易失性存储区1268。非易失性存储区1268可被用于存储在系统1202断电时不会丢失的持久信息。应用程序1266可使用信息并将信息存储在非易失性存储区1268中,如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留于系统1202上且被编程为与驻留在主机计算机上的对应的同步应用交互,以保持非易失性存储区1268中存储的信息与主机计算机处存储的相应信息同步。如应理解的,其他应用可被加载到存储器1262中并在移动计算设备1200上运行,包括此处所述的公式检测引擎100、解析器110、文档处理器112以及串行化器114。 [0058] 系统1202具有可被实现为一个或多个电池的电源1270。电源1270还可包括外部功率源,如补充电池或对电池充电的AC适配器或加电对接托架。 [0059] 系统1202还可包括执行发射和接收无线电频率通信的功能的无线电1272。无线电1272通过通信运营商或服务供应商促进了系统1202与“外部世界”之间的无线连接性。 来往无线电1272的传输是在操作系统1264的控制下进行的。换言之,无线电1272接收的通信可通过操作系统1264传播到应用程序1266,反之亦然。 [0060] 无线电1272允许系统1202例如通过网络与其他计算设备通信。无线电1272是通信介质的一个示例。通信介质通常由诸如载波或其他传输机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传送介质。 术语“已调制数据信号”指其一个或多个特征以这样的方式设置或改变以便在信号中对信息进行编码的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。如此处所使用的术语计算机可读介质包括存储介质和通信介质两者。 [0061] 系统1202的该实施例使用可用于提供可视通知的可视指示器1220和/或通过音频换能器1225来产生音频通知的音频接口1274来提供通知。在所示实施例中,可视指示器1220是发光二极管(LED),而音频换能器1225是扬声器。这些设备可直接耦合到电源 1270,使得当被激活时,即使为了节省电池功率而可能关闭处理器1260和其他组件,它们也保留一段由通知机制指示的保持通电时间。LED可被编程为无限地保持通电,直到用户采取动作指示该设备的通电状态。音频接口1274用于向用户提供听觉信号并从用户接收听觉信号。例如,除了被耦合到音频换能器1225之外,音频接口1274还可被耦合到话筒来接收可听输入,例如便于电话通话。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。系统1202可进一步包括允许板载相机1230的操作来记录静止图像、视频流等的视频接口1276。 [0062] 实现系统1200的移动计算设备1202可具有附加特征或功能。例如,移动计算设备1200还可包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储设备在图12B中用非易失性存储区1268示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。 [0063] 移动计算设备1200生成或捕捉的且经系统1202存储的数据/信息可如上所述本地存储在移动计算设备1200上,或数据可被存储在可由设备通过无线电1272或通过移动计算设备1200和与移动计算设备1200相关联的一分开的计算设备之间的有线连接访问的任何数量的存储介质上,该计算设备如例如因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息可经移动计算设备1200、经无线电1272或经分布式计算网络来被访问。类似地,这些数据/信息可根据已知的数据/信息传送和存储手段来容易地在计算设备之间传送以供存储和使用,这些手段包括电子邮件和协作数据/信息共享系统。 [0064] 图13示出了用于向一个或多个客户机设备提供公式检测引擎100、解析器110、文档处理器112以及串行化器114的系统的体系结构的一个实施例,如上所述。与公式检测引擎100、解析器110、文档处理器112以及串行化器114相关联地开发、交互或编辑的内容可被存储在不同地通信信道或其他存储类型中。例如,各种文档可使用目录服务1322、web门户1324、邮箱服务1326、即时消息收发存储1328或社交网站1330来存储。如本文所描述的,公式检测引擎100、解析器110、文档处理器112以及串行化器114可以使用这些类型的系统中的任一个来启用数据利用。服务器1320可以向客户机提供公式检测引擎100、解析器110、文档处理器112以及串行化器114。作为一个示例,服务器1320可以是通过web提供公式检测引擎100、解析器110、文档处理器112以及串行化器114的web服务器。服务器1320可以通过网络1315在web上向客户机提供公式检测引擎100、解析器110、文档处理器112以及串行化器114。作为示例,客户端计算设备1318可被实现为计算设备1100并被具体化在个人计算机1318a、平板计算设备1318b和/或移动计算设备1318c(如智能电话)中。客户机计算设备1318的这些实施例中的任一个可从存储1316获得内容。 [0065] 以上参考例如根据本发明的各实施例的方法、系统和计算机程序产品的框图和/或操作图示描述了本发明的各实施例。框中所注明的各功能/动作可以按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以按相反的次序来执行。 [0066] 尽管已经描述了本发明的某些实施方式,但也可能存在其他实施方式。此外,虽然本发明的各实施方式被描述为与存储在存储器和其他存储介质中的数据相关联,但数据还可以被存储在或读取自其他类型的计算机可读介质,如辅助存储设备,像硬盘、软盘、或CD-ROM;来自因特网的载波;或其他形式的RAM或ROM。此外,所公开的方法的各阶段可以按任何方式进行修改,包括通过对阶段进行重新排序和/或插入或删除阶段,而不会背离本发明。 [0067] 在各种实施例中,用于在构成本发明的计算设备之间进行通信的网络的类型包括但不限于互联网、内联网、广域网(WAN)、局域网(LAN)、以及虚拟专用网络(VPN)。在本申请中,网络包括企业网络和客户端计算设备用来访问企业网络的网络(即客户端网络)。在一个实施例中,客户端网络是企业网络的一部分。在另一实施例中,客户端网络是通过外部可用的接入点(如网关、远程访问协议、或公共或专用互联网地址)来访问企业网络的一分开的网络。 [0068] 本申请中提供的一个或多个实施例的描述和说明不旨在以任何方式限制或约束如权利要求所要求保护的发明范围。本申请中提供的实施例、示例和细节被认为是足以传达所有权,且使得他人能够制作并使用所要求保护的发明的最佳模式。所要求保护的发明不应被理解为限制于本申请中所提供的任何实施例、示例或细节。不管是以组合的方式还是分开的方式示出和描述,各种特征(结构上的和方法逻辑上的)旨在被选择性地包括或忽略,以产生具有特定的特征集的实施例。在被提供本申请的描述和说明的情况下,本领域的技术人员能够想象到落在所要求保护的发明的更宽泛方面以及本申请中所具体化的一般发明概念的精神内的替代实施例并不背离该更宽泛的范围。

相关技术
检测引擎相关技术
M·拉扎里维克发明人的其他相关专利技术