语法解析¶
在教育资源中,文本、公式都具有内在的隐式或显式的语法结构,提取这种结构对后续进一步的处理是大有裨益的:
文本语法结构解析
公式语法结构解析
其目的是:
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