刘金花,樊敏,王洋,贺潇磊
(1.山西医科大学汾阳学院,汾阳032200;2.北方自动控制技术研究所,太原030006)
大规模线上课程的开放作为一种新型的教育模型引起各大高校和学习者的关注,但目前线上课程的发展备受高辍学率的打击。显然课程质量是导致学习者辍学的直接因素,然而通过挖掘和分析学习者的线上互动与课程评价,能够及时发现学习者面临的问题和困境,对教学质量的提升具有巨大的推动力。另外,通过挖掘和分析这些互动文本和评价还可以让学习者从海量的线上课程中挑选出适合自己学习方式的课程。
线上互动与评价为课程建设者提供了一种较少侵入式收集和存储学习者行为的数据,已有大量的研究致力于对结构化数据进行分析,如学习者的点击率、浏览记录和提交作业记录等。然而,由于大量的交互平台中会大量产生基于文本的非结构化数据,如课程评价,这些数据中不仅蕴含了学习者对课程更加主观的评价,并且还会涉及到学习者的关注点和兴趣所在,如对课程内容、教学风格、选用案例和平台建设等的相关的评价。因此,探索学习者的这种互动行为,对于教师构建教学资料或者新课都具有极大的价值。通过主题动态的研究,教师可以找到学习者课程失败的潜在原因,以便通过调整教学方法和完善教学资料来满足未来学习者的需求,这也就同时解决了目前线上课程辍学率高的问题。
随着实时互动信息媒体的出现,涌现出大量的短文本数据,如微博微信上的留言互评、搜索引擎中的搜索片段、在线课堂的讨论与评价和BBS论坛上的留言等。挖掘这些短文本的主题可以发现隐藏在非结构化文本的底层结构,是一项很有意义但又具有挑战性的任务[1]。因为短文本中只包含较少的几个词,这些词又比较随意、口语化严重且上下文信息缺乏,使得有效地表示短文本和从短文本中发现知识变得十分困难[2]。传统的主题模型典型的有生成概率图模型和非负矩阵分解,即LDA(Latent Dirichlet Allocation)[3]和NMF(Non-negative Matrix Factorization)[4]。然而,它们更适用于从内容丰富的文本中发现隐藏语义信息。为了解决上述问题许多人致力于短文本主题的研究。一种策略是利用词汇内部的语义关系来克服词共现缺乏的问题,如Nguyen等人[5]提出利用Word2Vec在非常大的语料上训练词向量,然后输入到LDA模型中。另一种策略是通过将短文本聚合到伪文档中来捕获跨文档的词共现信息。如Hong等人[6]将同一用户发表的短评聚集到了一个伪文档中来丰富短文本中词的语义信息;Li等人[7]和Sridhar V K R.[8]通过来自外部语料库的词汇语义信息来表示短文本中词;Yan等人[9]也利用词项相关信息提出了用Ncut加权的NMF短文本主题模型。尽管提出的这些模型确实在某些方面比较有优势,但效率很低且需要预先输入两个参数α和β。本文在NMF主题模型的基础上提出了知识诱导的非负矩阵分解主题模型,它利用词对之间的语义相似度作为具有低秩形式的图拉普拉斯正则项来增加外部语言信息,因此学习效率非常高。
为了在短文本背景下获得更准确的主题,利用外部的词对来指导传统的NMF文本主题模型,该模型称为知识诱导的非负矩阵分解主题模型。标准的NMF中D的每一列代表一个文档,U的每一列代表一个主题,V的每一列代表文档在潜在语义空间中的一种新的约简嵌入[10],如图1所示。
图1 NMF文本主题模型
然而,U的每一行代表了主题空间的一词项。一个好的学习模型应该不仅能够保留语料库中潜在的信息,而且还能够保留不同词对之间的关系,例如“课程”和“教学大纲”之间的关系要比“课程”和“技巧”之间的关系更密切。因此,整合了从外部知识学习到的词对之间的语义知识,这些知识可以从维基百科中训练获得,引入外部知识后可以使NMF短文本主题模型得到很大的改善。
用sij表示词wi和wj从外部知识中获得的相似度。U的每两行(每行代表一个单词项)之间的相似度应该与来自外部知识的相似度一致。具体来说,我们可以做以下最小化:
其中ui*表示主题矩阵U的第i行,L=diag(S·1)-S,1表示全为1的列向量,S=(sij)。结合语料库和外部知识库,可以将基本的NMF与词对语义知识相结合,最终得到式(2)所示的优化模型:
其中,λ是超参数来平衡文档数据集信息和外部知识之间的重要程度。在这里还得注意,图拉普拉斯矩阵L的维数是M×M,当词汇量很丰富时M的值会变得很大,这是算法运算速度的一个障碍,我们用一个低秩形式化表示以提高算法效率。
公式(2)整体上它是非凸的,很难得到全局最优解。在实际应用中通常通过寻求局部最小值的方式解决。通过交替迭代的方式得到局部最优解。令公式(2)等于变量J。
对V的每个变量Vij采取梯度下降的方法来对V进行更新:
上述迭代式中S·U的复杂度为O(KM2),当词汇丰富时计算量会很大。这里我们采用了低秩形式来表示S。具体地说,假设每个单词都采用Word2Vec从外部知识(Wikipedia)训练出的q维列向量w来表示,那么对于wi和wj任意两个单词之间的相似度可定义为:
其中W=[w1,w2,…,wM]T∈RM×Q,用公式(10)替换公式(8)中的S,得到式(11):
将S·U的复杂度从O(KM2)降低到O(MKQ),由于Q和K通常比M小得多,计算效率大大提高。这里将知识诱导的非负矩阵分解短文本主题模型用算法1进行总结。
算法1:知识诱导的非负矩阵分解短文本主题模型输入:文档集合用TF-IDF表示的矩阵D,主题数K,词向量W;超参数λ输出:词项-主题矩阵U和词项-文档矩阵V 1 begin:2 随机初始化U和V;3 For t=1,2,…,T do 4 利用迭代式(6)更新V 5 利用迭代式(11)更新U 6 if收敛条件满足then 7 Break;8 End 9 End 10 End
本文在MOOC网站上选取北京理工大学开设的《大学计算机》这门课,采用Python编写爬虫自动爬取该课程下相关的课程评价,每条评价都记录了评论者的ID、评论日期、课程的完成状态和评论文本,并将其解析为纯文本文件。该课程共有65900多人参与学习,有3942条课程评价。
另外,为了对评论文本进行分析,按以下准则对评论数据进行预处理:
(1)由于绝大多数的评论都是短评,所以将评论按照标点进行了切分。
(2)去掉了评论中全是字母、全是数字、全是标点符号或者整个评论都是一个字等无效评论。如:“kk jhhjhjhjb”、“12121212”、“.....”、“哈哈哈哈哈哈”、“啦啦啦啦啦”等。
(3)采用中国科学院ICTCLAS(Zhang,Yu,Xiong,&Liu,2003)的中文分词系统,将每个句子进行了分词。
(4)去除评论数据中存在的一些表情符号。而形容词、副词、动词和名词被认为对理解文本意义更有帮助,于是对评论句进行了词性标注。
表1 采集到的数据的基本统计描述
根据上面第2节介绍的主题模型,对评论文本进行主题的提取,将课程评价从课程内容、平台信息和学习者体验三个维度分为了六大主题类,要注意的是这里我们设置超参数λ=5。表2为主题类型及对应的关键词。根据主题的关键词,我们将课程评价句进行主题标记,要求每个短评都隶属于一类主题。
表2 课程评价的主题分类
为了分析学习者的学习行为与评价的关系,根据学习者的课程状态,将这些评论数据分成两组:完成者和未完成者。另外,我们根据上述主题分类的方法将这两组的课程评价也进行了分类,这里每个评价文本只能属于一个类别,图2为统计结果。从图2中可以看出,完成者更倾向于分享自己的学习体验,而未完成者的评价分布在各个主题类别中,更多评论集中在平台信息中。从这里也可以推测出可能是由于在使用平台时不熟练或不满意,而导致他们放弃学习。
图2 两种状态学习者的主题分类统计
从上面评价文本抽取出的主题发现,其实每个主题中都有表达观点的词语。如“喜欢”、“全面”、“用心”、“详细”、“模糊”、“抽象”等。这些观点词能真实表达评论者的情感倾向。为此,本文将课程评价用〈评价主题,修饰词,情感特征〉三元组表示,其中评价主题为上面抽取出的六大类,如课程内容、课程组织、讲授方式、平台信息、学习者体验和其他;情感特征就是评论者针对课程教学发表的观点,当然我们需要构建教学领域的情感特征词库;修饰词包括否定修饰词和程度修饰词,主要用来表达情感倾向的强弱。表3给出了部分常用情感特征的修饰词。
表3 常用情感特征的修饰词
从汉语言学的角度分析,在一条评价语句中评价的主题词性多是名词或动词,如“内容”、“讲解”、“设计”、“声音”等;情感特征词多是形容词、动词或动名词,如“具体”、“详细”、“新颖”等,我们通过词性标注的方式提取并构建了情感特征词库,表4所示为情感词汇及分值的部分示例;至于修饰词绝大多数是副词,如表3所示。
表4 情感特征词汇及分值的部分示例
由于我们将每条课程评价都按标点进行了切分,那么每个小短句必定评价的是一个主题,而其中的情感特征词和修饰词也必然是刻画这个主题的。因此,对词性标注后的评价句遵循一定的匹配规则就可以很方便转换为〈评价主题,修饰词,情感特征〉三元组的形式。这里特别要注意否定修饰词和程度修饰词同时出现的情况,表5给出了转换为三元组的部分评价句。
表5 评价句转换为三元组的部分示例
对于提取到的三元组,接下来就可以计算每个评价句的情感极性,根据情感特征词汇的分值和修饰词的乘积进行情感打分。否定修饰词的分值为-1,强化程度修饰词分值为2,弱化程度修饰词分值为-0.5,没有程度修饰词分值为1。另外,还需要考虑转换成三元组,没有情感特征词或者情感特征词不在情感特征词库中的情况,如表5中的例句3。这时我们都按中性词统一赋值为0.3。表6给出了部分评价句的情感得分。
表6 评价句情感得分部分示例
根据上述规则,就可以得到所有评价句的情感得分。其实对于课程的建设者来说,他们更关注的是负面的评价,以便对课程进行改进和完善。根据因此,我们对所有情感得分为负值的评价句进行了主题统计分析,如图3所示。从图中可以看出学习者对平台信息的负评价最多,课程内容次之。追溯到原始评价句,发现有这样的一些评论“视频画质是真的差”,“还可以,一般般”,“录制质量不高”,“声音不清楚”,“感觉有点难”,“有一些磕磕巴巴的说不清楚和出错”,“上网课真无聊”,“太难学不会”,“作业多”,“讲述水平一般”……,课程的建设者可以很快地找出学习者的困惑和他们的关注点,不断对课程进行改进。
图3 各类主题负评价占比
本文通过对线上课程的课程评价进行主题挖掘,发现学习完成者更倾向发表自己的学习体验,并且也更关注课程的内容;而未完成者更多地会对平台信息提出意见,更关注课程的组织和讲授方式。接着本文各类主题的评价句进行了观点的抽取和情感打分,可以很方便地发现负面评价集中在哪方面,以便课程建设者进行课程的改进和调整。