《自然语言处理》课程教学分析与实践

    王晶晶 高晓雅

    摘要:《自然语言处理》课程是计算机及人工智能专业的一门重要课程,其研究内容是计算机科学领域与人工智能领域中的一个重要方向。针对《自然语言处理》课程理论性较强、知识体系庞大的特点,该文基于现有的实践教学方法提出了新的教学思路,即“认知驱动+编程巩固”教学方法。具体而言,该文首先介绍了《自然语言处理》课程的教学内容,其次分析了当前实践教学体系中存在的问题,最后详细阐述了新的“认知驱动+编程巩固”教学方法。

    关键词:自然语言处理;实践教学;认知驱动;编程巩固;人工智能

    中图分类号:G642? ? ? ? 文献标识码:A

    文章编号:1009-3044(2021)18-0160-02

    开放科学(资源服务)标识码(OSID):

    Analysis and Practice of “Natural Language Processing” Course Teaching

    WANG Jing-jing, GAO Xiao-ya

    (School of Computer Science and Technology, Soochow University, Suzhou 215006, China)

    Abstract:"Natural Language Processing" is an important course for computer and artificial intelligence majors, and its research is an important direction in the field of computer science and artificial intelligence. Considering that the course is highly theoretical and has huge knowledge system, this paper proposes a new teaching method based on the existing practical teaching method, namely the "cognitive drive + programming consolidation" teaching method. Firstly, this paper introduces the teaching content of the "Natural Language Processing" course. Secondly, this paper analyzes the existing problems in the current practical teaching field. Thirdly and lastly, this paper elaborates on the new "cognitive drive + programming consolidation" teaching method.

    Key words: natural language processing; practical teaching; cognitive drive; programming consolidation; artificial intelligence

    1 引言

    《自然語言处理》课程属于人工智能专业选修课,是一门融语言学、计算机科学、数学于一体的科学,它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,是计算机科学领域与人工智能领域中的一个重要方向[1-2]。《自然语言处理》课程理论性较强、知识体系庞大,其主要教学内容包括:词法分析、句法分析、语义分析、文本分类、对话系统,统计机器翻译等,传统的教学方法只能使学生了解自然语言处理的理论知识,难以理论联系实际并灵活运用,此外,固有的理论教学模式降低了学生学习的兴趣和积极性,也无法培养学生的创造性思维。针对上述传统教学体系存在的问题,本文在先前的改革实践教学研究[3-7]的基础上提出了新的“认知驱动+编程巩固”教学方法,达到了现代教育对教师与时俱进、因材施教的要求。

    2 《自然语言处理》课程概述

    本节着重介绍《自然语言处理》课程的教学内容以及教学目标。

    2.1 教学内容

    本课程向高年级本科生介绍自然语言处理的基本概念以及自然语言处理涉及的多个子领域[8],包括:1)自然语言处理概述:主要介绍自然语言处理研究的内容、发展历史以及研究现状;2)语言模型:主要涉及n元语法、数据平滑和语言模型中的熵知识;3)概率图模型:主要讲解贝叶斯网络、马尔可夫模型、隐马尔可夫模型、最大熵模型和条件随机场;4)词法分析:主要讲解汉语自动分词的基本问题、汉语自动分词方法、命名实体识别任务和词性标注任务;5)句法分析:主要讲解句法分析的流程、英文的上下文无关语法、基于PCFG的基本分析方法、词汇化的短语结构分析方法和依存句法分析;6)语义分析:主要介绍词义消歧任务和语义角色标注任务;7)篇章分析:主要涉及篇章分析的基本理论、篇章的衔接性分析和篇章的连贯性分析;8)文本分类:主要讲解文本分类、情感分类、文本特征的表示方法、文本特征的选择方法和分类器的选择;9)自动文摘:主要介绍单文档自动摘要和多文档自动摘要;10)信息检索与问答系统:主要介绍信息检索技术、问答系统、闲聊型对话系统以及任务型对话系统;11)统计机器翻译:主要讲解机器翻译研究内容、基于噪声信道模型的统计机器翻译原理、IBM翻译模型、基于短语的翻译模型和基于神经网络的翻译模型。

    2.2 教学目标

    本课程旨在培养学生了解自然语言处理以及机器学习中的一些基本算法,以及对于文本处理的解决思路有一个初步的认识。本课程的具体教学目标如下:

    (1)基本概念:学生能够掌握自然语言处理的基本概念、自然语言处理各个子领域的区别、机器学习的基础算法以及自然语言处理目前的最新研究进展。

    (2)文本分类:首先,学生能够使用Python编程语言以及PyTorch深度学习开源框架实现基于SVM/LSTM/BERT的文本分類方法。其次,学生能够分析自己实现的方法中存在的问题,以及能够给出可行的解决方案。

    (3)拓展运用:学生能够结合自然语言处理与机器学习等人工智能技术解决新出现的自然语言处理问题。

    3? 实践教学体系中存在的问题

    由于《自然语言处理》课程是一门理论性强、知识体系庞大的新兴学科,在采取传统实践教学中存在多种问题,具体而言如下:

    (1)学生学习兴趣低、积极性不高。本课程内容虽然涉及当前人工智能领域的前沿热门研究,但是照本宣科讲解理论知识打击了学生学习兴趣,慢慢做出迟到、早退、无故旷课等错误行为,甚至发生在课堂上睡觉、聊天、发呆、玩手机等恶劣现象。

    (2)教学难度提升。本课程涉及词法分析、句法分析、语义分析、文本分类、对话系统,统计机器翻译等多个模块内容,是知识体系庞大复杂的综合性学科,传统的教学方法以教师口述书本知识为主,辅以幻灯片投屏播放重点内容,此方法虽然讲解精细全面,然而在课时固定的情况下,教师无法将教学内容按时教授完毕,这无疑增大了教学的难度。

    (3)教学质量降低。本课程是计算机专业和人工智能专业的重要课程,对教师教学质量的要求十分严格。固有的理论教学模式导致教学内容乏味枯燥,课堂氛围沉闷,学生与教师课上及课后的互动性下降,最终导致教学质量降低,教学目标难以实现。

    因此,传统的教学模式不适用于本课程。

    4 “认知驱动+编程巩固”教学方法

    本节详细介绍了新提出的“认知驱动+编程巩固”教学方法。

    4.1 “认知驱动”教学

    “认知驱动”教学法,即基于学生认知的教学方法。不同于传统教学方法以教师的角度去执行,该方法从学生的角度去执行,以学生现有的认知水平为起点并规划学习的内容,让学生根据自己对自然语言处理的现有认知去探索研究某一子领域内容,教师在此过程中扮演了观察者以及评估者的角色。”认知驱动“教学法一方面可以提高学生学习的兴趣和积极性,培养学生在学习过程中的独立思考能力和创新思维,另一方面可以帮助教师掌握每一位学生的知识基础,基于因材施教的理念为学生设计不同的教学策略。

    例如,在讲解“文本处理”方法时让每一位学生根据自己的现有认知表述什么是文本处理,如何对文本进行处理。有些同学数学基础较强,可以将文本处理的过程用数学公式形式化描述,还有些同学编程能力较强,用伪代码算法框架描述了文本处理的流程。

    4.2 “编程巩固”教学

    “编程巩固”教学法,即基于编程实践的教学方法。不同于传统教学方法致力于教授理论知识,该方法致力于理论联系实践,教学目标以编程实践能力为重点,教学内容以编程实践作为载体。通过阶段性地布置编程实践作业,让学生在实践中巩固理论知识。“编程巩固”教学法一方面可以提高学生的动手能力和合作能力,另一方面可以帮助教师掌握学生当前的学习情况以及及时对教学安排做出调整。

    例如,在完成“文本分类”实践作业时,教师不限制学生的实现方法,引导学生自由地讨论后让其各自独立的设计解决方案并编程实现,最后安排结果分析探讨环节,鼓励学生之间互相找寻对方方法的不足之处以及提出改进方案。

    5 结束语

    《自然语言处理》是当前高校计算机及人工智能专业的一门新兴课程,其内容涉及语言学、计算机科学、数学等知识。本文分析了当前教学实践过程中存在的问题并就此提出了新的教学规划及内容改革,即,“认知驱动+编程巩固”教学方法。该教学方法主要包含两个方面:一方面采用认知驱动的方法让学生根据自己对自然语言处理课程的认知运用现有的知识给出文本处理的解决方案,这调动学生学习的兴趣与积极性,另一方面采用编程巩固的方法让学生将解决方案通过代码实现出来,这锻炼了学生的动手能力。在实际教学过程中,本文提出的“认知驱动+编程巩固”教学方法成功提高了教学质量,这对其他新兴课程及知识体系庞大的综合课程具有重要的示范作用。教学方法的改进与创新是一项长期的工作,在未来的工作中,还需时时发现问题,总结问题,以及和同行前辈交流问题。

    参考文献:

    [1] D.Manning, HinrichSchtze..统计自然语言处理基础[M]. 苑春法等译 北京:电子工业出版社,2007:1-418.

    [2] 邱锡鹏.神经网络与深度学习[M].北京:机械工业出版社,2020:1-448.

    [3] 李霞,路美秀.自然语言处理课程的实践教学研究[J].福建电脑,2015,011(000):68-69,155.

    [4] 李霞.面向本科阶段开设的“自然语言处理”课程教学研究[J].福建电脑,2013,29(7):50-51,65.

    [5] 何苑,郝梦岩.基于自然语言处理的计算机专业数学课程教学研究[J].长治学院学报,2016,33(2):86-88.

    [6] 钟茂生,黄晓辉,张红斌.“问题引导+项目驱动”并举的自然语言处理课程教学改革实践[J].计算机教育,2018(6):72-75.

    [7] 李霞.跨学科思想在自然语言处理课程中的实践[J].计算机教育,2014(1):92-95.

    [8] 宗成庆.统计自然语言处理[M].2版.北京:清华大学出版社,2013.

    【通联编辑:王力】