1 引言
1.1 研究背景和意义
随着互联网技术的发展,在线教育逐渐成为人们学习的重要途径。中国MOOC平台作为国内领先的在线学习平台,提供了丰富的课程内容,其中数学类课程在不同领域的应用和理论深度上都具有重要地位。然而,随着课程内容的增多,如何根据学生的反馈优化课程质量、提高教学效果成为一个亟待解决的问题。学生的评论和评价可以反映他们对课程内容、教学方法及学习体验的真实感受,这些数据为课程改进和教学质量评估提供了宝贵的参考。然而,传统的人工评估方法存在一定的局限性,无法高效全面地挖掘评论中的潜在信息。因此,利用数据分析技术对数学课程的评论数据进行深度分析,能够帮助我们更好地理解学生需求和情感,提供量化的改进建议。
本研究通过分析中国MOOC平台上的数学课程评论,能够为数学专业课程的改进和优化提供数据支持。通过情感分析、主题挖掘与聚类分析,我们能够精准识别学生对课程内容的偏好、关注点及情感态度,为教学管理者和课程设计者提供有针对性的改进方案。同时,本研究也为在线教育平台的教学评价体系提供了一种新的数据分析思路,推动教育质量的持续提升。
1.2研究工作
本研究旨在基于中国MOOC平台的数学课程评论数据,采用数据分析方法进行深入挖掘,以帮助优化数学课程内容和教学质量。
数据采集。通过使用Python编写爬虫,结合JSON格式获取数学课程的评论数据。通过爬虫程序,采集学生对于数学课程的评论信息,包括评论、评论id、用户名、评论时间等多方面的数据。
数据预处理和清洗。去除无关信息和噪声数据,对评论文本进行了主题分析,采用LDA(Latent Dirichlet Allocation)模型,识别出评论中反映的主要主题,从大量评论中提取出学生关注的核心问题,如数学基础知识、应用数学技巧、课程难度等,为后续的课程优化提供数据依据。
利用Snownlp进行情感分析,对每条评论的情感倾向进行分类,分为积极、消极和中性。通过情感分析,帮助全面了解学生对数学课程的总体满意度以及对课程内容的情感反应。情感分析结果能够为课程设计者提供有关学生情感态度的直接反馈,促进课程内容的调整和优化。
应用K-means聚类算法对评论数据进行聚类分析,挖掘出潜在的学生群体特征和需求。通过聚类分析,识别不同学生群体在学习过程中遇到的共性问题,进一步细分课程的受众,提高个性化教学的精度。
2 数据采集方法实现
本研究的数据来源于中国MOOC平台,该平台提供了大量的在线数学课程,涵盖了从基础数学到高阶数学的多种课程内容。通过爬虫技术利用Python的requests库,结合JSON格式采集平台上的数学课程评论数据。从MOOC平台上选取了猴博士线代高分-4小时学完线性代数的数学课程,并提取课程下的学生评论数据。这些评论数据包括评论内容、评论id、用户名、评论时间等内容。
采集的网址为:
https://kaoyan.icourse163.org/course/terms/1463199445.htm?outVendor=zw_mooc_pcpdyzdyfltj_&courseId=1003293003。
2.2 主要技术
在本研究中,爬虫通过使用Python的requests库和json方法从中国MOOC平台获取数学课程评论数据。平台的评论数据通过JSON格式传输,这使得JSON成为爬取数据的择。首先发送HTTP请求,通过平台提供的API接口获取课程页面数据。API返回的数据是一个包含评论内容的JSON对象,其中包括每条评论的用户ID、评论内容、评分、时间戳等信息。爬虫通过解析这些JSON对象,从中提取出有用的评论文本数据。在此过程中,我们使用Python的json模块对返回的JSON数据进行解析,获取其中的评论字段,并对数据进行清洗和结构化处理。通过这种方式,提取并保存大量评论数据,为后续的主题分析、情感分析和聚类分析提供了丰富的文本数据,具体流程图如图1所示。
图 1数据采集流程图
2.3 存在的问题及不足及解决方案
请求频率过高导致封禁:由于爬虫发送的请求频率较快,会被MOOC平台暂时封禁IP,导致无法继续获取数据。为解决这一问题,在代码中加入了time.sleep(random.randint(2,5)),通过随机延时减少请求的频率,避免被平台识别为恶意爬虫。
数据写入CSV文件时发生错误:在数据存储时,由于评论内容包含一些无法显示的表情和特殊字符,导致无法正常写入CSV文件。解决方案是在写入数据前加入异常处理try...except,确保在写入数据时遇到错误不会中断程序。如图2所示:
图 2数据采集错误
图 3 json数据提取
2.4 数据采集结果
如图4所示,最终我们爬取数据为为5778条,在经过异常处理之后,并未乱码或者数据不对等情况,故最终数据结果整洁,不需要进行数据清洗。
图 4 数据采集结果
3 可视化分析
图 5 情感分析 图 6 词频分析
3.1 数学专业评论情感分析
由图5情感分析可知,"数学专业"主题的中国MOOC爬虫实现和数据分析中,积极情感占比为89.13%,消极情感占比为5.44%,而中性情感占比为5.63%。积极情感占据主导地位,表明大多数评论或内容对该主题持正面评价,反映出用户对数学专业MOOC的认可和兴趣。
3.2 数学专业评论词频分析
由图6词频分析可知,学生对数学专业课程的评价集中在几个关键方面。“老师”、“博士”和“讲解”字体最大,频次最高,表明学生对讲师的专业性和讲解质量有较高的关注。“简单”、“易懂”、“清晰”和“通俗易懂”出现频繁,反映了学生对课程内容易于理解和讲解方式的需求。“考试”、“期末”和“复习”等词汇也表明学生对考试相关内容的重视,尤其是期末考试的准备。根据这些关键词可以知道,学生偏好清晰简洁、富有干货的教学内容,且更倾向于能帮助他们理解和应对考试的教学方式。
4 数据分析
4.1 LDA主题分析
4.1.1 数据清洗
使用drop_duplicates对原始数据进行去重操作。去重后进行正则清洗。正则清洗主要是针对内容,去除除了中英文字符和数字以外的其他字符。具体实现通过使用正则表达式的方式,调用re.sub函数进行替换。使用正则表达式[^\u4e00-\u9fa5^a-z^A-Z^0-9^,.,。!:]|,将评论中除了中英文字符、数字和部分标点符号(逗号、句号、感叹号、冒号)以外的字符都替换为空格,从而实现清洗效果。清洗评论后结果如图6所示:
图 6 数据清洗结果
4.1.2 计算困惑度和一致性
困惑度(Perplexity)和一致性(Coherence)是评估主题模型(如LDA)的两个重要指标。困惑度是一个衡量主题模型预测新数据能力的指标。它基于模型对给定数据的适应程度,值越低表示模型越能有效捕捉数据的潜在结构。简单来说,困惑度反映了模型对词语分布的“困惑”程度,即模型预测文本中某个词的概率的准确性。困惑度越低,说明模型在捕捉主题时更精确。通常来说,较低的困惑度值表示更好的模型拟合。一致性是评估模型生成的主题语义一致性的重要指标。它衡量一个主题中词语之间的关联程度,通常使用基于语义的度量(如c_v一致性)来计算。高一致性得分意味着同一主题中的词语更具语义相关性,主题的可解释性更强。因此,一致性较高的模型更容易产生有意义的、易于理解的主题。困惑度和一致性结果如图7所示:
图 7 困惑度和一致性分析
4.1.3 先验分布
先验分布通过LDA模型的训练过程实现。先将评论文本被转换为词袋(bag of words)形式并使用Gensim的Dictionary类生成单词的ID映射。利用TF-IDF模型对词袋进行加权,增强了高频但不重要单词的权重,减少了常见无意义词的影响。使用加权后的语料训练LDA模型。LDA模型通过expElogbeta属性来计算单词的先验分布,这实际上是每个主题下词语的分布。先验分布帮助LDA模型推断出每个文档主题的分布以及每个主题下的词分布。通过调整先验分布(如alpha、eta参数),在模型训练中引导主题的生成,提升模型的解释性和准确性,其中主题数量根据图7困惑度和一致性检验可知,最佳主题数量为10。
4.1.4 LDA建模和分析
通过corpora.Dictionary将文本转化为词袋模型,生成单词和文档之间的映射关系(corpus)。使用gensim.models.LdaModel训练LDA模型,核心参数包括num_topics(设置主题数量)、id2word(单词到ID的映射字典)、passes(遍历文档的次数,影响模型精度)、alpha和eta(控制先验分布,影响主题的稀疏度)。最后可视化模型输出,通过交互式图表展示主题间的关系和关键词分布。结果如图8所示。
图 8 主题分析结果
图 9 主题关键词
由图8和图9主题分析可知,学生更倾向于选择教学方式清晰、内容简单易懂且实用的数学课程,同时也非常关注期末复习和考试的帮助。主题1、2和3突出学生对课程的讲解质量和教学方式的重视。关键词如“老师”、“简洁”、“讲解”、“思路清晰”、“清晰”表明学生偏好简明易懂、逻辑清晰的讲解方式,尤其注重教师的讲解能力和知识传授的清晰度。主题5、4显示出学生对期末复习和考试的重视,关键词“期末”、“复习”、“考试”、“不挂科”反映了学生对于复习策略和考试应对的需求。主题7、8与6中的“简单”、“易懂”、“通俗易懂”表明学生希望课程内容能够简单明了,帮助他们更好地理解数学知识,同时“实用”、“干货”表明他们关注课程的实际应用价值。主题9涉及学生的个性化需求与情感倾向,诸如“适合”、“喜欢”、“学渣”这些词汇的出现,表明部分学生对课程内容的适应性和个人兴趣有较高关注。
4.2 K-means聚类分析
4.2.1 选择最佳聚类数
做聚类分析首先需要确定聚类数。本次使用轮廓系数法和手肘法分别分析。轮廓系数法用于确定聚类分析中的合适簇数。在本项目中,通过计算不同簇数下的轮廓系数,来评估聚类结果的质量。具体实现步骤如下:
1、选择一定范围内的簇数,例如从2到15。
2、对于每个簇数,使用K-means算法进行聚类,并计算对应的轮廓系数。
3、将每个簇数下的轮廓系数绘制成曲线图,以便观察整体趋势和最优簇数的选择。
4、根据轮廓系数曲线图,选择具有最高轮廓系数的簇数作为最佳簇数。
轮廓系数是一种聚类效果评估指标,其值范围为[-1, 1]。较高的轮廓系数表示样本与所属簇内的样本相似度高,与其他簇间的样本相似度低,即聚类结果较好。而较低的轮廓系数则表示聚类结果不够理想。如图10所示轮廓系数图,可知最佳聚类数为2:
图 10 轮廓系数图
此外还可以通过手肘法进行佐证。手肘法(Elbow Method)是一种常用的方法,用于帮助确定最佳的聚类数量(K 值)。实现步骤:
1、计算簇内离差平方和(SSE):首先,对不同的聚类数量(K 值)进行循环计算,每个 K 值对应的 SSE 表示所有数据点到其所属簇中心的距离平方和。
2、绘制折线图:将 K 值与对应的 SSE 组成折线图,通常随着 K 值的增加,SSE 会逐渐减小。
3、找出“拐点”:手肘法的关键在于找到折线图中的“手肘点”,即随着 K 值增加,SSE 下降速度明显变缓的位置。
手肘法通过观察 SSE 随 K 值变化的趋势,帮助确定最合适的聚类数量。手肘点通常对应于最佳的 K 值,可以避免过度聚类或欠聚类的情况。手肘法有助于理解数据的内在结构和聚类情况,提供了一种直观的方式来评估数据的聚类效果。
通过手肘法,能够更好地理解数据的聚类情况,选择最佳的聚类数量,优化聚类分析的结果,为进一步的数据解读和决策提供支持和指导。如下图11手肘法可知,最佳聚类数为4。
图 11 手肘法
4.2.2 聚类实现及可视化
使用了t-SNE降维技术对“数学专业”相关的MOOC数据进行聚类分析。数据中的无效值(如无穷大和缺失值)被清理,并对特征列进行了标准化处理。使用t-SNE算法将数据从高维空间降到二维,以便于可视化。每个聚类(四类)通过不同的颜色和标记表示,便于直观地查看不同类别的数据分布。通过绘制的聚类效果图,观察到数据的分布模式和潜在的关联,发掘评论中的潜在用户群体,识别学生在学习过程中面临的共同问题或需求。如图12聚类分析结果所示。
图 12 聚类结果
图12聚类分析为不同需求的学生群体提供了清晰的画像,聚类分析表明,一部分学生对个性化学习需求较强,他们偏好“适合自己基础”的课程内容,且表现出对课程的情感反应(如“喜欢”或“学渣”)。这些学生可能需要根据自己的理解速度和兴趣,选择不同难度或风格的教学内容。另一部分学生更关注“老师”与“讲解质量”,他们倾向于选择那些“简洁”、“清晰”的课程,尤其重视教师的表达和逻辑结构。t-SNE图中,这部分学生形成的聚类可能显示出较为集中的数据分布,代表了对高质量教学的偏好。有些学生对“期末”和“复习”表现出较高的关注,倾向于通过“题型”分析与“知识点”总结来备考。这些学生可能会聚焦于课程的实用性与应试效果。部分学生更青睐于“易懂”、“实用”的课程,他们偏好“干货”内容,并对课程的实际应用性有较高期望。t-SNE的聚类结果显示出这类学生对简洁、直接的教学方式和内容的偏好。
5 结论
LDA主题分析结果:通过LDA主题建模,我们能够提取出学生对数学课程的多样化关注点。分析表明,学生关注的主要主题包括:课程的讲解质量(如“老师”、“简洁”、“讲解”)、易懂性与实用性(如“简单”、“易懂”、“干货”)、复习与考试准备(如“期末”、“复习”)以及个性化学习(如“适合”、“喜欢”)。这些主题反映出学生在学习过程中对清晰的讲解、实用的学习资料、考试复习策略以及针对性学习的需求。
情感分析:情感分析结果揭示了学生对数学课程的情感倾向。学生的情感较为积极,尤其在讲解清晰、内容易懂和期末复习策略等方面,学生表现出较高的认可度。同时,也有一部分学生表达了对课程难度较大或内容过于复杂的负面情感。
K-means聚类分析:通过K-means聚类,我们将学生群体划分为不同类别。聚类分析表明,学生群体的需求具有明显的差异。例如,有些学生更关注课程的教学质量与讲解的清晰度,而另一些学生则对期末复习和考试准备更为重视。此外,还有部分学生希望课程内容能够更加简洁明了,容易理解。
词频分析:词频分析进一步确认学生在数学课程中的核心关注点,关键词如“老师”、“简洁”、“期末”、“复习”、“干货”等高频词汇表明,学生的关注焦点多集中在教学质量、课程易懂性和考试准备等方面。