语法解析

在教育资源中,文本、公式都具有内在的隐式或显式的语法结构,提取这种结构对后续进一步的处理是大有裨益的:

  • 文本语法结构解析

  • 公式语法结构解析

其目的是:

1、将选择题中的括号,填空题中的下划线用特殊标识替换掉,并将字符、公式用$$包裹起来,使item能通过$符号准确的按照类型切割开;

2、判断当前item是否合法,并报出错误类型。

具体处理内容包括:

1.匹配公式之外的英文字母、数字,只对两个汉字之间的字母、数字做修正,其余匹配到的情况视为不合 latex 语法录入的公式

2.匹配“( )”型括号(包含英文格式和中文格式),即括号内无内容或为空格的括号,将括号替换$\SIFChoice$

3.匹配下划线,替换连续的下划线或下划线中夹杂空格的情况,将其替换为$\SIFBlank$

4.匹配latex公式,主要检查latex公式的完整性和可解析性,对latex 中出现中文字符发出警告

文本语法结构解析

将文本中的字母、数字等进行提取,将其转换为标准格式。

Examples:

>>> text = '生产某种零件的A工厂25名工人的日加工零件数_   _'
>>> text_parser = Parser(text)
>>> text_parser.description_list()
>>> text_parser.text
>>> '生产某种零件的$A$工厂$25$名工人的日加工零件数$\\SIFBlank$'

公式语法结构解析

可以检查公式是否合法。

Examples:

>>> text = '支持公式如$\\frac{y}{x}$,$\\SIFBlank$,$\\FigureID{1}$,不支持公式如$\\frac{ \\dddot y}{x}$'
>>> text_parser = Parser(text)
>>> text_parser.description_list()
>>> text_parser.fomula_illegal_flag
>>> 1