菜鸟的NLP学习记001 ---------斯坦福公开课CS224n--------自然语言处理简介

本文为学习笔记,供自己复习回顾,分享,交流,如果专家们发现谬误之处欢迎批评与修正。

----------------------------------------------------------------------------------------------------------------------------

最近因为有一门叫做text mining的课,并且NLP一直都很火,想入一下坑试试,所以就开了这一栏,来简单记录下自己的学习。

我NLP学习的是斯坦福公开课 CS224n 的Manning的课,很火,课上有很多人,和我们学校的text mining一样人很多,我看的是中文版的,链接如下,也可以上YouTube或者官网看。

CS224n 斯坦福深度自然语言处理课: http://www.mooc.ai/course/494

相关课程还有:
CS224U: Natural Language Understanding
CS224d: Deep Learning for Natural Language Processing

----------------------------------------------------------------------------------------------------------------------------

1.什么是自然语言处理?

首先一个概念,自然语言处理(NLP)是计算机专家取的名字,在语言学家眼里就是计算语言学(CL),其实他俩差不多,甚至在我们这种外行人眼里可以说是一样的,就是NLP是计算机科学的分支子学科,CL是语言学的分支子学科,和谐一点,咱学计算机的,就叫NLP吧,NLP是一门跨领域交叉学科,包括计算机科学,人工智能,语言学三大类,说白了,就是你得会编程,还得懂算法,之后还得学语言学,所以说这玩意难呢,我前俩还没搞懂呢这。

我们想要做的是让计算机去处理或者说是“理解”自然语言像人样使用语言进行表达,从而实现一些有意义的工作。例如:

1.执行像预定操作,购买操作等任务。(语言控制)

2.问答答疑,Siri, 小娜等等。

完全理解并表示语言意义是一件十分困难的事情,因为语言是人类所特有的,而且不同语言具有不同的表达方式,所以不可能做到完全理解,这是一个AI-Complete问题,事实上我们能让机器一知半解就很不错了。

语言层次理解

菜鸟的NLP学习记001 ---------斯坦福公开课CS224n--------自然语言处理简介

1.首先语音/文本输入处理

2.之后对单词结构进行形态分析(Morphological analysis),也就是了解单词的构成,什么名词动词,过去式现在进行时啥的。

3.之后我们需要理解句子结构,进行句法分析(Syntactic analysis),就是分析主谓宾定状补,从句啥的。

4.之后我们进行语义分析(Semantic Interpretation),解释句子的含义,一般是简单的单词意义和句子含义。

5.但仅仅如此还不行,咱人说话都是有语境上下文的,所以要引入语篇处理(Discourse Processing)的研究。

 

这门课我们主要关注中间那个圈,句法分析和语义分析,稍微讨论下左上角那个圈,句子结构的形态分析。

人类语言有啥特殊的 

1.人类语言是一个专门构建用来为人类传达信息的系统,不仅仅是环境信号,而是经过深思熟虑的交流,有很明确的指向性,虽然语言系统是一个非常复杂的系统,但是一个三四岁的小孩可以很容易学会。

2.语言是一个符号信号系统,我们在于人讨论东西时,实际上是在用符号系统与其他人交流,我们可以联想到东西的样子啥的,而且一丝丝小差别也会表达出不同的意思,不同的说话语境说出来同一样话也表达不同的意思。

e.g.我爱编程!  我爱编程?  我爱编程。   我爱编程!@#¥%……&

但是依赖符号,我们可以非常可靠的进行远距离信息的传输。

3.语言其实就是符号,但符号不只是基于逻辑或这传统AI的发明。当人类进行沟通时。虽然使用符号,但是说一种连续的载体进行信息传递,语言奇妙之处在于,你可以使用不同的连续载体进行相同信息的传递,手语,声音,文字等等。

4.其实我们是在对各种符号进行编码,但在编码背后,似乎都存在一种符号(我理解是,传达相同信息)。但在语言学中词汇特别多,所以容易造成编码稀疏问题。

2.什么是深度学习?

深度学习是机器学习的一个子领域,大多数传统的机器学习方法都能表现的很好,是因为人们审视问题并对于特征的选入和表征的设计,例如,我们会用主观知识(domain knowledge)去影响数据输入,确实这样效果很好。但这样机器学习到什么了么?实际上机器几乎什么都没学到,倒是人类学到了很多,他们仔细研究问题,做了大量的数据分析,机器到底干了啥??说白了,就是干了他最擅长的活,也是最开始发明计算机干的活,数值优化,调参,优化表现。

凡是,我们就仅仅让计算机帮我们数值优化么?

深度学习是表征学习的一个分支,表征学习的理念就是,我们可以只向电脑提供来自世界的原始信号,无论是视觉信号还是语言信号,然后,电脑可以自动得出好的中介表征,来很好的完成任务。所以从某种意义上来说,他是在自己定义特征和过去人类自己定义特征一样。

准确来说,DL真实含义是指你将得到多层习得特征,你可以用这些特征打败其他算法。大多数情况下我们讨论的是神经网络。

菜鸟的NLP学习记001 ---------斯坦福公开课CS224n--------自然语言处理简介

深度学习最早在语音上应用之后图片,最后是语言,也就是NLP。

3.为什么语言理解很难?

1.表示,学习,使用的复杂性

语言不局限于单一表达形式,历史,统计,可视化知识,反正就是涉及的东西很多。

2.人类语言是模糊的

在学编程时候,我们只要遵循语言的编写规则就可以了,但人类语言不是这样的,我们时常使用指代词,这个那个的,但只能结合上下文来搞清楚。而且我们还会使用一些省略来提高我们沟通效率。

3.人类语言解释取决于真实世界,共同感,以及上下文知识(语境知识)

我们考虑语言问题时,要结合具体的环境而定,而不是一概而论的。

Deep NLP = Deep Learning + NLP

我们将利用深度学习神经网络的思想以及表征学习的思想,将它们运用到语言理解,自然语言处理等方面的问题上。

e.g.传统上,我们使用词袋模型进行情感分析

使用神经网络改进语义特征,能更好的理解句子中的正面和负面情绪。

菜鸟的NLP学习记001 ---------斯坦福公开课CS224n--------自然语言处理简介