何为自然语言处理

自然语言处理的目标是让计算机处理或者“理解”自然语言,以完成有意义的任务,如QA等。

自然语言处理涉及的层次

  • 输入有两个来源:语音和文本,所以第一级是语音识别,OCR或者分词

  • 形态学(Morphological analysis)或称词法或者词汇形态学。其研究词的内部结构,包括屈折变化和构词法两个部分。

  • 句法分析(Syntactic analysis)和语义分析(Semantic Interpretation)

  • 对话分析(Discourse Processing),根据上文语境理解下文

    其中,CS223n关注画圈部分的三个部分(语音,句法分析和语义分析)

自然语言处理应用

从易到难大致有:

  • 拼写检查,关键词检索...

  • 文本挖掘(产品价格,日期,时间,地点,人名...)

  • 文本分类

  • 机器翻译

  • 客服系统

  • 复杂对话系统

人类语言的特殊之处

人类语言是离散的,明确的符号系统,但允许出现各种变种。符号传输到大脑的过程是通过连续的声光学信号,大脑编码似乎是连续的模式。另外,巨大的词表也导致了数据稀疏,不利于机器学习。因此,是否应该使用连续的信号而非离散的符号处理语言?

什么是深度学习

机器学习的子集,实际上是将特征工程+学习算法合二为一。深度学习是表示学习的一部分,用来学习原始输入的多层特征表示:

传统的机器学习手工特征耗时耗力,不易扩展,而深度学习自有编解码器,自动特征学习快,方便扩展。传统的机器学习示意如下:

为何NLP困难

人类语言充满歧义,解读依赖现实世界常识以及上下文。

Deep NLP=Deep Learning + NLP

将自然语言处理的思想和表示学习结合,用深度学习的手法解决NLP目标,这推进了不少方面的发展,如词性标注,命名实体识别,句法/语义分析

NLP表示层次:形态级别

传统方法在形态级别的表示是词素,如将uninterested拆分成前缀,词根,后缀三个部分:

深度学习中把词素也作为向量:

多个词素向量构成相同维度语义更丰富的词向量。

NLP工具:句法分析

NLP语义层面的表示

传统方法是手写大量的规则函数,也就是λ演算(Lambda calculus):

在深度学习中,每个句子,短语和逻辑表达都是向量。神经网络负责将它们合并。

情感分析

传统方法是请人手工搜集“情感极性词典”,在词袋模型上做分类器。

深度学习使用了RNN来解决该问题,它可以识别“反话”的情感极性:

QA

传统方法是手工编写大量的规则逻辑,比如正则表达式之类:

深度学习依旧使用了类似的学习框架,将事实存储在向量中:

客服系统

Neural Language Models是基于RNN的:

机器翻译

传统方法在众多层面做了尝试,如词语,语法,语法。这类方法试图找到一种世界通用的“国际语”作为原文和译文的桥梁。

而Neural Machine Translation将原文映射为向量,由向量构建原文,所有层级的表示都是向量:

这也许是因为向量是最灵活的形式,它的维度是自由的,还可以组成矩阵或者更高维度的Tensor,事实上,在实践时,向量和矩阵没有本质区别。

码农场

CS224n笔记一:开端的更多相关文章

  1. 【NLP CS224N笔记】汇总

    [NLP CS224N笔记]Lecture 1 - Introduction of NLP [NLP CS224N笔记]Lecture 2 - Word Vector Representations: ...

  2. CS224n笔记0

    我准备跟随码农场hankcs大神的脚步,学习一下斯坦福的CS224n课程. 关于该课程的简介,hankcs大神已经写得很清楚了.

  3. 【NLP CS224N笔记】Lecture 3 GloVe: Global Vectors for Word Representation

    I. 复习word2vec的核心思路 1. Skip-gram 模型示意图: 2.word vectors的随机梯度 假设语料库中有这样一行句子: I love deep learning and N ...

  4. 【NLP CS224N笔记】Lecture 2 - Word Vector Representations: word2vec

    I. Word meaning Meaning的定义有很多种,其中有: the idea that is represented by a word,phrase,etc. the idea that ...

  5. 【NLP CS224N笔记】Lecture 1 - Introduction of NLP

    I. 什么是NLP NLP全称是Natural Language Processing,即自然语言处理,这是一门计算机科学.人工智能以及语言学的交叉学科. NLP涉及的几个层次由下图所示.可以看到输入 ...

  6. CS224n笔记二:word2vec

    如何表示词语的意思 语言学中meaning近似于"指代,代指,符号". 计算机中如何处理词语的意思 过去一直采用分类词典,计算语言学中常见的方式时WordNet那样的词库,比如NL ...

  7. 斯坦福NLP课程 | 第2讲 - 词向量进阶

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  8. CS224n学习笔记(一)

    How do we have usable meaning in a computer? Represents the words as discrete symbols, (离散型变量) Use t ...

  9. CS224n学习笔记1——深度自然语言处理

    一.什么是自然语言处理呢? 自然语言处理是计算机科学家提出的名字,本质上与计算机语言学是同义的,它跨越了计算机学.语言学以及人工智能学科. 自然语言处理是人工智能的一个分支,在计算机研究领域中,也有其 ...

随机推荐

  1. BootstrapTable的使用教程

    官方网站:http://bootstrap-table.wenzhixin.net.cn/参考文档:http://issues.wenzhixin.net.cn/bootstrap-table/ind ...

  2. hadoop 3.x 关闭安全模式

    hdfs启动后发现进入了安全模式,最开始使用hdfs dfsadmin -safemode leave来进行关闭发现无法关闭,只好使用hdfs dfsadmin -safemode forceExit ...

  3. Mina、Netty、Twisted一起学习(三):TCP前缀固定大小的消息(Header)

    于以前的博文于,有介绍切割消息换行的方法. 但是有一个小问题,这样的方法,设消息中本身就包括换行符,那将会将这条消息切割成两条.结果就不正确了. 本文介绍第二种消息切割方式,即上一篇博文中讲的第2条: ...

  4. cocos2d-x 调色

    在游戏开发.我们须要实现闪光的灯.照明弹效果等等,我么你能够採用混合模式来实现. 假设学习过OpenGL(ES),就知道里面使用glBlendFunc函数实现的.在cocos2d-x里肯定也有,对于精 ...

  5. 浅谈Linux下各种压缩 解压命令和压缩比率对比

    Linux下压缩.解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式. 比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而 ...

  6. 探究Promise的实现

    最终答案在一个类库里,地址 https://github.com/yahoo/ypromise 这个类库也有问题,就是下面这道面试题在IE9里实现不一致,类库里还是用了setTimeout.去年尝试用 ...

  7. 一个2013届毕业生(踏上IT行业)的迷茫(5)

    很快就到了该找工作的时间了,听说这一年是历史上找工作的人对多的一年,我也不知道是怎么统计的,可信不可信.跑了大概快一个月了,终于有offer了,就这样在这里实习了3个月,一直工作到现在. 回忆了整个学 ...

  8. Application与Context关联

    在发展中Application分类,几乎每个项目将用于,它的四个组成部分的实施优化,它是一个全球性的框,这可能是这么理解,例如,我们可以application类存储一些变量,在其他类访问,例如,在A类 ...

  9. [LeetCode]Word Break 特里

    意甲冠军:推断字符串给定的字符串是否构成词典. 来推断目标字符串相匹配整个字典.我们需要来推断目标字符串的每个前缀开始的下一场比赛,这需要匹配目标字符串的成功,所有前缀的枚举. class TrieN ...

  10. servlet-显示器

    1.什么是监听器 监听器是实现一个特定的接口java规划,该计划的目的是还调用类方法监听器.java的awt大量使用该模式,如的能力button点击事件.当鼠标点击时,就会调用事件处理程序.又如:在j ...