该系列博客是对斯坦福CS224n系列课程的学习笔记,主要用于记录课程主要知识,加深个人理解。另外此系列博客只记录每一讲中个人认为重要的内容,不包含全部内容。文章若有错误之处,请各路大神批评指正。
自然语言处理是计算机科学、人工智能以及语言学的交叉学科,其目标是为了让计算机能够处理或者理解人类语言,完成有意义的任务,如订票、购物等。
NLP任务的输入主要有语音和文本,其对应的第一级分别就是语音识别和OCR或分词。接下来是形态学,然后就是句法分析和语义理解。由于仅仅理解单词或词语的意思无法准确理解句子的含义,所以句法分析和语义理解是NLP学习中的重点。 该课程主要关注图中画圈的两个部分,语音信号分析是NLP领域第一个大显身手的领域,但该课程的重中之重还是在第二部分。
NLP中的应用多种多样,大概可以从难易程度进行划分如下:
初级任务:拼写检查、关键词搜索、查找同义词等中级任务:阅读信息,理解文本,提取特定信息;文本分类,比如判断文章阅读难度或目标受众,推文是正面还是负面的高级任务:机器翻译,口语对话系统,智能问答等深度学习是机器学习的一个分支,其基本思想就是让电脑自动学习,而不是手工写代码告诉电脑该做什么。 在传统机器学习中,面对一个应用问题,人类需要具备专业的背景知识,然后人工设计特征,把设计好的特征交给机器学习算法,让机器完成权值优化的工作。在这个过程中,所谓的“机器学习”并没有让机器真正的学习,而只是帮助人类完成了最后的优化工作,反而是人类学习到更多领域知识。课程中给出的一张图很好的表示了这种关系: 而深度学习作为表征学习的一部分,其学习的是原始输入的多层特征表示:
深度学习是在上世纪八九十年代提出的,但是在2010年才逐渐崛起,究其原因主要有两个方面,一方面是随着社会的发展,出现了能够发挥深度学习优势的海量数据和支撑深度学习计算的硬件能力,另一方面是深度学习不需要人工设计特征,同时在各种任务上取得了突飞猛进的成果。
人类语言模棱两可,不像编程语言一样具有明确的变量,另外人类语言会省略大量信息,但是人类在接受语言时会根据自身的背景知识进行补充。 课程中举了几个很有意思的例子,此处列出一个:
The Pope’s baby steps on gays
人类对于这句话的理解通常为“教皇在同性恋问题上裹足不前”,但是对于没有背景知识的机器来说,可能将这句话理解成“教皇的孩子踩了基佬”,这就是语言的歧义性所在。 所以说,自然语言处理是人工智能皇冠上的明珠,其困难性不言而喻。
Deep NLP就是将深度学习的思想用于自然语言处理的任务中,比如机器翻译、情感分析、客服系统等,用于解决实际中存在的问题,目前深度学习在自然语言处理任务中表现很好。另外课程中还简单介绍了NLP领域常见的词向量,这在后续的课程中还会详细讲解,本篇博客不再赘述。
CS224n第一讲主要从顶至下的介绍了NLP,算是为初学者打开一扇大门的入门课程。下一讲是对向量表示的讲解,难度相较于此篇博客深入,希望通过博客的记录,能够加深自己对NLP领域知识的掌握和理解。