什么是自然语言处理?
自然语言处理是一门交叉学科包含,计算机科学、人工智能以及语言学的交叉学科。虽然语言只是人工智能的一部分,但是它非常独特的一部分。自然语言处理的目标是让计算机处理或者说“理解”自然语言,以完成有意义的任务,比如订机票购物或者QA等。完全理解和表达语言是极其困难的,完美的语言理解等效于人工智能。
自然语言处理设计几个层次
第一部分预处理,分词语料处理等等
接下来就是句法分析和语义分析,最后叫做对话分析,需要根据上下文去理解
自然语言处理应用
拼写检查、关键词检索
文本挖掘(产品价格、日期、时间、地点、人名、公司名)
文本分类
机器翻译
客服系统
复杂对话系统
什么是深度学习?
由很多神经网络,也可以说是堆逻辑回归,提供了一种灵活的学习框架,行之有效,2010年崭露头角,现在正在以惊人的发展速度发展,深度学习第一个突破就是语音识别,第二个突破就是计算机视觉。
为什么NLP很难,因为人类语言总是模棱两可,合并一些词,使我们产生误解。
DEEP NLP=Deep Learning+NLP:
将自然语言处理的思想与表示学习结合起来,用深度学习的手法解决NLP目标,这提高了许多方面的效果
层次:语音、词汇、语法、语义
工具:词性标注、命名实体识别、句法、语义分析
应用:机器翻译、情感分析、客服系统、问答系统
深度学习的魅力在于,它提供一套宇宙通用的框架解决各种问题,虽然工具就那么几个,但是在各行各业中都适用。
word vector
接下来会讲。
NLP表示层次:形态级别,传统方法发在形态级别的表示是词素
深度学习把词素作为向量:
NLP工具:句法分析
NLP语义层面的表示:
传统的方法,是手写大量的规则函数,叫Lambda calculus:
在深度学习中,每个句子、短语和逻辑表述都是向量,神经网络负责合并它们。
情感分析:传统方法是请一两百个工人,手工搜集“情感极性词典”在词袋模型上做分类器。
深度学习复用了RNN来解决这个问题,它可以识别“反话”的情感极性:
注意这只是为了方便理解的示意图,并不是RNN的工作流程。私以为这张图放在这里不合适,可能会误导一部分人,以为神经网络就是这样的基于规则的“决策树”模型。
对话系统:最著名的例子是GMail的自动回复
这是Neural Language Models的又一次成功应用,Neural Language Models是基于RNN的:
机器翻译
传统方法在许多层级上做了尝试,词语、语法、语义之类。这类方法试图找到一种世界通用的“国际语”(Interlingua)来作为原文和译文的桥梁。
而Neural Machine Translation将原文映射为向量,由向量构建译文。也许可以说Neural Machine Translation的“国际语”是向量。
结论:所有层级的表示都是向量。
这可能是因为向量是最灵活的形式,它的维度是自由的,它可以组合成矩阵,或者更高阶的Tensor。事实上,在实践的时候向量和矩阵没什么本质区别,经常看到为了效率或单纯的美观而pack成矩阵unroll成向量的操作。