挖掘文本类数据 助力教育数据研究
——自然语言处理技术在课程与教学调研中的应用
2021-09-18费宗翔
◎ 费宗翔 田 鹏
课程与教学调研是上海市教育委员会教学教研室(以下简称“市教研室”) 每年的一项常规工作。多年来在调研中积累了大量的课程与教学调研报告(以下简称“调研报告”)。调研报告以文本的形式保存和印刷,内容服务于调研对象。虽然市教研室在开展调研工作前已经对调研报告的内容要素、调研工具格式进行了详细规定,但调研报告数量多、语义描述方式多样、内容表征意义存在模糊性。如何快速、直观地把握调研报告的语义、归纳凝练报告主题、分析评估趋势变化成为一个难题。
随着信息技术的不断发展、计算机算力和存储能力的不断增强,自然语言处理(Natural Language Processing,简称NLP)技术让这一问题的解决成为可能。NLP是人工智能领域的重要组成部分,它可以使计算机理解人类自然语言内容,实现机器语言和人类语言之间的互通。该技术已经日趋成熟,开始应用在我们日常生活的很多方面,比如智能音箱、微博热搜榜等。但NLP在教育领域少有应用,本研究尝试借助NLP技术,对市教研室积累的历年调研报告进行语义分析,提炼报告的核心内容,形成报告的摘要和主题词。为市教研室课程与教学调研专项数据的积累提供支持,为深度分析调研质量提供数据参考。
一、结合调研报告特点,完善语义分析过程
结构化的数据可以通过寻找实体与实体之间、实体各属性间的关系,实现对数据的分析,常见的有学生考试成绩分析等。但调研报告是单纯的文本数据,没有清晰的结构关系,要让计算机能读懂报告文本、理解自然语言,通常离不开语料预处理、特征工程、特征选择、模型训练四个核心步骤。语料即语言材料,它首先要通过洗清、分词、词性标注、去停用词四个主要环节进行预处理;其次通过数字化、向量化将其表示成计算机能够计算的类型,并选择合适的、表达能力强的特征,构造特征向量;最后选择适合的算法模型,并训练模型进行文本分析。
调研报告与一般文本相比,语言比较专业、内容格式丰富、体例相对统一。基于这些特点,笔者选择2015—2019年连续5年、10个区共计415份课程与教学调研报告文件作为语料,开展语义分析。
(一)清洗无用信息,提升分析的速度与精度
调研报告的富文本格式特点,使得我们在语料预处理环节中要更多地关注文本中其他格式信息和无用信息的筛选和清洗,以提升计算机分析的速度和精度。
目前市教研室积累的调研报告大多为使用文字处理软件撰写的电子文档,这些文档包含了大量的图片、表格等富文本格式,如果简单地全文件读取作为学习算法的输入,会影响计算机分析的速度,故需从中摘取单纯的无格式文本。在具体实现过程中,尝试通过调用原生Win32Api软件接口,实现对文档格式的统一处理和去格式转换,再将无格式文本统一存入数据库,以便后续处理。除此之外,调研报告中通常包含诸如附文、附录、附表以及课堂实录等内容,其对报告的主旨只起到辅助说明的作用。但这些文本的格式繁杂、内容过长,容易喧宾夺主,影响分析精度。因此,考虑将其直接删除。得益于调研报告统一的格式规范,通常在主旨报告的开始和结束处都会有一些标识字样,比如,主旨报告的正文结束后,通常有教研员的姓名信息、附录本身也会以某些特殊字样作为开头,故可用正则表达式定位到附录起始位置,将其清理干净。经测试,在清除附录后,主题词和摘要计算的速度及精度都有所提升。
(二)切分调研报告,方便计算机识别
要对调研报告进行数据挖掘与分析,可以先将非结构化的文本数据转为结构化(或半结构化)的数据。2015年之后的调研报告遵循着较为统一的分段规范,基本包括了调研概况、结论和建议等段落,且每个分段前都有清晰的标题,所以考虑将调研报告按段落拆分,通过正则表达式匹配的方式,枚举段落编号将之拆分。拆分后的段落文本,以条目为单位分开存储在数据库中,同时又绑定到报告本身,既可以实现段落的单独提取,也可以按报告重新聚合,为后续对主题模型的训练和调参提供了较大便利。具体如表1所示。
表1 调研报告的拆分表(部分)
调研报告由多个段落组成,段落由句子组成,而词语是构成句子的基本单位。在语义分析过程中,词语是可以被计算机识别、学习的最小单位。因此,在语料处理过程中,必须对中文文本进行专门的分词处理,将报告切分成词语。目前最常用的分词组件是开源的“Jieba”分词,它的功能和易用性都很强。词性在识别语义的过程中也有着重要的作用,故分词后,词语集中每个词的词性,都应当基于语境,给予判断和标注,以便在后续识别学习的过程中,可以有选择性地抽取有意义的部分进行训练,提高模型工作的准确率。例如,停用词的处理就是基于词性标注。中文文本中有很多助词、代词、语气词等词语是不影响文本语句含义的,同时也有一些数字、字符在单个词语层面无实意,可它们的存在又增加了文本数据的维度,冲淡了有意义词语的比例。为了方便分析,将这些词标记为停用词,并在分词后去除这些停用词,以提高文本数据的质量,方便计算机识别。
(三)建设文本数据库,提高文本处理的灵活性
经过前面的语料处理,基于调研报告的词库原型已基本构成,为了数据的持久化和后续处理的共享性,需要建设文本数据库,将文本数据的所有有关信息录入其中。
首先在字典表中,会记录所有出现过的词语(包括停用词),并对它的词性和是否为停用词进行标记;在分词表中,包含了每篇报告的完整分词,每个词映射到字典表中并标记它在正文中的位置。此外,每篇调研报告的标题、工作内容、段落等信息也会录入文本数据库中。整个文本数据库包含了原始调研报告中所有的可读文字,既可以筛选有关文本,又可以聚合还原报告,大大提高了文本处理的灵活性,也为后续应用功能的开发奠定了良好基础。
(四)选择算法模型,实现报告的摘要提取
语义分析中用到的算法有很多,如何结合调研报告的特点,选择适切的算法模型,需要不断试错、调整、优化。例如,特征词提取算法,分词库形成后,通过计算报告中各词组的词频,可以找到文章的高频词,但高频词是不是最能代表文章核心的词呢?调研报告是在同一领域(教学调研)、有相似主题(每个学段有相同的调研主题)的文档,最常出现的词就是“教师”“学生”“教学”等,若这些词被选为报告的核心词并不合适。所以需要调整算法,选择TF-IDF模型来标记报告的特征词组。TF-IDF是一种用于信息检索与数据挖掘的常用加权技术,它将某篇报告中出现频率高且在其他报告中出现频率低的词作为特征词,并赋予高权重,这样的词更可能体现这篇报告的核心与特点。
再比如摘要提取算法,自动的摘要提取可以加速人工检查文本内容的效率。若有一份合理的、有效涵盖调研报告内容的摘要,阅读者就可以快速锁定到需关注的内容,详细精读,提取有价值的内容。TextRank是常用的自动摘要算法,它由Google的PageRank算法改造和演化而来,用于得到文档中概括性较强的句子。TextRank算法将文本拆分成句子、将句子作为网络图中的节点,句子间的相似度用节点间的相似度来表示,从而构建基于句子结构关系的文本网络图。通过对文本网络图的迭代计算可以实现对文本中句子重要性的排序,从而筛选出最重要的句子作为本文的摘要。因此,自动摘要提取的关键在于准确计算句子间的相似度。每个句子是由一个个词语组合而成的,故句子相似度又可以归结为句中词语相似度。笔者最终选择适合长度相同的向量间相互比较的海明距离度量方法,计算两个句子的相似度。如果句中有重复的词就加1,故数值越高两个句子的相似度越高。根据此算法得到的摘要能较好地贴合报告的主旨。
二、解决语义分析过程中的难题,优化技术方案
(一)扩充分词库,达成更好的分词效果
分词是中文文本处理时的必要步骤,“Jieba”分词模块采用基于统计的分词方法,在全切分所得的所有结果中求某个切分方案S,使得S方案的概率(P(S))最大。“Jieba”还自带了一个叫作dict.txt的分词库,里面有2万多条词,是基于人民日报语料等资源训练得来的。
在实际操作过程中,笔者发现分词的效果存在问题。一些教育领域特有的名词没有被切分准确。例如,“信息科技”是一门学科的名称,是一个完整的词,但实际分词过程中,根据人民日报语料资源,切分为“信息”和“科技”的概率更高。这样的分词集合就会与之前的语义相去甚远。因此,按教育领域的用词特点去扩充分词库,非常必要。通过分析阅读相关政策文件,最终锁定到提及教育类关键词的重要文件,包括《教育部工作要点》《教育改革方案》《教育部主题词表》《上海市教育工作要点》《教研室工作重点》等。我们将其内容摘录到扩展词库中,并增加权重。当然这样还远远不够,每年有关部门都会提出新的政策要求,新的词组也应当以迭代的方式录入扩展词库中,保证词库紧跟每年的教育政策要点,以便达到更好的分词效果。
(二)研究算法模型,完善自动摘要结果
TextRank算法中,用海明距离计算两个句子的相似度,得到的摘要虽贴合报告的主旨,但中规中矩,一些“特色”无法反映出来。因为海明距离是平权计算,故独特性高的句子没能突显。如果采用加权计算,摘要里就能看到“特色”补充。于是结合TF-IDF模型,尝试给特征词加权,句子中的特征词越多则数值越高,成为摘要句子的可能性就越高,报告的“特色”也就能被突显出来。
但在实际操作中发现,有时提取出的“特色”句子并不适合成为摘要。以宝山区历史学科的调研报告为例,计算机自动提取报告中排序前十的句子,经教研员确认,其中前七个句子有较好的代表性,确实是该报告的核心内容。后三个句子,有较强的学科区分度,在其他学科出现的概率非常低,但不是核心内容,不适合作为报告摘要。结合教研员的反馈,词语向量化的过程还需进一步优化。传统的独热映射模型和词袋模型,直接按照词库容量定义空间维度,映射结果是稀疏的、不能反映词在前后的语义。词向量模型可以将稀疏的词典空间压缩至稠密的低维空间,一个词对应一个空间中的向量,增加信息表示的效率,提高运算性能。同时,向量的坐标有隐含的语义信息,海明距离较近的两个向量,会有更相似的语义属性,提高语义处理的精度。因此,尝试将TextRank算法和词向量、Word2Vec模型结合起来,建立词与词之间的关系,完善自动摘要算法。
(三)借助人工检验,评估算法模型
利用主题模型,可获得调研报告的主题词分布,从而直观地确定报告的主要内容和关注重点。 选择LDA模型,将词库中的词语聚成10类主题,再通过计算某篇调研报告的主题分布,选出排名前三的主题词作为这篇报告的主题词。但在人工校验时发现,部分报告的主题词与报告内容不符,比如某篇初中学段调研报告中排序第二的主题词是“学校建设”,但查阅原文发现作者关注的是“课程建设”。继续研究发现,主要原因一是聚类后主题词的提炼不够准确;二是类别中的词语相似度高、区分度不明显、聚类效果不佳。根据校验结果,重新设定分词的聚类数。最后发现基于现在的语料,聚成14类主题,效果最好。因此,在完成调研报告的语义分析后,我们研发了调研报告语义分析结果检验小程序,通过接口接入课程与教学调研系统,接收调研系统提交的调研报告,自动计算报告的主题分布和摘要,并将结果呈现给撰写此报告的教研员,教研员对计算机分析的结果进行打分和评价,这些反馈将助力后续的算法优化研究。
三、思考与展望
这是市教研室第一次尝试使用NLP技术对非结构化数据进行分析,对该项工作价值的认识也是在不断实践探索中得以明确。
(一)语义分析结果的准确率在不断地数据积累和方法调整中提升
语义分析的常用方法与算法模型如果直接套用在我们的调研报告上,所得结果准确率很低。非结构化的文本数据与结构化数据不同,它有一定的独特性和不确定性,需要在实践的过程中不断地累积数据、调整算法、优化方案。在本次研究过程中,通过扩充词库、调整算法模型、接入人工检验程序等方法,不断提升语义分析结构的准确率。从小程序获得的用户反馈数据来看,大家对分析结果还是比较肯定的。因此,本次研究的价值除了获得从2015年至2019年,共计415份课程与教学调研报告文件的准确率比较高的主题词和摘要之外,还获得了一份比较完整的、适用于教育教研领域的、独一无二的专业词库,一个及时获取用户检验结果的自动化小程序和一套有助于教育领域文本数据挖掘的一般方法。依照这样的方法,再加上调研报告的数量不断积累,未来语义分析结果的准确率会不断提升。
(二)研究中的过程性数据对业务部门工作有参考意义
调研报告文本分析的目标是提炼出报告的主题词和摘要,但过程中形成的文本数据库可为业务部门的研究或改进工作提供参考。例如,从笔者统计了415篇报告的词频统计和在文章中出现的次数可见,调研过程中对上海各区的教学、教研、作业、教研组、评价等高度关注,符合市教研室对调研工作的总体要求。但是“考试测验”等不是高频词,可能与其关注度不够有关,也可能与部分学科和学段没有考试测验有关。数据只是呈现事实性,但是数据如何解读,需要业务部门的专家进行分析,因此,研究中的过程性数据,可以为业务部门改进工作,或者规范工作提供参考。
后续笔者计划进一步积累更多的教育领域词汇,提高文本分析的精度;进一步区分词性,增加对报告情感的分析;进一步解读数据背后的意义,形成某次调研的质量评估和分析报告,供决策者参考。