文本语法结构解析

本部分主要由EduNLP.SIF.Parse模块实现,主要功能为将文本中的字母、数字等进行提取,将其转换为标准格式。

主要流程介绍

1.按照以下顺序,先后对传入的文本进行判断类型

  • is_chinese:用于匹配中文字符 [u4e00-u9fa5]

  • is_alphabet:匹配公式之外的英文字母,将匹配到的只对两个汉字之间的字母做修正(使用$$包裹起来),其余匹配到的情况视为不合 latex 语法录入的公式

  • is_number:匹配公式之外的数字,只对两个汉字之间的数字做修正(使用$$包裹起来),其余匹配到的情况视为不合 latex 语法录入的公式

2.匹配 latex 公式

  • latex 中出现中文字符,打印且只打印一次 warning

  • 使用_is_formula_legal函数,检查latex公式的完整性和可解析性,对于不合法公式报错

Examples:

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