一、自然语言处理
![](https://i-blog.csdnimg.cn/blog_migrate/5d8bf2ce038ebd88584c8e2c29e5f6ef.png)
一般来说语言的处理过程分为以下几步:
![](https://i-blog.csdnimg.cn/blog_migrate/92152b6fd466e6287c580e35c67038ea.png)
而中间的两步,句法分析和语义分析是我们自然语言处理课程的主要内容。
以下列出的是NLP的一些应用:
![](https://i-blog.csdnimg.cn/blog_migrate/2f0c79cd057cc2b1a518d74c75e34ad9.png)
近些年,NLP在工业应用上取得了巨大的成功:
![](https://i-blog.csdnimg.cn/blog_migrate/b8b3f3541fb28926d84bdeea9949011b.png)
在讲到深度学习之前,我们先来构建一些概念。一般来说信号处理、数据挖掘等等都只是处理数据,从一堆随机数据里面找出规律等等。但人类语言并不是大量的数据,让你把它变成有用的信息。
![](https://i-blog.csdnimg.cn/blog_migrate/b646413ba6445ec9a69713bc214cc251.png)
语言是一种符号。而人类之间沟通的具体方式是通过一些连续的载体来交换这些符号。当然,这些载体可以是声音、手势、文字或图像等。但是在这些不同的编码方式背后都有着不同的符号。
下面的图片显示传播的媒介都是连续性的。
![](https://i-blog.csdnimg.cn/blog_migrate/8fc46ff5ecf2aec18ba2bbcc9f223ab1.png)
值得注意的一点是,对于语言来讲,词汇量非常庞大,这导致NLP领域中一个非常重要的问题——稀疏问题。
二、深度学习
深度学习是机器学习的一个分支。机器学习就是让机器自动学习,而不是手工写代码,告诉机器应该怎么做。而深度学习与传统的机器学习不同。传统的机器学习其实就是让人类来审视一个特定的问题,找出解决问题的关键,然后设计出与该问题相关的特征,然后写代码来识别这些特征。这样实质上机器并没有学习什么,倒是人类学习了很多。他们仔细研究问题,做了大量的数据分析和理论研究,判断那些属性是重要的。看起来机器只做了一件事,就是数值优化。
![](https://i-blog.csdnimg.cn/blog_migrate/37fd0236687f6c3dbc0c73f1d2ea2fb9.png)
这样,我们发现在机器学习中,大约有 90% 90 % 的工作都是人类在做,只有约 10% 10 % 的工作是电脑运行。
那么,深度学习与其有什么不同呢?深度学习是表征学习(Representation Learning)的分支。而表征学习的理念就是我们可以只向电脑提供原始信号(视觉信号、语言信号等),然后机器可以自己定义特征,来很好地完成任务。深度学习的含义就是如果能得到多层的特征表示,你可以打败其他的学习方法。
![](https://i-blog.csdnimg.cn/blog_migrate/f88f77088960f2868ad785fc49fc870d.png)
下面是深度学习的优点。
![](https://i-blog.csdnimg.cn/blog_migrate/bf7b68a48c61a6d8b35585b1a9a167d3.png)
而深度学习之所以在较短的时间里快速发展起来,离不开以下几个方面的变化:
![](https://i-blog.csdnimg.cn/blog_migrate/af10e6efe1f046680ceaf632fb6c311d.png)
NLP的难点
- Complexity in representing, learning and using linguistic/situational/contextual/world/visual knowledge
- Human languages are ambiguous (unlike programming and other formal languages)
- Human language interpretation depends on real world, common sense and contextual knowledge.
深度自然语言处理
Deep NLP其实就是结合了两个领域,将深度学习的思想用于解决NLP的问题。
![](https://i-blog.csdnimg.cn/blog_migrate/dcc72db3a81e6f519e23b36ada640c0a.png)
深度学习和语言都是以词义作为起点,我们首先要做的事就是将词语表示出来,通常表示为一个向量。
![](https://i-blog.csdnimg.cn/blog_migrate/a8d9180555c67d87eb4dd6e0c3d5d3a6.png)
当我们将词语表示到高维的向量空间,这些空间就成为了非常棒的语义空间。具有相似含义的词语会在矢量空间中聚集在一起,当然空间中的方向也包含了成分和含义的信息。
![](https://i-blog.csdnimg.cn/blog_migrate/94ca92a9bea7b27681652ddea37f0150.png)
在传统情况下,如果我们看到复杂的单词,例如:uninterested,我们会把它看作由更小单元的词素构成。但在深度学习中,我们可以把每一个词素看作是一个向量,然后建立一个神经网络,将这些小单元构建成更大的单元。
![](https://i-blog.csdnimg.cn/blog_migrate/7d4c3e698a2af841f90b77c23e5a977d.png)
深度学习还可以用来找出句子的结构,发现句法停顿点。
![](https://i-blog.csdnimg.cn/blog_migrate/d71843d6014d47dbc36e44abcde899b9.png)
当我们得到了句子的结构,我们可能还想知道句子的含义。
![](https://i-blog.csdnimg.cn/blog_migrate/0aa2efa9fa8d039066d5c4636eb39cfe.png)
还可以将深度学习用于解决语义问题。
![](https://i-blog.csdnimg.cn/blog_migrate/93c3263c1f06fb376ed14a236f8b66ae.png)
当然,还有一些其他应用:问答系统、聊天助手、机器翻译等等。
![](https://i-blog.csdnimg.cn/blog_migrate/05e941def8fce931d6f31b652943d4fe.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c92ece4347a87f37ad62906b4b675fe0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7cfbe7c09ce959a22252632c52d9fe9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8a94e60dffcecf495fab50310b63eb0a.png)
所有的语言形式都是用向量来表示,声音、单词、句子、对话等等。下节课会详细讲解。
![](https://i-blog.csdnimg.cn/blog_migrate/0b9461717351808a41c034ac30295986.png)