CS224N课程学习笔记

CS224N Lecture One学习笔记

本文是斯坦福大学CS224N课程(课程主页:http://web.stanford.edu/class/cs224n/) lecture one的学习笔记。


自然语言处理的定义

自然语言处理是计算机科学、人工智能、语言学交叉领域,目的是使电脑具有处理并理解自然语言的能力以执行某些任务(例如:问答、翻译等)。目前而言,完全理解并表示语义还十分困难。下图表示NLP的各个级别。形态分析(Morphological)是分析该词的构造形式(主要针对英语而言,例如,uninterested = un(前缀)+ interest(词干) + ed(后缀))。句法分析是确定句子的语法结构句子中词汇之间的依存关系。本课程着重讲解句法分析和语义表示(其余级别可自行百度或者谷歌,这里不再解释)
CS224N课程学习笔记


自然语言处理的应用

目前,NLP已经应用在各式各样的应用中,例如:语音识别、机器翻译(现在谷歌翻译已经很强大了)、搜索引擎等等。


人类语言

正如自然语言处理定义中提到,自然语言处理目的是为了让机器理解自然语言,所以我们有必要了解人类语言。
人类语言是一个符号化系统,用于表达speaker/writer的意图,例如CS224N课程学习笔记使用rocket符号(symbols)表示、CS224N课程学习笔记使用violin表示。
符号(symbols)能通过以下几种方式编码成信号:声音(即人类说话)、手势(通过手势表达一个词语)、图片(例如前面的火箭图标)、文本。


深度学习

深度学习是机器学习的子领域。与传统机器学习算法相比,深度学习的优势在于自动学习表征(传统机器学习需要花费大量人力和精力手工设计特征)。下面两幅图是传统机器学习和深度学习流程对比,其中深度学习将特征工程和算法合而为一,也就是端到端模型(数据输入到模型直接得到输出,特征工程和算法可看成黑盒子)
CS224N课程学习笔记
CS224N课程学习笔记
DeepNLP = Deep Learning + NLP,即使用深度学习解决NLP的任务和应用(利用深度学习强大的自动特征学习能力),例如:词性标注、命名实体识别、机器翻译、情感分析等等。


NLP困难的原因

上文中提到,虽然NLP有很多应用,但是目前NLP还有许多困难。课程提到其中一个困难是人类语言是模棱两可的(这与编程语言不相同,编程语言不会存在歧义性)。例如:I made her duck,这句话具有歧义。人类会利用常识知识和场景知识解释一句话,但是计算机并没有常识知识。这也是NLP难以解决最大的原因。下图是一些其他例子:
CS224N课程学习笔记



NLP的表征

由于NLP目的是使机器理解自然语言,为此,第一步是需要将自然语言转化为向量。
在传统的方法中,我们常常会使用one-hot向量(one-hot向量只有一个元素为1,其余元素都为0),但one-hot向量有以下两个缺点:(1)稀疏 (2)不具有词义信息。
为了改进这些缺点,我们现在常常使用word2vec或glove技术将单词转化为向量(转化方法下两节课会详细讲解,这里只是提一下),该向量能够表达单词的意思(注意,向量的元素并没有可解释性),同义词在向量空间往往聚集,如下图:
CS224N课程学习笔记
不仅是单词,前缀、后缀、词干、句子、文档等所有级别都使用向量表示。


结论

本节课课程内容简要概述自然语言处理和深度学习的定义,解释了NLP困难的原因,并且也提出将单词意义转化为向量的想法。同时,为了加深对自然语言处理的理解,课程也简述了人类语言的定义。除此之外,本节课列举NLP不同任务所使用传统方法与深度学习方法,具体可以看slide和视频。