自然语言处理 第一节

什么是自然语言处理

自然语言处理是人工智能的一部分,人工智能还有其他部分:计算机视觉、知识表示和推理等。语言是人工只能中一个非常特殊的部分,因为语言是人类特有的属性,而对于计算机视觉来说,地球上有很多生物都有相当不错的视觉系统。因此自然语言处理被认为是人工智能核心技术之一。我们的目标是让电脑处理或理解人类的语言从而完成有意义的任务。它可以安排约会、买东西等或进行者智能回答比如siri等。

语言有哪些层次

自然语言处理 第一节_第1张图片

图1.1

语言有哪些层次?它们是如何进行处理的呢?图1.1是传统的语言层次。首先语音输入或者文本输入,进行语音信号分析或文本识别,之后先尝试做单词的理解,前缀后缀“in、able”等,然后做句法的理解,句子的结构主谓宾等,接着,试着做语义的理解,得出句子的含义,然而,仅此还不够,许多句子的含义是通过上下文表达的,这就引出了语篇处理等研究领域,我们集中大部分时间来讨论句法分析和语义理解。

自然语言处理的应用

你每天几乎都都在用自然语言处理相关的软件,简单的来说,比如文档中的拼写检查手机上的自动填写等功能,这些都是初级的语义理解任务。当你进行在线搜索时,搜索引擎会联想到同义词及你可能想要查询的内容,这也是一种语言理解任务。我们更感兴趣的事,如何训练计算机处理更复杂的语言理解任务。我们希望计算机能够阅读文本信息、网站、报纸或其他来源的提取信息,从而充分理解文本。如判定某条新闻说的是正面的还是负面的消息,我们甚至希望电脑课以完成所有层次的语言理解任务,包括机器翻译,从一种语言到另一种语言;构建口语对话系统,让你和电脑像人一样谈话交流......自然语言处理近年来在商业上取得巨大成功,情感分析类型的产品也有巨大的商业价值,比如很多公司每天每小时都在扫描新闻文章对某些公司进行情感分析,做出买卖决策。在近期,掀起了研究聊天机器人、聊天助手这类交互产品的热潮。

人类语言的特别之处

语言处理与人们做的信号处理、数据挖掘等有很大的区别,信号处理、数据挖掘等大多数只是对数据进行处理,用一些视觉系统来识别数据、分析数据从而查找规律。而人类语言并不是如此,它们不是一堆数据,几乎所有的人类语言都是某个人想要传递某个信息。他们为此构建了一条消息,来将信息传递给另一个人。人类语言还有一个特点是,它是一个复杂的系统。我们有表示某些概念的词汇,实际上我们是在用符号系统与其他人进行交流。人类语言就是一套符号体系,将语言的符号体系映射到我们的大脑中,将大脑堪称一组符号处理器。深度学习领域认为大脑具有连续激活模式。

自然语言与深度学习

首先,深度学习是机器学习的一个分支,基本的思想就是怎样让电脑自动学习,而不是人工教授、手写代码,像传统的编程那样,告诉它你想要做什么。但深度学习还是非常不同于机器学习,核心区别在于,对于大多数传统的机器学习,他们都是围绕着决策树、逻辑回归、朴素贝叶斯、支持向量机这些概念。所做的是先审视一个特定的问题,找出解决这个问题的关键要素,然后设计出与该问题相关的重要特征要素,然后手写代码来识别这些特征吗,通过不断加入新的特征,达到更好的效果。而机器到底学了什么呢?他们只是做了数值优化,当收集好了信号,你建立好线形分类器后,在每个特征向量钱加一个参数权重,机器学习系统的工作,就是调校这些数字,来优化表现。相反而言,人类反而学了很多,做了大量的数据分析、做理论研究、查找哪些属性是重要的等。我们发现,机器学习在实际运用中,大约90%的工作是人类研究如何表述数据,总结出重要特征,只有10%的工作是电脑运行这一数值优化算法。

深度学习是表征学习的一个分支,表征学习的理念就是,我们可以只向电脑提供来自世界的原始信号,无论是视觉信号还是语言信号,然后,电脑可以自动得出好的中介表征来很好的完成任务。所以从某种意义上说,它是在自己定义特征,和过去人类自己定义特征一样。通过深度学习,你将得到多层的习得表征。我们手动设计的特征往往太过于具体且不完整,需要花很长时间来设计和验证,最终只能达到一定的表现水平。但习得的特征适应性强、训练得快,他们可以不断学习、不断提升表现水平。因此,深度学习提供了这样一种非常灵活通用的学习架构、可以表示各种类型的信息:语言信息、世界信息或视觉信息。它可以用于监督学习和无监督学习中。

深度学习真正意义上的第一个重大突破是语音识别。语音识别历经近十年研究,每年只能提高百分几的准确率,而使用深度学习,语音识别的错误率大幅下降30%左右。深度学习的第二个巨大成功的例子是计算机视觉。当用GPU上运行深度神经网络,一句降低超过三分之一的误差,它的表现还在不断进步。

我们将利用一些深度学习、神经网络的思想以及表征学习的思想,将他们运用到语言理解、自然语言处理等方面的问题上。一方面,深度学习被应用到各种不同层次的语言学上,如词汇学、句法学、语义学,应用于各种不同类型的工具和算法。例如:为单词标注词性、识别人物姓名和机构名称,找出句子的句法结构,此外,她还应用到语言应用程序中,结合各部分功能,比如机器翻译、情感分析、聊天助手等。深度学习模式运用同样的一套核心工具和技术,非常统一的方法来处理各个领域的问题。

我们需要做的是将一个词用数据向量来表示(后面的课会继续展开讲)。通常会用300维的向量来表示。当有了表示单词的向量,这就意味着,我们将单词放在了高维向量空间中。当我们有了那些方法,利用深度学习来学习单位向量,这些空间就成为了非常棒的语义空间。具有相同含义的词汇将在矢量空间中形成聚集块,不止如此,向量空间中存在方向,它们会透露关于意义的一些信息。对人类来说,我们不是非常擅长解读高维空间。

我们可以用神经网络进行依存句法分析。当我们得到了一些句子结构,我们可能想要了解句子的含义。以向量表示词语含义,这样也可以用向量表示短语的含义,然后,就可以用一个向量表示更长的短语,甚至句子的含义。如果我们想知道句子含义之间有什么关系,我们可以训练神经网络,让它来做出决定。

在情感分析方面,试着改进语义表征,更加严禁真实的语义表征,能够更好的理解句子中的正面和负面情绪。搞清楚句子中哪些部分有不一样的含义,例如:这部电影并不注重聪明、机智或其他类型的高级幽默。系统可以非常准确的判断出这里有一堆积极词汇“聪明、机智、高级幽默”,这也是传统情感分析容易出错的地方,他们会根据这些积极词判断,这是一个积极的句子。但神经网络会注意到这句话一开始说的是“不注重”,他会准确的判断这个句子的整体情绪是否定的。

在创建聊天机器人方面,人类可以与移动设备进行交互。基于神经网络的深度学习语音识别系统表现的非常惊艳。

在机器翻译方面,从2014年开始出现端到端训练的深度学习系统,用它来做机器翻译,后来被称为神经机器翻译。他运用了一个大型的深层的循环神经网络,它通过阅读源语句生成向量,内部表征来代表已有的句子,当达到句子结尾,则开始在译文中生成单词。在翻译过程中依次生成单词。这被称为一种神经语言模型。

为什么自然语言处理很难

人类语言不像编程语言。人类语言是模棱两可的。在编程语言中,有大量的规则使得编程语言清晰,如变量x,y的设定,在下文中出现的x,y就可以知道具体指代,而人类语言中的指代“它、这个、那个”必须通过上下文分析,才可以得出指代内容。最大的问题是,人类吧语言作为一种高效的通信工具,经常使用省略来表达一些语义。听众会根据自身的世界性常识来自动补全剩下部分。而编写程序时,会明确表达出需要他运行所需的一切。

你需要具备的知识

python

矩阵、多元微积分、线性代数

基本的概率和统计学知识

机器学习相关的基础知识:如损失函数、梯度下降等

我们会发现,所有模型的输入都是向量,我们将不同的语言形式转换成向量,向量是一切的基础,下一节主要讲解向量相关。

课程来源:斯坦福自然语言处理

 

 

你可能感兴趣的:(自然语言处理,研究生之路,自然语言处理,情感分析,深度学习)