前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Coursera NLP 课程 - 第一周 - 01 - NLP 课程介绍

Coursera NLP 课程 - 第一周 - 01 - NLP 课程介绍

作者头像
caoqi95
发布2019-03-27 17:50:54
6450
发布2019-03-27 17:50:54
举报

「学习内容总结自 coursera 上的 Natural Language Processing 课程」

NLP 的主要实现方法

  • 基于规则的方法(Rule-based methods)
    • 正则表达式
    • 无关文本的语法(Context-free grammars)
    • ...
  • 概率模型和机器学习
    • 极大似然估计
    • 线性分类
    • ...
  • 深度学习
    • RNN
    • CNN
    • ...

三种方法的简单介绍

课程中通过语义槽填充 (Semantic slot filling) 的例子来简单介绍三种实现方法。语义填充的问题如下:

show me flights from Boston to San Francisco on Tuesday.

  • 方法1:Context-free grammars,简称 CFG。其是基于规则的一种方法,会告诉我们产生单词的一些规律。比如下图所示, show 单词可以引申出很多意思,有 show me | i want | can i see 等,即很多单词都可以填充到这个语义槽里面。一旦建立了这个 CFG ,可以用它来分析文本数据。 该方法的缺点是大量的工作都是基于手工的,必须自己或者语言学家来写出所有的规则。所以,很明显这是一项很庞大很耗时的工程。同时这种方法的记录不是很好,因为不能写下所有可能的城市。 优点是该方法精确度会很高。通常基于规则的方法拥有高精度低召回。
代码语言:javascript
复制
• SHOW → show me | i want | can i see |…
• FLIGHTS → (a) flight | flights
• ORIGIN → from CITY
• DESTINATION → to CITY
• CITY → Boston | San Francisco | Denver | Washington
  • 方法2:建立机器学习系统,是机器学习的一种方法。应用该方法首先需要准备一些训练数据 (train data),所以会需要有标记的语料库(corpus)。因此,会有一系列的短语以及一些特定的短语有特定的文本。比如,ORIN,DEST,DATE 这些。有了训练数据之后,需要做一些特征工程。例如,这个单词是否是首字母大写,这个单词是否是城市名等类似的情况。然后需要定义模型,比如,建立概率模型去预测下一个单词的出现。在课程中会介绍和探索很多不同的模型。但是一般地,这些模型会有一些参数,这些参数取决于刚刚建立的特征。以及这些参数需要被训练,所以需要用训练数据来拟合模型。模型训练完成,就可以应用于测试数据(test data)上。
  • 方法3:运用深度学习中的 LSTM。大致过程与机器学习一样,准备训练数据用以训练模型,训练完成后将其应用于测试数据上。但是深度学习方法中准备的数据是很庞大的,且搭建的是神经网络模型。

为什么要学习传统方法和 DL 方法

  • 学习传统方法的原因:
    • 在很多任务上能够表现的很好
    • 让我们不盲目炒作
    • 在提升 DL 模型上给予帮助和启发
  • 学习深度学习方法的原因:
    • 在很多任务上提供最先进的表现
    • 其是目前在 NLP 领域中研究最多的方法
    • 看起来很酷以及所有人都想要了解

NLP 中的语言知识

在 NLP 领域中,不仅数学知识很重要,语言知识也很重要。这一点是值得去记住的。

  • NLP Pyramid 下面的金字塔图片,经常出现在 NLP 的相关介绍中。金字塔的最底层是形态学 (Morphology) 阶段,这一阶段将涉及不同形式的词汇。例如,我们关心的是部分文本,关心不同的情况,性别和时态。所以这一阶段是为了句子中的单个单词而发生的。 金字塔的倒数第二层是句法 (Syntax) 阶段,即句法分析,将是关于句子中单词之间的不同关系。例如,我们可以知道有一些宾语 (object) 和主语(subject) 等等。 金字塔的下一阶段是语义 (Semantics) 阶段。一旦我们知道了一些合成结构,就会涉及到语义。语义就是意思 (meaning)。 如此看来,我们在抽象中越来越往高处走,从一些符号变成了一些意思。而语用学 (Pragmatics) 将是这种抽象的最高层次,即是金字塔的最后一层。

以上每个阶段的细节不会全部在课程中提到,因为有很多第三方的代码库能够帮我们做到这些事情。

  • 语言学知识 来自 NLP 的语言部分的另一件事是词语之间的不同类型的关系。语言学家非常了解这种类型的可能性。这些知识可以在一些外在资源中找到。例如,WordNet 是一个资源,可以告诉我们一些层次关系。就像水果由一些不同类型的水果组成,如桃子,苹果,橙子等等。所以这种关系将被称为上位词(水果)和下位词(桃子,苹果,橙子...)。另外还有局部和整体的关系。例如,车轮和车。 另一个资源是 BabelNet。BabelNet 资源是多语言的,所以你可以在那里找到不同语言的一些概念。好处是,在这些概念之间会有一些关系。例如,只是在那里输入了NOP,然后可以看到需要测试的词性。点击进入这个测试,可以在这个概念空间看到最近的一些邻近词。例如,可以看到Viterbi 算法和 Baum-Welch 算法在某处附近。在课程的第二周,将会知道他们确实与这项任务非常相关。所以可以看出,有一些外部资源可以很好地用于我们的应用。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.06.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NLP 的主要实现方法
  • 三种方法的简单介绍
  • 为什么要学习传统方法和 DL 方法
  • NLP 中的语言知识
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档