基于Python的简单文本情感分析
2022-04-21李柏翰周沫凡崔椿雨高凯
李柏翰 周沫凡 崔椿雨 高凯
教学背景
随着人工智能技术在医疗、军事、交通、环境等诸多领域的广泛应用,人类的生产生活方式已经悄然发生改变。
2017年发布的《新一代人工智能发展规划》提出,要重点突出加快人工智能创新应用,逐步开展具有广泛普及性的人工智能教育项目,在中小学开设人工智能课程,系统性地进行相关教育教学活动。因此,如何使课程在中小学有效落地是一线教师面对的首要问题。
根据一定的应用场景设计人工智能课程,让学生摆脱编程很枯燥的认知,引导学生逐步意识到人工智能技术的现实意义,并思考该技术在未来社会可能的应用点。只有真正的贯穿项目式学习,才能让学生理解技术应用背后的逻辑和数学原理,才能深刻理解技术与客观现实的联系,并了解到人工智能在哪些方面可以发挥优势,在哪些方面存在局限。
此外,高中阶段人工智能课程专业性应高于初中、小学,高中课堂更应做好与大学相关专业的衔接,提高学生的编程能力,使得K—12的编程教育更有连贯性并形成体系。
教学主题
基于Python程序语言,以文本内容的情感分析为主题,引导学生熟悉相关软件和模块的功能,根据学生现有的代码基础,自行对数据进行构造或采集,教师可以提供代码样本供学生参考,让学生对真实世界的数据进行分析,并进行拓展实现研究性学习。
教学实施
主题引入:什么是文本情感分析
中国有句古话叫作“见字如面”,讲的是收信人通过阅读文字可以感受到写信人的喜怒哀乐,也即文字是可以表达感情的。那么,在人工智能领域是否也能让机器像人一样感知文字的情感呢?文本的情感分析属于计算机科学的人工智能自然语言处理(NaturalLanguageProcessing,NLP)领域,根据很多在线评论简洁、情感表述灵活直接的特性,可有效提取评论中的主观信息,结合Python中的集成模块对带有主观色彩的文本进行分析、处理、推论,最终得出评论的情感倾向。
很多APP利用这项技术将人们对商品、美食的评价进行层次划分,按照肯定到否定的梯度进行排列,从而更好地分析大众需求,改进产品。
课程准备
在开始课程前,需要做好课程实验的准备工作,在电脑中安装好Python3.7以上版本。实验中会用到2个Python库文件,一个是Snownlp库,用于完成自然语言处理;另一个是Matplotlib——Python的2D绘图库,能以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
教学过程
教学实施过程采用任务驱动方式,教师将课程内容分解为若干个小任务。任务难度应符合中学生的认知水平,依托“最近发展区”理论,让学生能够在经过一些思考与实践后完成任务。通过小任务群推进课程,最终达到教学目标。
任务1:语序差异实验
任务描述:同样一句话主谓语颠倒,含义是有区别的,机器可以对其进行有效识别么?将一句话中的个别词语颠倒,观察正向度数值变化。
设计意图:采用控制变量方法,在只改变词语顺序的情况下,正向度数值没有变化,利用实验结果引导学生发现模型的不足。
任务2:探究数据对训练模型结果的影响
很多学生通常只注重算法而忽略另外2个非常重要的因素:数据和算力。近年来,人工智能技术的快速发展与数据量的大幅度提升有明显的关系。数据已经成为决定人工智能实践的核心因素,没有良好的数据就无法得到相对准确的预测结果。用3个不同的语句作为测试集数据,探究不同数据对模型的影响。
通过这个模型,可以看出模型区分出了“想”和“渴望”的差别,“渴望”的正向程度超过“想”,符合我们对数据的预期。但是,当把“AI”替换成“人工智能”时,结果却有差异。通常认为,“AI”和“人工智能”只是同一个意思的2种不同语言表达,并不应对正向度产生影响。但为什么得到了不同的实验结果呢?可以引导学生讨论、思考。
出现上述结果是因为数据集不同。模型都要经历训练过程,只有训练过的模型才能够进行预测。如果在模型训练过程中,未对一些特定的数据进行处理,当对这样的数据进行预测时,模型给出的答案可能就不太准确,就像学生在考试时遇到了超纲的知识点,是无法给出正确答案的。
设计意图:感受数据对人工智能技术的重要影响。通过实验引导学生发现数据对模型的影响,为下一个实验作好铺垫。
任务3:探究数据对于训练模型结果的影响
在前面的任务中,已经体会了数据对人工智能技术的影响。在文本中还会有一些标点符号,这些标点符号是否会影响训练效果呢?在文本中一些不重要的词,会对训练结果产生什么影响呢?一般情况下,训练时会把这些不重要的词丢弃,放到一个叫作“停用词”的地方。请大家在一句文本中加入一些不重要的词语,然后观察正向度变化。
预测的结果表明计算机自动忽略了“只是只是只是”,2句话的评分是一致的。当然,这个停用数据集也需要提前进行加载。数据模型存储到“./data/test_sentiment.marshal.3”,代碼如下:
与之前的数据相比,正向程度发生了一定变化,学生通过数据处理加深了对数据重要性的理解。
设计意图:使学生深入理解机器学习中数据的重要性,并有意识地构建数据集使预测结果更加准确。
反思与总结
人工智能教育的落地需要良好的项目学习支撑,本节课所选用的项目是根据现实问题得到的,对于真实数据的挖掘可更好地提升学生对于数据可利用价值的认知,从而提升学生对于人工智能学科的兴趣爱好。