CN111753503B - 一种面向盲人的数学公式编辑方法及装置 - Google Patents

一种面向盲人的数学公式编辑方法及装置 Download PDF

Info

Publication number
CN111753503B
CN111753503B CN202010571287.9A CN202010571287A CN111753503B CN 111753503 B CN111753503 B CN 111753503B CN 202010571287 A CN202010571287 A CN 202010571287A CN 111753503 B CN111753503 B CN 111753503B
Authority
CN
China
Prior art keywords
character
mathematical
linear
type
input
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.)
Active
Application number
CN202010571287.9A
Other languages
English (en)
Other versions
CN111753503A (zh
Inventor
苏伟
许存禄
林和
蔡佳伟
吴尽昭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lanzhou University
Original Assignee
Lanzhou University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lanzhou University filed Critical Lanzhou University
Priority to CN202010571287.9A priority Critical patent/CN111753503B/zh
Publication of CN111753503A publication Critical patent/CN111753503A/zh
Application granted granted Critical
Publication of CN111753503B publication Critical patent/CN111753503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明涉及一种面向盲人的数学公式编辑方法及装置,通过计算机的输入设备或智能设备编辑数学公式,所述方法至少包括:基于命令行的方式输入能够表示数学符号的字符或字符串;基于所述字符或字符串生成关于数学公式代码的线性字符或字符串;计算机或智能设备在响应所述字符或字符串生成所述线性字符或字符串的过程中,以由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成的表达结构来解析所述字符或字符串。

Description

一种面向盲人的数学公式编辑方法及装置
技术领域
本发明属于自然语言处理技术领域和面向盲人的人机交互技术领域,尤其涉及自然语言处理技术领域中的数学公式到盲文的自动转换技术领域,具体涉及一种面向盲人的数学公式编辑方法及装置。
背景技术
信息无障碍技术的发展可以帮助盲人通过Internet来访问电子文献和网上信息。数学信息盲人可访问方法是信息无障碍研究的重要组成部分。数学作为自然科学的基础,数学符号和数学公式广泛存在各个领域的文献资料中,其不仅在科学研究中不可或缺,在日常生活中也扮演着极为重要的角色。
现有数学公式在计算机或其他电子设备上的输入方法主要有五种:可视化编辑方法输入、半可视化输入方法、代码式输入方法、语音输入、手写输入。例如,公开号为CN106528518A的中国专利文献公开了一种基于WEB的数学公式编辑系统及方法。所述方法包括以下步骤:
S1、通过用户登录模块登录WEB服务器网站,用户登录模块的登录方式有身份证识别模块登录、指纹识别模块登录、语音识别模块登录、图像识别模块登录和账号及密码登录模块登录;
S2、进入编辑模块,在编辑模块中的编辑界面进行公式编辑;
S3、进行数学公式编辑,在编辑界面中,通过数据对照模块中的单个字母和公式对照、组合字母和公式对照以及字母数字组合和公式对照,利用简单的单个字母、组合字母以及字母数字组合来代替复杂公式的方法将数据公式建立;
S4、进行数据公式检索,键入关键词,对复杂的数学公式进行检索,并将检索到的数学公式复制到编辑模块中的编辑界面中;
S5、数模转换和传输,将简单的单个字母、组合字母以及字母数字组合转换成相对应的完整的数学公式,并将转换后的数学公式传递到公式显示模块中;
S6、错误验证,通过将S5中转换后的数学公式和公式数据库中的数学公式进行对照,防止编辑错误,提高编辑的准确性。但是,该专利是基于可视化或半可视化的编辑界面进行编辑,显然盲人无法适用。
需要说明的是,数学公式在计算机中的存储和表示格式多种多样。从代码格式来看,这些数学公式格式可分为基于XML的标记语言格式、基于ASCII码的线性字符串格式、图片格式、程序专用码格式、其他格式(如Unicode等)。这些格式中,基于XML的标记语言格式和基于ASCII码的线性字符串格式是用户可直接编码格式,而图片、程序专用编码格式及其他格式一般需要特定程序生成。特别的,盲文在计算机中使用盲文ASCII码。盲文ASCII码是通用ASCII码的子集,因此在计算机中表示的盲文可归类为基于ASCII码的线性字符串格式。从数学公式的用户和目的角度,计算机的数学公式又可以分为表现型(Presentation)和语义型(Content)。表现型数学公式主要是用来描述数学符号的二维结构,即对数学公式进行排版布局。语义型数学公式主要是用来表达数学公式的含义,对数学公式提供无歧义、格式良好的描述。
此外,代码格式输入方法是指使用键盘字符以线性方式输入数学公式。这种方式是计算机中最为常见的一种数学公式输入方法。输入的数学公式可以是各种代码。事实上,在计算机上输入数学公式时,很多符号、符号的大小写以及符号的位置无法用键盘直接输入,只能利用键盘有限的字符输入一维字符串。这种利用键盘直接输入的一维数学公式称之为数学公式线性语法。在所有数学公式线性语法中,数学公式中缀格式是一种最为直观快捷的输入方法。数学公式中缀格式指所有运算符都出现在运算量之间的数学公式表示形式,是基于键盘字符的线性语法。
为了帮助盲人平等的访问数学信息,一方面,已有的信息无障碍项目或辅助性工具支持MathML、LaTeX等多种格式间的数学公式转换;另一方面,盲人通过数学盲文与明眼人交流,需要将数学盲文转换为MathML、LaTeX等多种格式,需要保证盲人、视力障碍着可以在计算机上无障碍的输入数学信息。但是由于数学公式结构的二维性,使得盲人学习数学变得十分困难,而通过计算机获取数学信息也更加困难。例如,每个数学公式都是由多个数学符号组成的一个二维结构,在显示器上,我们只能利用键盘、鼠标来对数学公式进行操作。对于盲文、视障者群体来说,首先,由于数学公式的这种结构特殊性,使得其学习数学十分困难,其次,他们不能在显示器上像明眼人一样操作结构体数学公式,因此通过计算机获取数学信息非常困难。
例如,文献[1]程铭.数学公式的线性输入方法研究[D].2015.公开了一种通用的基于字符串的线性输入方法,针对中国用户的线性语法格式,提供一种数学公式扩展中缀语言MEIL,基本解决了数学公式输入问题。具体而言,该文献分别从数字、数字常数、希腊字母、算数运算符、比较运算符及其他常见符号、常用函数等方面制定了一个数学公式扩展中缀语言MEIL,对现有的六种数学公式中缀格式的语法及MEIL语法进行了实验比较,MEIL输入20个数学公式所需字符数最少且错误率较低,实验证明MEIL具有输入高效、符合用户习惯、使用方便灵活等特点。但是MEIL更多的是从明眼人的使用习惯、学习习惯进行设计,在设计输入规则时更多的考虑明眼人使用方便灵活的需求,在该文献中所统计的输入错误率也是基于明眼人使用的环境下,并未充分考虑到盲人用户的使用环境与输入习惯。而且,在盲人用户利用计算机及相关电子设备输入数学公式的实际使用过程中,无论是二维结构的数学公式还是代码式的数学公式,都无法直接阅读,而需借助盲文和语音来“阅读”数学公式。这就需要在输入的过程中,实时地将输入的数学公式转换为盲文,通过点显器或者语音的方式展现给盲人,便于盲人及时发现输入错误并更改,即实现在线交互式输入并编辑各种数学表达式。此外,对于简单的数学公式,人们一般都能正确地或接近正确地理解其数学含义,然而随着公式长度的增长,相应理解的难度也会增长。盲人在使用盲文或语音阅读数学公式时,对于较长的数学公式,需要记忆整个数学公式以理解其含义,往往需要反复多次阅读才能够理解其含义,对于更长的数学公式,有时则会无法理解其含义。
此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于发明人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。
发明内容
现有的数学公式编辑方法,没有考虑到盲人使用计算机编辑数学公式的输入习惯,例如MathML其输入格式十分繁琐,对于普通用户来说其学习成本高、晦涩难懂,更不适用盲人;其次,在编辑数学公式后,需要实时对盲人编辑的数学符号转换至盲文ASCII码,进而以语音或者盲文的形式展示给盲人以便对输入公式的正确性做出判断。但是现有的盲文数学公式转换方法没有考虑到对数学公式进行分解,特别是较长的数学公式,盲人需要记忆整个数学公式以理解其含义,往往需要反复多次阅读才能够理解其含义,如果数学公式较长,盲人有时则会无法理解其含义。
针对现有技术之不足,本发明提供了一种面向盲人的数学公式编辑方法,通过计算机的输入设备或智能设备编辑数学公式,所述方法至少包括:
基于命令行的方式输入能够表示数学符号的字符或字符串;
基于所述字符或字符串生成关于数学公式代码的线性字符或字符串。计算机或智能设备在响应所述字符或字符串生成所述线性字符或字符串的过程中,以由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成的表达结构来解析所有所述字符或字符串。在所述字符或字符串无法解析成所述表达结构的情况下,停止响应所述字符或字符串生成所述线性字符或字符串。将表示输入错误的第一类反馈信息反馈至盲人能够感知的计算设备。现有的数学公式输入法例如MEIL、LaTeX、Mathematic、Maple都以明眼人学习习惯、学习思维为准所设计,更多考虑输入功能的完整性,通常包含复杂的输入规则,没有考虑到盲人的掌握能力、盲人使用计算机或智能设备编辑数学公式的输入习惯、学习习惯以及与盲文语法的匹配度,因此盲人想要学习并熟练掌握存在很大难度。而本发明基于由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成的表达结构来解析盲人、视力障碍者通过计算机输入设备或智能设备输入的字符或字符串,能够轻量化对输入的字符或字符串的解析,即除了基本的数学运算外,各类系统函数,例如三角函数、对数函数、根式、极限、绝对值等所有函数全部采用本发明的表达结构来解析。通过该设置方式,本发明的面向盲人的数学公式编辑方法不识别复杂结构表达的字符或字符串,减少了盲人、视力障碍者输入的符号的种类。盲人、视力障碍者只需要输入函数名和该函数的参数结构就能实现数学公式的编辑。而且,通过轻量化的表达结构解析盲人、视力障碍者输入的字符或字符串能够提高编辑的准确性和提高生成关于数学公式代码的线性字符或字符串的效率。此外,轻量化的表达结构使用第二类辅助符号分割函数作用域内的参数,能够保证函数名大小写不敏感。
优选地,所述第一类辅助符号包括第一符号和第二符号。第一符号可以是“(”。第二符号可以是“)”。所述第二类辅助符号可以是“,”。
优选地,所述计算机或智能设备以第一顺序读取所述第一类辅助符号内的所述参数。在数学公式为上下参数结构的情况下,所述计算机或智能设备通过所述第一顺序读取得到的所述参数以第二顺序标注所述数学公式的上下参数的方式生成所述线性字符或字符串。考虑到盲人学习习惯、使用计算机习惯。本发明采用第一顺序读取表达结构内的参数。采用第二顺序表述数学公式的上下参数。第一顺序和第二顺序符合盲文语法顺序。具体而言,中国数学盲文是一种中缀形式的线性数学公式,所有操作数、操作符、操作模块严格地从左到右分布,指数等上下结构的数学符号严格的从下到上分布,因此计算机设备或智能设备采用从左至右的第一顺序来读取参数,并采用从下到上的第二顺序来标注数学公式的上下参数,符合盲人、视力障碍者编辑数学公式的环境。
根据一种优选实施方式,在一个完整的输入阶段内的所述字符出现重复的情况下,基于表征数学符号、数字以及字母的线性字符对所述完整的输入阶段内的所述线性字符串进行分割生成至少一个第一类线性字符串。在所述第一类线性字符串对应的字符出现重复的情况下,基于数字、字母的数据类型预测所述重复的字符表征的至少一种数学含义。基于至少一种数学含义对所述第一类线性字符串进行分割生成重复的字符表征同一种数学含义的第二类线性字符串。盲人或视力障碍者在基于盲文语法编辑数学公式的情况下,面对盲文数学公式的一维线性结构引起的歧义输入,导致数学公式编辑的错误率较高,降低了编辑数学公式的效率。而本发明采用采用预测方式对引起歧义的重复字符进行判断,并进行分割,从而保证分割后的重复的字符只表示一种数学含义,达到无歧义的技术效果。进而通过这种保证输入无歧义的处理方式,进一步提高数学公式编辑的准确性和生成关于数学公式代码的线性字符或字符串的效率。
根据一种优选实施方式,在基于数字、字母的数据类型无法预测所述重复的字符的至少一种数学含义的情况下,将所述第一类线性字符串中的重复的字符表征的可能的至少一种数学含义转换为对应至少一种数学含义的盲文ASCII码。基于所述盲文ASCII码以实时或异步的方式将重复的盲文字符表征的至少一种数学含义的第二类反馈信息反馈至所述计算设备,使得盲人能够基于所述计算设备选择重复的字符所表征的数学含义。
根据一种优选实施方式,在将所述第一类线性字符串中的重复的字符表征的可能的至少一种数学含义转换为对应至少一种数学含义的盲文ASCII码的过程中,至少执行如下步骤:
基于第一类线性字符串构造表示结构的第一标识符和表示语义的第二标识符;
基于所述第一标识符和第二标识符表示所述第一类线性字符串中的重复的字符表征的至少一种数学含义的盲文ASCII码。现有技术在将MathML翻译成盲文后进行规则实现去除冗余,即分别采用翻译和去冗两个步骤进行翻译。从而需要首先分析MathMLContent的数学含义,转为中国数学盲文后,第二步分析盲文公式的数学含义进行去冗操作。但是中国数学盲文是一种上下文敏感的语言,且只有64个盲块,因此使用大量的空方、组合盲块来辅助公式表达,所以相同的盲块在不同的位置有不同的含义,空方的使用也会有不同的含义。因此随着盲文公式的复杂度上升,对其数学含义分析的难度将成倍增加,会直接导致化简准确性的降低,从而降低翻译准确性。而本发明从辅助公式结构、语义表达两个方面,即第一标识符和第二标识符,将辅助盲块归类为10个第一标识符与5个第二标识符,并基于第一标识符与第二标识符设计映射匹配模块,在分析MathML Content数学含义时直接完成第一标识符与第二标识符的添加、省略情况进行判断,将两步减少为一步,避免再次分析盲文公式数学含义,相对两步处理的翻译方式,能够在短时间、系统复杂度降低的情况下显著提高准确率。
根据一种优选实施方式,在将所述第一类线性字符串中的重复的字符表征的可能的至少一种数学含义转换为对应至少一种数学含义的盲文ASCII码的过程中,还执行如下步骤:
对输入的所述第一类线性字符串进行文本分词生成分词栈;
基于所述分词栈与MathML代码匹配生成MathML文件;
基于以所述第一标识符和第二标识符表征的映射匹配模板将所述MathML文件转换为盲文ASCII码。
根据一种优选实施方式,对所述第一类线性字符串进行文本分词生成分词栈的步骤至少包括:
以双指针结构对所述第一类线性字符串进行文本匹配、文本序列分割、文本序列补全及属性值标注,从而生成保留片段属性值的分词片段;
将所述分词片段压入栈以生成所述分词栈。
根据一种优选实施方式,所述分词片段压入栈的步骤至少包括:
对表示前隐含乘的第一类隐含乘指针的指针值进行判断,若为第一类值则将表示乘法的符号入栈,并重置所述第一类隐含乘指针;
将分割好的所述文本序列与其属性值入栈;
对所述第一类隐含乘指针后的第二类隐含乘指针的指针值进行判断,若为第一类值则将表示乘法的符号入栈,并重置第二类隐含乘指针。优选地,第一类值可以用“1”表示。优选地,重置可以是将第一类隐含乘指针或第二类隐含乘指针的指针值由第一类值重置为“0”或者“1”。
优选地,判断指针是否溢出,如果溢出则将符号“;”与其属性值写入栈中并返回分词栈;若没有溢出则重新进入循环。
根据一种优选实施方式,基于所述分词栈与MathML代码匹配生成MathML文件的步骤至少包括:
基于解析所述分词栈获取的所述分词栈内的元素属性、元素内容与MathML代码匹配,从而生成MathML文件。在与MathML代码匹配的过程中,以包括操作符栈、操作数栈的双栈结构完成优先级判断。基于所述优先级依次出栈生成所述MathML文件。所述操作数栈也即操作模块栈,通过递归生成的公式子模块的MathML代码也会依次进入操作数栈。若公式为复杂的复合结构,其内包含多种操作符,通过双栈结构可以保证依据不同操作符优先级顺序,将中缀形式的线性数学公式准确转为前缀形式的MathMLContent代码,进而将生成的MathML Content代码直接组合成数学公式的MathML Content文件,避免了中间代码的产生,保证生成MathML的准确性。
根据一种优选实施方式,以包括操作符栈、操作数栈的双栈结构完成优先级判断的步骤至少包括:
提取所述分词栈内的分词片段;
基于所述属性值判断所述分词片段内的符号是否为操作符号,其中,
如果所述分词片段内不是操作符号则匹配映射操作数模板生成操作数的MathML代码;
如果所述分词片段内的符号是操作符号且该操作符号为所述第一类辅助符号的第一符号,则继续提取分词片段;
如果所述分词片段内的符号是操作符号且该操作符号为结束符号,则弹出所述操作数栈内最上层元素;
如果所述分词片段内的符号是操作符号且该操作符号不是所述第一符号和所述结束符号的情况下,则检查所述操作符栈内是否有元素,其中,
如果所述操作符栈内没有元素则将当前分词片段入栈;
如果所述操作符栈内有元素,则判断当前分词片段和所述操作符栈内最上层元素的优先级,其中,
如果当前分词片段优先级大于所述操作符栈内最上层元素,则将当前分词片段压入所述操作符栈;
如果当前分词片段优先级小于所述操作符栈内最上层元素,则弹出所述操作符栈内最上层元素,并以所述操作符栈内最上层元素为操作元素生成操作符的MathML代码。
本发明还提供一种面向盲人的数学公式编辑装置,至少包括:输入模块,用于将基于命令行的方式输入的字符或字符串转换为线性字符或字符串。显示模块,用于将所述盲文ASCII码以盲人能够感知的方式反馈至盲人。所述输入模块配置为:
基于所述字符或字符串生成关于数学公式代码的线性字符或字符串,其中,
在响应所述字符或字符串生成所述线性字符或字符串的过程中,以由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成的表达结构来解析所有所述字符或字符串,在所述字符或字符串无法解析成所述表达结构的情况下,停止响应所述字符或字符串生成所述线性字符或字符串,并将表示输入错误的第一类反馈信息反馈至所述显示模块。
附图说明
图1是本发明方法的一种优选实施方式的步骤示意图;和
图2是本发明装置的一种优选实施方式的模块示意图。
附图标记列表
100:输入模块 200:转换模块
300:显示模块
具体实施方式
下面结合附图1至2进行详细说明。
首先对背景知识和技术术语进行解释。
MathML:是描述数学公式的国际标准,目前已经有一些浏览器,例如Firefox、Opera开始支持MathML解析、显示,但是占市场90%的主流浏览器MSIE却不支持。具体而言,MathML是一种用于表示和存储数学表达式的XML语言,旨在解决数学表达式在Web中的传送、接收和处理,是计算机之间交换数学信息的基本标准。MathML用于描述数学公式的结构和内容,它的出现使数学公式不仅可以在Web上建立与传输,而且可以在其他应用程序中实现数学信息的再利用和转换,满足用户对数学公式的各种处理需求。MathML提供两种数学公式的标记:表现型(Presentation)标记和语义型(Content)标记。表现型标记主要是用来描述抽象数学符号的二维结构,相当于一个数学符号构造器,把数学符号的显示结构表现出来。在MathML 3.0中表现型标记的元素有38个。语义型标记主要用来表达数学公式的语义,提供一种无歧义描述数学公式的内在含义的方法,在MathML 3.0中语义型标记的元素有170个。优选地,MathML文件至少包括MathML Content文件。
数学公式中缀格式:数学公式中缀格式是指能够利用键盘在任何文本编辑器输入与编辑的数学公式表现形式。由于在使用命令行的编辑模式中,数学中缀格式是最为直观、高效的语法格式,所以该格式被广泛地应用在计算机代数系统(如Maple、Mathematica、Maxima等)、通用编程语言(如C语言、Java等)、电子计算器(如TI-83、TI-89、Casio FX等)等多种环境中,也是计算机及相关电子设备中最为常用的一种数学公式编辑格式。Microsoft公司在Word 2007中也开始使用数学公式中缀格式输入数学公式。
盲文(Braille):最基本的盲文符号为盲文点字,由6个点组成,根据点的填充与否可形成64种变化,即64个点符(盲符)。计算机中也可用盲文ASCII码表示盲文,即64个点符对应64个盲文ASCII码(ASCII字符组成)。盲文ASCII码极大地方便盲文处理,并且是盲人点显器、盲文刻印机等设备的标准输入。空格属于盲文ASCII码,为盲文点字64种变化之一,即6个点均不填充,称为“空方”,可携带盲文分词连写信息。“汉盲翻译”国家通用盲文的盲文ASCII码为“HV2M8 FVI2”,其分词信息为“汉盲/翻译”,“汉盲”盲文ASCII码为“HV2M8”,盲文点字为“翻译”盲文ASCII码为“FVI2”,盲文点字为/>
数学公式盲文的特殊写法:由于盲文只能使用64种符号,因此对于数学中的基本符号和公式结构的书写较为特殊。在中国盲文中数字、大写英文字母、小写英文字母、大写希腊字母、小写希腊字母前需使用不同的类型符号表示。书写时,类型符号有时可以省略,如数字或同类字母连写时,可只在第一个字母前加类型符号,后面数字、字母前的类型符号可省略。又例如对数底数是整数时,则可将点位写数,并省去数字符号。中国盲文在书写数学符号时应在数学符号前空一方,但也有一些例外情况,比如使用点乘符号、不等号和冒号时,前后不空方。正负号用于等号后时,前面不空方。使用大于等于、小于等于符号时,前面空方后面不空方。使用绝对号时,开绝对值号后不空方,闭绝对值号前不空方。百分号在写数字之后,中间不空方。
栈(Stack):又名堆栈,是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。具体而言,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
操作数:操作数是运算符作用的实体,是表达式中的一个组成部分,规定了指令中进行数字运算的量。在实施例中操作数是指可以是数字、字母等。
操作符:一个表达式由操作符和操作数构成。每个操作符都有自己的语义,具体取决于它所操作的类型。每个操作符都有优先级和结合性。在实施例中,操作符可以“+”、“—”、“*”等。
双指针结构:本发明首先将用户输入的线性数学公式转化为可访问的字符串。通过其下标index访问字符串。在访问过程中,使用后指针记录字符串当前下标index位置的字符属性,使用前指针记录字符串index-1位置的字符属性。根据前指针与后指针处理完当前字符之后,将当前字符属性赋值给前指针,将后指针置空。指针值可以是“100”(错误信息)、“1”(字符)、2(数字)、“3”(小数点)、“4”(运算符号)。
DOM:文档对象模型(Document Object Model,DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口。它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格。文档可以进一步被处理,处理的结果可以加入到当前的页面。DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中。
实施例1
本实施例公开了一种面向盲人的数学公式编辑方法,在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。
明眼人可以通过通用编程语言(例如Java语言)在计算机中输入数学公式,但其输入规则的繁琐导致盲人基本不具备掌握能力。另外存在的一些数学公式编辑方法(例如MathML、Mathematica、MEIL),以明眼人学习习惯、学习思维为准所设计,更多考虑输入功能的完全性,通常包含复杂的输入规则。以上现有的数学公式输入方法没有考虑到盲人的掌握能力以及其使用计算机编辑数学公式的输入习惯,因此盲人想要熟练掌握其输入规则且在使用时保证输入的正确率存在很大难度。在面向盲人设计输入法时,应更多的侧重输入的准确性,语法规则的简便性和易学性。具体而言,输入数学公式的语法要简洁明了,保证输入公式的高效率。其次,一种输入有且只能有一种数学含义,即无歧义性。最后结合盲人、视障用户在摸读数学公式时的语法顺序、学习习惯以及盲人、视障用户使用计算机的习惯,综合符合这两种习惯。
本发明提供了一种面向盲人的数学公式编辑方法,通过计算机的输入设备或智能设备编辑数学公式。优选地,由于每个盲人或者视力障碍者视力障碍的原因不同和自身教育水平不同,例如有的人是后天失明,其本身具备一定的计算机基础,因此能够通过键盘键入数学公式的字符。但是部分人可能是先天失明,计算机相关的基础比较薄弱,同样可以采用表示盲文的计算机输入设备来输入相应的表示数学公式、符号的字符。优选地,智能设备可以是笔记本、iPad,或者是智能穿戴设备(手表、眼镜等)。优选地,盲人、视力障碍者可以使用计算机输入设备,如键盘输入字符。盲人、视力障碍者可以使用接收音频信号的设备,例如麦克风来接收盲人的语音信号,然后通过计算机或者智能设备来识别为对应的字符。盲人、视力障碍者可以使用如iPad的呈现在显示屏幕上的虚拟键盘来键入字符。优选地,如图1所示,方法至少包括以下步骤:
S100:基于命令行的方式输入能够表示数学符号的字符或字符串。优选地,字符可以包括表述数学符号的盲文字符,也可以是键盘键入的字符。
S200:基于字符或字符串生成关于数学公式代码的线性字符或字符串。优选地,关于数学公式代码的线性字符或字符串可以是ASCII码字符或ASCII码字符串。优选地,用户输入的字符或字符串与线性字符或字符串存在映射关系。例如,对于基本的运算符号加号,在盲人使用键盘键入“Shift”和“+”时,对应的ASCII码字符为43。
S201:计算机或智能设备在响应字符或字符串生成线性字符或字符串的过程中,以表达结构来解析字符或字符串。优选地,识别字符或字符串中的函数名,以表达结构来解析表征函数类的字符或字符串。优选地,表达结构由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成。优选地,第一类辅助符号包括第一符号和第二符号。第一符号可以是“(”。第二符号可以是“)”。第二类辅助符号可以是“,”。优选地,表达结构可以是FunctionName(参数1,参数2…)。
S202:在字符或字符串无法解析成表达结构的情况下,停止响应字符或字符串生成线性字符或字符串,并将表示输入错误的第一类反馈信息反馈至盲人能够感知的计算设备。优选地,盲人能够感知的计算设备可以是点显器,也可以是音频设备。优选地,第一类反馈信息可以是用户输入的字符无法被解析成表达结构的信息。例如,函数名输入错误。例如,函数名能够被解析,但是参数的个数超出该函数作用域的限值。
通过该以上置方式,本发明的有益效果是:
现有的数学公式输入法例如MEIL、LaTeX、Mathematic、Maple都以明眼人学习习惯、学习思维为准所设计,更多考虑输入功能的完整性,通常包含复杂的输入规则,没有考虑到盲人的掌握能力、盲人使用计算机或智能设备编辑数学公式的输入习惯、学习习惯以及与盲文语法的匹配度,因此盲人想要学习并熟练掌握存在很大难度。而本发明基于由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成的表达结构来解析盲人、视力障碍者通过计算机输入设备或智能设备输入的字符或字符串,能够轻量化对输入的字符或字符串的解析,即除了基本的数学运算外,各类系统函数,例如三角函数、对数函数、根式、极限、绝对值等所有函数全部采用本发明的表达结构来解析。优选地,例如在输入求积函数的时候,MEIL使用Prod_(k=1)^n k^2来解析。MEIL使用“_”表示求积下限、“()”辅助输入求积下限。公式中第一个“^”符号表示求积上限,使用“空格”将上下限参数部分和求积表达式分开。因此MEIL使用“_”、“^”、“空格”、“()”四种符号辅助输入。优选地,LaTeX通过\prod_{k=1}^nk^2来解析。LaTeX使用“\”辅助函数表达,使用“_”表示求积下限、“{}”辅助输入求积下限,公式中第一个“^”符号表示求积上限。因此,LaTeX使用“\”、“_”、“{}”、“^”四种符号辅助输入。优选地,Mathematic通过Product[k^2,{k,1,n}]来解析。Mathematic使用“[]”辅助函数输入,使用“{}”辅助积分上下限输入,使用“,”作为参数分割符号。优选地,Mathematic使用“,”、“{}”、“[]”三种符号辅助输入。优选地,Maple使用Product(k^2,k=1..n)来解析。Maple使用“()”辅助函数输入,使用“..”辅助上下限参数输入,使用“,”作为参数分割符号。优选地,Maple使用“()”、“,”、“.”三种符号辅助输入。本发明使用product(k=1,n,k^2)解析/>使用“()”辅助函数输入,使用“,”作为参数分隔符号,共两种符号辅助输入。因此,本发明的面向盲人的数学公式编辑方法能够轻量化复杂结构表达的字符或字符串,减少了盲人、视力障碍者输入的符号的种类。盲人、视力障碍者只需要输入函数名和该函数的参数结构就能实现数学公式的编辑。而且,通过轻量化的表达结构解析盲人、视力障碍者输入的字符或字符串能够提高编辑的准确性和提高生成关于数学公式代码的线性字符或字符串的效率。此外,轻量化的表达结构使用第二类辅助符号分割函数作用域内的参数,能够保证函数名大小写不敏感。
优选地,计算机或智能设备以第一顺序读取第一类辅助符号内的参数。在数学公式为上下参数结构的情况下,计算机或智能设备通过第一顺序读取得到的参数以第二顺序标注数学公式的上下参数的方式生成线性字符或字符串。考虑到盲人学习习惯、使用计算机习惯。本发明采用第一顺序读取表达结构内的参数。采用第二顺序表述数学公式的上下参数。第一顺序和第二顺序符合盲文语法顺序。具体而言,中国数学盲文是一种中缀形式的线性数学公式,所有操作数、操作符、操作模块严格地从左到右分布,指数等上下结构的数学符号严格的从下到上分布,因此计算机设备或智能设备采用从左至右的第一顺序来读取参数,并采用从下到上的第二顺序来标注数学公式的上下参数,符合盲人、视力障碍者编辑数学公式的环境。优选地,第一顺序可以是从左至右。第二顺序可以是从下到上。优选地,现有的数学公式编辑方法将上下标参数放在公式之后进行表达,不符合盲人的盲文的读写逻辑。例如,Mathematic使用Product[k^2,{k,1,n}]输入将上下标参数放在了求积公式之后。Maple使用Product(k^2,k=1..n)输入,同样将上下标参数放在了求积公式之后。然而中国盲文的输入或阅读的顺序均是从左至右,即对于盲人来说其上下标参数应该在函数名之后进行标注。放在积分公式之后进行标注不符合盲文的读写逻辑,可能造成盲人理解困难。进一步,在编辑较长的数学公式的情况下,这种编辑方式不仅可能使得盲人遗漏相应参数,而且容易引起歧义。本发明使用product(k=1,n,k^2)输入/>参数顺序从下到上,操作符顺序从左到右,这种解析方式与中国数学盲文语法规则严格匹配,不仅更容易使得盲人掌握并熟练使用,而且能够减少编辑数学公式的错误率和提高编辑效率。
优选地,本实施的表达结构用于解析数学公式中的系统函数。例如,求和用sum(下限,上限,求和函数)来解析盲人、视力障碍者的输入。如通过表达结构被解析为sum(k=m,n,f(k))来表示求和式。优选地,若只输入两个参数,例如,求和式∑k=mf(k)被解析为sum(k=m,f(k))。优选地,求积用product(下限,上限,求和函数)来解析。如求积式被解析为product(k=m,n,f(k))。优选地,若只输入两个参数,例如,∏k=mf(k)被解析为product(k=m,f(k))则表示求和式。优选地,积分被解析为int(积分下限,积分上限,积分公式,被积变量),比如/>被解析为int(a,b,f(x),x)。优选地,不定积分∫f(x)dx被解析为int(f(x),x)。
优选地,表达结构中的函数名可以是常用的三角函数名。例如三角函数名可以是sin、cos、tan、sec、csc、cot、sinh、cosh、tanh、sech、csch、coth、arcsin、arccos、arctan、arccosh、arccot、arccoth、arccsc、arccsch、arcsec、arcsech、arcsinh、arctanh。优选地,sinx被表达结构解析为sinx。优选地,sinaf被表达式解析为sinα。sin(2af)被解析为sin(2α)。sin(x+pi/2)被解析为sin(af+bt)被解析为sin(α+β)。
优选地,一般对数logab被表达结构解析为log(a,b)函数。自然对数ln(x)被表达结构解析为ln(x)。优选地,由于本实施例采用表达结构来解析输入字符或字符传中的系统函数,因此本实施例提供的数学公式编辑方法在字母与系统函数之间不支持隐含乘,所以函数名前有字母时要加乘号。如xln(x)需输入为x*ln(x),否则表达结构无法解析xln(x),减少了可能造成的歧义。
优选地,被表达结构解析为平方根函数sqrt(x)。/>被表达结构解析为root(x+1,3)。
优选地,极限被表达结构解析为lim(下标,被求公式),如lim(x->0,sin(x)/x)表示优选地,绝对值函数被表达结构解析为abs()。
优选地,本实施例提供的数学公式编辑方法针对非系统函数类的字符可以使用MEIL、LaTeX、Mathematic、Maple等数学公式编辑方法的映射关系。例如,π可以用pi表示。e可以用e表示。∞可以用inf表示。γ可以用gamma表示。Δ可以用dt表示。ξ可以用yb表示。α可以用af表示。β可以用bt表示。θ可以用st表示。导数可以使用’表示。例如y’,f’(x)。阶乘可以用!表示。如a!、(a+b)!。积分置换符号可以用“|”来表示。比如被表达结构解析为y|(0,1)。/>被表达结构解析为(x+x2)|(0,1)。
优选地,矩阵可以使用[]输入,行与行使用”;”隔开,列与列使用”,”隔开,如[1,0,0;0,1,0;0,0,1]表示矩阵
实施例2
本实施例是对实施例1的进一步改进和补充。
本实施例提供的数学公式编辑方法利用数学公式中缀格式进行编辑,能够利用键盘等计算机输入设备在任何文本编辑器编辑数学公式。在获得输入的字符或字符串后,执行以下步骤:
S300:判断一个完整的输入阶段内容,字符是否出现重复的情况。
S400:在一个完整的输入阶段内,如果字符没有出现重复的情况下,对输入的线性字符或字符串进行转换,从而生成对应的盲文ASCII码。
S600:基于盲文ASCII码以实时或异步的方式将盲人输入的字符或字符串反馈至盲人能够感知的计算设备,使得盲人能够基于计算设备判断所输入的数学符号的正确性。优选地,实时的方式可以是用户输入一个字符就转换为盲文ASCII码字符,然后通过计算设备反馈给用户。计算设备可以是点显器或者音频设备。音频设备可以将盲文文件转换为语音,然后通过扬声器、耳机等设备传递给用户。优选地,异步的方式可以是将用户输入的完整的数学公式转为对应的盲文ASCII码字符串并通过计算设备反馈给用户。
优选地,在步骤S300之后可以执行步骤S400。
S500:在一个完整的输入阶段内的字符出现重复的情况下,基于表征数学符号、数字以及字母的线性字符对完整的输入阶段内的线性字符串进行分割生成至少一个第一类线性字符串。在第一类线性字符串对应的字符出现重复的情况下,基于数字、字母的数据类型预测重复的字符表征的至少一种数学含义。基于至少一种数学含义对第一类线性字符串进行分割生成重复的字符表征同一种数学含义的第二类线性字符串。盲人或视力障碍者在基于盲文语法编辑数学公式的情况下,面对盲文数学公式的一维线性结构引起的歧义输入,导致数学公式编辑的错误率较高,降低了编辑数学公式的效率。而本发明采用采用预测方式对引起歧义的重复字符进行判断,并进行分割,从而保证分割后的重复的字符只表示一种数学含义,达到无歧义的技术效果。进而通过这种保证输入无歧义的处理方式,进一步提高数学公式编辑的准确性和生成关于数学公式代码的线性字符或字符串的效率。此外,在这种基于重复字符表征相同数学含义的方式来分割一个较长的数学公式,也符合盲人、视力障碍者的读写盲文的习惯,不需要盲人记忆完整的数学公式,有利于盲人、视力障碍者理解,能够短时间内摸读计算机设备(例如,点显器)反馈的已编辑的数学公式,并判断是否编辑错误从而减少编辑数学公式的错误率和有利于提高数学公式的编辑效率。
实施例3
本实施例是对实施例1、2及其组合的进一步改进和补充。
优选地,在将第一类线性字符串中的重复的字符表征的可能的至少一种数学含义转换为对应至少一种数学含义的盲文ASCII码的过程中,或者将字符转换为盲文ASCII码的过程中,还执行如下步骤:
S510:对输入的第一类线性字符串或输入的字符或输入的字符串进行文本分词生成分词栈。优选地,将输入的字符或字符串转换为线性字符或字符串。优选地,对线性字符或字符串进行文本分词生成分词栈。
S511:以双指针结构对第一类线性字符串进行文本匹配、文本序列分割、文本序列补全及属性值标注,从而生成保留片段属性值的分词片段。优选地,S511还包括如下步骤:
S511.1:提取线性字符串单个元素,并判断其属性。优选地,单个元素属性可以归类为字符、数字、小数点、运算符。优选地,可以通过多个指针来表征元素的属性信息、匹配信息、分割信息等。对线性字符或字符串的预处理至少包括各个指针的初始化。优选地,可以按照Start、End、State、T指针提取线性字符或字符串。优选地,初始化Start、End、State、T指针。T、State指针可以实现文本的匹配。优选地,文本匹配可以是正向匹配。T指针可以保存当前元素的属性信息。State指针可以保存之前元素的属性信息。Start指针可以保存在进行下一次文本分割前的文本分割的起始索引。End指针可以保存在进行下一次文本分割前的文本分割的结束索引。优选地,可以使用Start、End指针实现最大匹配。优选地,字符可以用“1”表示。数字。可以用“2”表示小数点。可以用“3”表示操作符。即运算符号可以用“4”表示。
优选地,判断索引值是否小于字符串的长度。如果索引值小于字符串的长度则进入步骤S511.2进行分词类别的判断。如果索引值大于字符串的长度,则进行文本序列分割。
S511.2:提取当前元素属性值,结合相邻元素属性值,判断双元素的分词类别。优选地,可以根据End指针提取元素,判断当前元素属性值。优选地,分词类别可以有16种。其中有4种类别为文本序列待匹配。5种类别为文本序列待分割。7种类别为输入文本语法错误。优选地,双指针结构可以是将用户输入的线性数学公式转化为可访问的字符串。通过其下标index访问字符串。在访问过程中,使用后指针记录字符串当前下标index位置的字符属性,使用前指针记录字符串index-1位置的字符属性。根据前指针与后指针处理完当前字符之后,将当前字符属性赋值给前指针,将后指针置空。指针值可以是“100”(错误信息)、“1”(字符)、2(数字)、“3”(小数点)、“4”(运算符号)。
优选地,得到分词类别后,首先判断文本序列的如果分类为输入文本语法错误,则对文本语法错误信息进行处理,返回当前索引值。同时,也会返回输入文本语法错误信息。优选地,检测到输入错误类型,返回文本错误信息的当前索引值。例如,在输入小数3.14时,用户错误的输入为3..14。在遇到“..”时,State=3,T=3,检测到输入错误,此时计算机设备或智能设备可以将此处“..”标记。优选地,标记可以是在计算机设备或智能设备的输出设备显示,例如屏幕或点显器。优选地,还可以将此处输入文本错误信息通过计算机设备或智能设备的语音输出设备输出。例如语音输出:索引1到2出现输入错误,出现连续小数点,请改正。
优选地,如果分类为文本序列待匹配,则进行文本正向匹配。正向匹配可以是从左至右遍历文本,并依据相邻元素的属性进行分类匹配。优选地,可以通过State指针记录前一元素的属性值。T指针记录当前元素的属性值。在每次匹配结束后更新State指针的指针值。通过以上方式实现正向匹配。优选地,在文本继续正向匹配的情况下,更新End指针信息。将T指针的指针值赋给State指针后进入循环。例如,在遇到待分词文本为“10”时,此时两元素都为数字,State指针为1,T指针为1,则继续左向文本匹配。将T指针的指针值赋值给State指针。End指针+1,继续循环匹配。优选地,如果文本序列无需待匹配,则进行文本序列待分割。
优选地,如果分类为文本序列待分割,则进行文本分割。优选地,可以通过最大匹配分割文本,从而提取分割片段。保留分割片段属性值。基于MathML编码规则将该片段压入栈中。优选地,可以通过Start、End双指针实现最大匹配分割。例如,在遇到待分词文本为“sin(x)”时,Start指针和End指针首先初始化为0。在End指针索引到“s”、“i”、“n”时,由于以上元素都为字符属性,执行正向匹配。End指针持续更新。在End指针索引到“)”符号时,判断执行文本分割,匹配从Start值0开始,到End指针的指针值为3结束。长度为End-Start=3的字符串为分割片段,在这里为分割片段为“sin”。
S511.3:进行文本序列补全,将隐含乘号、分词结束符号依规则压入分词栈。优选地,在进行文本分割时,依据State、T指针的指针值判断是否需要加入隐含乘号。在检测到数字与字母、数字与括号、括号与括号时,将隐含乘指针值赋为1,不对End指针值进行更新。例如在遇到“)(”时,将隐含乘指针赋值为1,不对End值进行更新,下次分词将从“(”开始。
S511.4:重复执行S511.1、S511.2和S511.3循环遍历线性字符或字符串,直到无元素待遍历。
S512:将分词片段压入栈以生成所述分词栈。优选地,基于MathML编码规则将分词片段压入栈。优选地,在基于MathML编码规则将分词片段压入栈的过程中,判断文本补全信息以将隐含乘信息和/或分词结束符号保留并压入分词栈。即在步骤S511.3得到文本是否需要补全的信息,步骤S512对该补全信息进行处理。优选地,补全的信息可以是判断是否需要补全“*”。优选地,在将分词片段压入栈的过程中会将“*”压入栈,实现隐含乘的写入。
S512.1:对表示前隐含乘的第一类隐含乘指针的指针值进行判断,若为第一类值则将表示乘法的符号入栈,完成第一类隐含乘的写入。同时,重置第一类隐含乘指针。
S512.2:将分割好的文本序列与其属性值入栈。
S512.3:对第一类隐含乘指针后的第二类隐含乘指针的指针值进行判断,若为第一类值则将表示乘法的符号入栈,并重置第二类隐含乘指针。优选地,第一类值可以用“1”表示。优选地,重置可以是将第一类隐含乘指针或第二类隐含乘指针的指针值由第一类值重置为“0”或者“1”。例如,在第一类值为“1”的情况下,重置可以将第一类隐含乘指针或第二类隐含乘指针的指针值重置为“0”。优选地,表示乘法的符号可以是“*”。
S513:在步骤S512处理的过程中检查索引值是否超出文本的长度。即,对指针是否溢出做一个判断。如果溢出则将”;”与其属性值写入栈中并返回分词栈。若没有溢出则重新进入循环。即索引值没有超过文本的长度则进入步骤S511。如果索引值超出文本的长度则进行文本补全处理。
S520:基于分词栈与MathML代码匹配生成MathML文件。至少包括如下步骤:
S521:基于解析分词栈获取的分词栈内的元素属性、元素内容与MathML代码匹配,从而生成MathML文件。优选地,MathML文件可以是MathML Content文件。在与MathML代码匹配的过程中,以包括操作符栈、操作数栈的双栈结构完成优先级判断。基于优先级依次出栈生成MathML文件。操作数栈也即操作模块栈,通过递归生成的公式子模块的MathML代码也会依次进入操作数栈,若公式为复杂的复合结构,其内包含多种操作符,通过双栈结构可以保证依据不同操作符优先级顺序,将中缀形式的线性数学公式准确转为前缀形式的MathMLContent代码,进而将生成的MathML Content片段直接组合成数学公式的MathML Content文件,避免了中间代码的产生,保证生成MathML的准确性。
S521.1:以包括操作符栈、操作数栈的双栈结构完成优先级判断的步骤至少包括:
1、提取分词栈内的分词片段。优选地,可以依据Loc指针提取分词栈中分词片段与其属性的键值对。将属性值赋值给State指针。将分词片段的元素内容赋值给Word指针。
2、基于属性值判断分词片段内的符号是否为操作符号。优选地,如果分词片段内不是操作符号则匹配映射操作数模板生成操作数的MathML代码。优选地,可以通过State指针判断当前分词片段的属性值。通过属性值判断是否为操作符。例如,可以通过判断指针值是否为“4”。“4”表示操作符。
3、如果分词片段内的符号是操作符号且该操作符号为第一类辅助符号的第一符号,则继续提取分词片段。
4、如果分词片段内的符号是操作符号且该操作符号为结束符号,则弹出操作数栈内最上层元素。优选地,结束符号可以是第一类辅助符号的第二符号。优选地,结束符号还包括“;”。本发明使用两种符号控制递归和迭代。第一符号“(”是递归开始符号,“)”和“;”为递归结束符号,且本发明只通过以上两类符号控制递归开始和结束。在遇到第一符号时立即检索下一个分词片段并以其为输入进入递归,在遇到第二符号或“;”时结束递归并将生成的MathML Content代码压入操作数栈内等待操作。通过该设置方式,本发明只通过识别第一类辅助符号的第一符号和第二符号来控制复杂数学公式中的优先级,使用更少的符号类别的方式解析数学公式以达到轻量化数学公式转换为盲文公式的工作量的同时,不仅使得翻译转换的效率提高,而且由于控制结构简单,符合数学盲文书写规则,增加了数学公式转换为盲文公式的准确率。
5、如果分词片段内的符号是操作符号且该操作符号不是第一符号和结束符号的情况下,则检查操作符栈内是否有元素。优选地,如果操作符栈内没有元素则将当前分词片段入栈。优选地,如果操作符栈内有元素,则判断当前分词片段和操作符栈内最上层元素的优先级。优选地,如果当前分词片段优先级大于操作符栈内最上层元素,则将当前分词片段压入操作符栈。如果当前分词片段优先级小于操作符栈内最上层元素,则弹出操作符栈内最上层元素。优选地,以操作符栈内最上层元素为操作元素。优选地,更新Loc指针,并结束当前循环,进行下次迭代。该操作元素通过匹配相应的映射匹配模板,从而生成操作符的MathML代码。
S530:基于以第一标识符和第二标识符表征的映射匹配模板将MathML文件转换为盲文ASCII码。优选地,首先基于DOM解析MathML Content文件,提取DOM根节点信息。将DOM包括运算符节点和运算模块节点。可以通过DOM根节点信息访问运算符节点和运算模块节点。优选地,运算符节点包括操作符信息。运算模块节点包括操作数信息。优选地,依据DOM根节点映射匹配模板。优选地,将第一标识符和第二标识符插入至映射匹配模板。优选地,依据DOM根节点映射匹配模板的步骤如下:
S531:结合运算符节点和运算模块节点信息,判断是否添加第一标识符。
S532:对运算模块节点(操作数)进行盲文ASCII码转换。在转换的过程中判断是否需要生成新节点。优选地,如果需要生成新的节点则重新基于DOM解析MathML Content文件,提取DOM根节点信息。
S532:如果不需要生成的新的节点,则对第二标识符的省略性进行判断,将运算模块转换成符合中国数学盲文的运算模块。优选地,符合中国数学盲文的运算模块至少包括第二标识符和操作数。
S533:基于符合中国数学盲文的运算模块生成盲文ASCII码。
优选地,第一标识符和第二标识符如下表所示。
表1第一标识符和第二标识符
优选地,第一标识符和第二标识符的添加带来的有益效果是:
现有技术在将MathML文件翻译成盲文后进行规则实现去除冗余,即分别采用翻译和去冗两个步骤进行翻译。从而需要首先分析MathML Content的数学含义,转为中国数学盲文后,第二步分析盲文公式的数学含义进行去冗操作。但是中国数学盲文是一种上下文敏感的语言,且只有64个盲块,因此使用大量的空方、组合盲块来辅助公式表达,所以相同的盲块在不同的位置有不同的含义,空方的使用也会有不同的含义。因此随着盲文公式的复杂度上升,对其数学含义分析的难度将成倍增加,会直接导致化简准确性的降低,从而降低翻译准确性。而本发明从辅助公式结构、语义表达两个方面,即第一标识符和第二标识符,将辅助盲块归类为10个第一标识符与5个第二标识符,并基于第一标识符与第二标识符设计通用转换模板,即映射匹配模板,能够在分析MathML Content数学含义时直接完成第一标识符与第二标识符的添加、省略情况进行判断,将两步减少为一步,避免再次分析盲文公式数学含义,相对两步处理的翻译方式,能够在短时间、系统复杂度降低的情况下显著提高准确率。
实施例4
如图2所示,本实施例提供一种面向盲人的数学公式编辑装置。通过计算机的输入设备或智能设备编辑数学公式在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。
一种面向盲人的数学公式编辑装置,至少包括:输入模块100和显示模块300。输入模块100用于将基于命令行的方式输入的字符或字符串转换为线性字符或字符串。显示模块300用于将盲文ASCII码以盲人能够感知的方式反馈至盲人。优选地,显示模块可以是点显器。优选地,以盲人能够感知的方式还包括语音输出。
优选地,输入模块100配置为接收计算机的输入设备或智能设备传输的数据信息或信号。通过该设置方式输入模块100能够接收到用户输入的字符。优选地,字符至少包括盲文字符。优选地,输入模块100配置为:在响应字符或字符串生成线性字符或字符串的过程中,以表达结构来解析字符或字符串。在字符或字符串无法解析成表达结构的情况下,停止响应字符或字符串生成线性字符或字符串,并将表示输入错误的第一类反馈信息反馈至显示模块300。优选地,识别字符或字符串中的函数名,以表达结构来解析表征函数类的字符或字符串。优选地,表达结构由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成。优选地,第一类辅助符号包括第一符号和第二符号。第一符号可以是“(”。第二符号可以是“)”。第二类辅助符号可以是“,”。优选地,表达结构可以是FunctionName(参数1,参数2…)。优选地,第一类反馈信息可以是用户输入的字符无法被解析成表达结构的信息。例如,函数名输入错误。例如,函数名能够被解析,但是参数的个数超出该函数作用域的限值。
通过该以上置方式,本发明的有益效果是:
现有的数学公式输入法例如MEIL、LaTeX、Mathematic、Maple都以明眼人学习习惯、学习思维为准所设计,更多考虑输入功能的完整性,通常包含复杂的输入规则,没有考虑到盲人的掌握能力、盲人使用计算机或智能设备编辑数学公式的输入习惯、学习习惯以及与盲文语法的匹配度,因此盲人想要学习并熟练掌握存在很大难度。而本发明基于由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成的表达结构来解析盲人、视力障碍者通过计算机输入设备或智能设备输入的字符或字符串,能够轻量化对输入的字符或字符串的解析,即除了基本的数学运算外,各类系统函数,例如三角函数、对数函数、根式、极限、绝对值等所有函数全部采用本发明的表达结构来解析。优选地,例如在输入求积函数的时候,MEIL使用Prod_(k=1)^n k^2来解析。MEIL使用“_”表示求积下限、“()”辅助输入求积下限。公式中第一个“^”符号表示求积上限,使用“空格”将上下限参数部分和求积表达式分开。因此MEIL使用“_”、“^”、“空格”、“()”四种符号辅助输入。优选地,LaTeX通过\prod_{k=1}^nk^2来解析。LaTeX使用“\”辅助函数表达,使用“_”表示求积下限、“{}”辅助输入求积下限,公式中第一个“^”符号表示求积上限。因此,LaTeX使用“\”、“_”、“{}”、“^”四种符号辅助输入。优选地,Mathematic通过Product[k^2,{k,1,n}]来解析。Mathematic使用“[]”辅助函数输入,使用“{}”辅助积分上下限输入,使用“,”作为参数分割符号。优选地,Mathematic使用“,”、“{}”、“[]”三种符号辅助输入。优选地,Maple使用Product(k^2,k=1..n)来解析。Maple使用“()”辅助函数输入,使用“..”辅助上下限参数输入,使用“,”作为参数分割符号。优选地,Maple使用“()”、“,”、“.”三种符号辅助输入。本发明使用product(k=1,n,k^2)解析/>使用“()”辅助函数输入,使用“,”作为参数分隔符号共两种符号辅助输入。因此,本发明的面向盲人的数学公式编辑方法能够轻量化复杂结构表达的字符或字符串,减少了盲人、视力障碍者输入的符号的种类。盲人、视力障碍者只需要输入函数名和该函数的参数结构就能实现数学公式的编辑。而且,通过轻量化的表达结构解析盲人、视力障碍者输入的字符或字符串能够提高编辑的准确性和提高生成关于数学公式代码的线性字符或字符串的效率。此外,轻量化的表达结构使用第二类辅助符号分割函数作用域内的参数,能够保证函数名大小写不敏感。
优选地,输入模块100以第一顺序读取第一类辅助符号内的参数。在数学公式为上下参数结构的情况下,计算机或智能设备通过第一顺序读取得到的参数以第二顺序标注数学公式的上下参数的方式生成线性字符或字符串。考虑到盲人学习习惯、使用计算机习惯。本发明采用第一顺序读取表达结构内的参数。采用第二顺序表述数学公式的上下参数。第一顺序和第二顺序符合盲文语法顺序。具体而言,中国数学盲文是一种中缀形式的线性数学公式,所有操作数、操作符、操作模块严格地从左到右分布,指数等上下结构的数学符号严格的从下到上分布,因此计算机设备或智能设备采用从左至右的第一顺序来读取参数,并采用从下到上的第二顺序来标注数学公式的上下参数,符合盲人、视力障碍者编辑数学公式的环境。优选地,第一顺序可以是从左至右。第二顺序可以是从下到上。优选地,现有的数学公式编辑方法将上下标参数放在公式之后进行表达,不符合盲人的盲文的读写逻辑。例如,Mathematic使用Product[k^2,{k,1,n}]输入将上下标参数放在了求积公式之后。Maple使用Product(k^2,k=1..n)输入,同样的将上下标参数放在了求积公式之后。然而中国盲文的输入或阅读的顺序均是从左至右,即对于盲人来说其上下标参数应该在函数名之后进行标注。放在积分公式之后进行标注不符合盲文的读写逻辑,可能造成盲人理解困难。进一步,在编辑较长的数学公式的情况下,这种编辑方式不仅可能使得盲人遗漏相应参数,而且容易引起歧义。本发明使用product(k=1,n,k^2)输入/>参数顺序从下到上,操作符顺序从左到右,这种解析方式与中国数学盲文语法规则严格匹配,不仅更容易使得盲人掌握并熟练使用,而且能够减少编辑数学公式的错误率和提高编辑效率。
优选地,输入模块100配置为判断一个完整的输入阶段内容,字符是否出现重复的情况。在一个完整的输入阶段内,如果字符没有出现重复的情况下,输入模块100将线性字符或字符串传输至转换模块200。转换模块200配置为将线性字符或字符串转换为盲文ASCII码。优选地,转换模块200基于盲文ASCII码以实时或异步的方式将盲人输入的字符或字符串反馈至显示模块300,使得盲人能够基于显示模块300判断所输入的数学符号的正确性。优选地,实时的方式可以是用户输入一个字符就转换后的盲文ASCII码字符通过显示模块300反馈给用户。显示模块300可以是点显器。优选地,异步的方式可以是将用户输入的完成的数学公式转为对应的盲文ASCII码字符串并通过显示模块300反馈给用户。
优选地,输入模块100配置为在一个完整的输入阶段内的字符出现重复的情况下,基于表征数学符号、数字以及字母的线性字符对完整的输入阶段内的线性字符串进行分割生成至少一个第一类线性字符串。在第一类线性字符串对应的字符出现重复的情况下,基于数字、字母的数据类型预测重复的字符表征的至少一种数学含义。基于至少一种数学含义对第一类线性字符串进行分割生成重复的字符表征同一种数学含义的第二类线性字符串。盲人或视力障碍者在基于盲文语法编辑数学公式的情况下,面对盲文数学公式的一维线性结构引起的歧义输入,导致数学公式编辑的错误率较高,降低了编辑数学公式的效率。而本发明采用采用预测方式对引起歧义的重复字符进行判断,并进行分割,从而保证分割后的重复的字符只表示一种数学含义,达到无歧义的技术效果。进而通过这种保证输入无歧义的处理方式,进一步提高数学公式编辑的准确性和生成关于数学公式代码的线性字符或字符串的效率。此外,在这种基于重复字符表征相同数学含义的方式来分割一个较长的数学公式,也符合盲人、视力障碍者的读写盲文的习惯,不需要盲人记忆完整的数学公式,有利于盲人、视力障碍者理解,能够短时间内摸读计算机设备(例如,点显器)反馈的已编辑的数学公式,并判断是否编辑错误从而减少编辑数学公式的错误率和有利于提高数学公式的编辑效率。
优选地,转换模块300配置为对输入的第一类线性字符串或输入的字符或输入的字符串进行文本分词生成分词栈。优选地,对输入的字符或输入的字符串进行文本分词生成分词栈。优选地,转换模块300以双指针结构对第一类线性字符串进行文本匹配、文本序列分割、文本序列补全及属性值标注,从而生成保留片段属性值的分词片段。优选地,转换模块还执行实施例3中的步骤S511至步骤S533。重复的内容不再赘述。
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。

Claims (6)

1.一种面向盲人的数学公式编辑方法,通过计算机的输入设备或智能设备编辑数学公式,所述方法至少包括:基于命令行的方式输入能够表示数学符号的字符或字符串;
基于所述字符或字符串生成关于数学公式代码的线性字符或字符串;
其特征在于,
计算机或智能设备在响应所述字符或字符串生成所述线性字符或字符串的过程中,以由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成的表达结构来解析所述字符或字符串,
其中,所述计算机或智能设备以第一顺序读取所述第一类辅助符号内的所述参数,并且在数学公式为上下参数结构的情况下,所述计算机或智能设备通过所述第一顺序读取得到的所述参数以第二顺序标注所述数学公式的上下参数的方式生成所述线性字符或字符串,
在基于数字、字母的数据类型无法预测重复的字符的至少一种数学含义的情况下,
基于第一类线性字符串构造表示结构的第一标识符和表示语义的第二标识符;
基于所述第一标识符和第二标识符表示所述第一类线性字符串中的重复的字符表征的至少一种数学含义的盲文ASCII码;
对输入的所述第一类线性字符串进行文本分词生成分词栈;
基于所述分词栈与MathML代码匹配生成MathML文件;
以所述第一标识符和第二标识符表征的映射匹配模板将所述MathML文件转换为盲文ASCII码;
基于所述盲文ASCII码以实时或异步的方式将重复的字符表征的至少一种数学含义的第二类反馈信息反馈至计算设备,使得盲人能够基于所述计算设备选择重复的字符所表征的数学含义。
2.根据权利要求1所述的数学公式编辑方法,其特征在于,在所述字符或字符串无法解析成所述表达结构的情况下,停止响应所述字符或字符串生成所述线性字符或字符串,并将表示输入错误的第一类反馈信息反馈至盲人能够感知的计算设备。
3.根据权利要求2所述的数学公式编辑方法,其特征在于,在一个输入阶段内的所述字符出现重复的情况下,基于表征数学符号、数字以及字母的线性字符对所述输入阶段内的所述线性字符串进行分割生成至少一个第一类线性字符串,其中,
在所述第一类线性字符串对应的字符出现重复的情况下,基于数字、字母的数据类型预测所述重复的字符表征的至少一种数学含义;
基于至少一种数学含义对所述第一类线性字符串进行分割生成重复的字符表征同一种数学含义的第二类线性字符串。
4.根据权利要求1所述的数学公式编辑方法,其特征在于,对所述第一类线性字符串进行文本分词生成分词栈的步骤至少包括:
以双指针结构对所述第一类线性字符串进行文本匹配、文本序列分割、文本序列补全及属性值标注,从而生成保留片段属性值的分词片段;
将所述分词片段压入栈以生成所述分词栈。
5.根据权利要求4所述的数学公式编辑方法,其特征在于,所述分词片段压入栈的步骤至少包括:
对表示前隐含乘的第一类隐含乘指针的指针值进行判断,若为第一类值则将表示乘法的符号入栈,并重置所述第一类隐含乘指针;
将分割好的所述文本序列与其属性值入栈;
对所述第一类隐含乘指针后的第二类隐含乘指针的指针值进行判断,若为第一类值则将表示乘法的符号入栈,并重置第二类隐含乘指针。
6.一种面向盲人的数学公式编辑装置,至少包括:
输入模块(100),用于将基于命令行的方式输入的字符或字符串转换为关于数学公式代码的线性字符或字符串,
显示模块(300),用于将盲文ASCII码以盲人能够感知的方式反馈至盲人,
其特征在于,
所述输入模块(100)配置为:在响应所述字符或字符串生成所述线性字符或字符串的过程中,以由函数名、表示函数作用域的第一类辅助符号以及用于分割函数作用域内参数的第二类辅助符号构成的表达结构来解析所述字符或字符串,在所述字符或字符串无法解析成所述表达结构的情况下,停止响应所述字符或字符串生成所述线性字符或字符串,并将表示输入错误的第一类反馈信息反馈至所述显示模块(300),
在基于数字、字母的数据类型无法预测重复的字符的至少一种数学含义的情况下,
基于第一类线性字符串构造表示结构的第一标识符和表示语义的第二标识符;
基于所述第一标识符和第二标识符表示所述第一类线性字符串中的重复的字符表征的至少一种数学含义的盲文ASCII码;
对输入的所述第一类线性字符串进行文本分词生成分词栈;
基于所述分词栈与MathML代码匹配生成MathML文件;
以所述第一标识符和第二标识符表征的映射匹配模板将所述MathML文件转换为盲文ASCII码;
基于所述盲文ASCII码以实时或异步的方式将重复的字符表征的至少一种数学含义的第二类反馈信息反馈至计算设备,使得盲人能够基于所述计算设备选择重复的字符所表征的数学含义。
CN202010571287.9A 2020-06-19 2020-06-19 一种面向盲人的数学公式编辑方法及装置 Active CN111753503B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010571287.9A CN111753503B (zh) 2020-06-19 2020-06-19 一种面向盲人的数学公式编辑方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010571287.9A CN111753503B (zh) 2020-06-19 2020-06-19 一种面向盲人的数学公式编辑方法及装置

Publications (2)

Publication Number Publication Date
CN111753503A CN111753503A (zh) 2020-10-09
CN111753503B true CN111753503B (zh) 2023-11-21

Family

ID=72675550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010571287.9A Active CN111753503B (zh) 2020-06-19 2020-06-19 一种面向盲人的数学公式编辑方法及装置

Country Status (1)

Country Link
CN (1) CN111753503B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835926A (zh) * 2021-02-09 2021-05-25 深圳市极致科技股份有限公司 公式引擎开发方法、装置、电子设备和存储介质
CN113326675B (zh) * 2021-08-04 2022-09-13 江西风向标教育科技有限公司 一种用于教育资源库的公式处理方法及系统
JP7327451B2 (ja) * 2021-09-14 2023-08-16 カシオ計算機株式会社 入力支援装置、入力支援システム、入力支援方法及びプログラム
CN116798046B (zh) * 2023-04-19 2024-05-17 江西风向标智能科技有限公司 初中数学公式自动批改方法、设备、介质和程序产品
CN116227474B (zh) * 2023-05-09 2023-08-25 之江实验室 一种对抗文本的生成方法、装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014042976A2 (en) * 2012-09-15 2014-03-20 Numbergun Llc, A Utah Limited Liability Company Flexible high-speed generation and formatting of application-specified strings
CN107368474A (zh) * 2017-07-07 2017-11-21 浙江理工大学 一种汉文到盲文的自动高效翻译转换方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014042976A2 (en) * 2012-09-15 2014-03-20 Numbergun Llc, A Utah Limited Liability Company Flexible high-speed generation and formatting of application-specified strings
CN107368474A (zh) * 2017-07-07 2017-11-21 浙江理工大学 一种汉文到盲文的自动高效翻译转换方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于马尔科夫模型的智能汉字盲文转换系统设计";李志鹏 等;《单片机与嵌入式系统应用》;全文 *

Also Published As

Publication number Publication date
CN111753503A (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
CN111753503B (zh) 一种面向盲人的数学公式编辑方法及装置
Ruskeepää Mathematica navigator: mathematics, statistics, and graphics
André et al. Structured documents
EP0686286B1 (en) Text input transliteration system
Grätzer Math into LATEX
CN100520768C (zh) 带有跨语言阅读向导的计算机辅助阅读系统和方法
Winograd Computer software for working with language
Alexa et al. A review of software for text analysis
Peels et al. Document architecture and text formatting
US20090083300A1 (en) Document processing device and document processing method
RU61442U1 (ru) Система автоматизированного упорядочения неструктурированного информационного потока входных данных
Khan et al. Urdu word segmentation using machine learning approaches
EP1830274A1 (en) Server device and name space issuing method
EP0118187B1 (en) Menu-based natural language understanding system
Fayyaz et al. Accessibility of Tables in PDF Documents: Issues, Challenges and Future Directions
US11410575B2 (en) Interface and tools for accessible textbook generation
CN111753555B (zh) 一种基于MathML的数学公式到盲文的翻译方法及系统
EP1237094A1 (en) A method for determining rubies
Nghiem et al. Using MathML parallel markup corpora for semantic enrichment of mathematical expressions
Zhang et al. Survey of user input models for mathematical recognition: Keyboards, mice, tablets, voice
US20090083620A1 (en) Document processing device and document processing method
Sinha Computer Processing of Indian Languages and Scripts—Potentialities & Problems
Dalal et al. Document translation: Dissertations and technical reports
Chen et al. Automating index preparation
Sinclair 4.2 Corpus processing

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
GR01 Patent grant
GR01 Patent grant