思维之海

——在云端,寻找我的星匙。

NLP学习手册

NLP(Natural Language Processing),自然语言处理。

References

刘知远老师的初学者入门系列:[推荐书目] [本科生如何科研] [文献查阅] [论文写作] [国内会议]

Prerequisites: A Course in Machine Learning

CS224n 斯坦福深度自然语言处理课,官网(各种资料)

oxford-deepnlp

text match survey 李航

基础可以看看吴军的数学之美

Neural Network Methods for Natural Language Processing 综述性较强

Speech and Language ProcessingWeb

Natural Language Processing

A Primer on Neural Network Models for Natural Language Processing

Word2vec

干货 | 陪伴我学习NLP、知识图谱的那些资源

文本预处理技术详解

NLP书籍| 我爱自然语言处理

自然语言处理最新教材开放下载,乔治亚理工大学官方推荐| 机器之心

书单| NLP秘笈,从入门到进阶 - 微软亚洲研究院

闲话AI:自然语言理解难在那儿?(战“疫”有“计”清华名师公益直播课系列)刘知远的知乎专栏

刘知远老师在知乎上的一系列文章和回答不能错过~~

语义分析系统组件),GUI太强辣~

NLP的定义

Introduction and Word Vectors
[slides] [notes]
Gensim word vectors example:
[zip]
[preview]

Suggested Readings:

  1. Word2Vec Tutorial - The Skip-Gram Model
  2. Efficient Estimation of Word Representations in Vector Space (original word2vec paper)
  3. Distributed Representations of Words and Phrases and their Compositionality (negative sampling paper)

自然语言处理(Natural Language Processing,NLP)是计算机科学、语言学、人工智能的交叉学科。

目标:让计算机处理或理解自然语言,从而完成相应任务。

完全理解(understand)和表示(represent)自然语言的含义(meaning)是极其困难的。

NLP技术栈

从语音(speech)或文本(text)源进行分析识别,然后形态分析(Morphological analysis),句法分析(Syntactic analysis),语义理解(Semantic Interpretation),语篇处理(Discourse Processing)。

NLP的应用

  • Spell checking(语法检查), keyword search, finding synonyms(同义词)
  • Extracting information from websites
  • Classifying: reading level of school texts, positive/negative sentiment of longer document
  • Machine translation
  • Spoken dialog systems
  • Complex question answering
  • ——————————————————————————————————————
  • Search(written and spoken)
  • Online advertisement matching
  • Automated/assisted translation
  • Sentiment analysis(情感分析) for marketing or finance/trading
  • Speech recognition
  • Chatbots / Dialog agents
    • Automating customer support
    • Controlling devices
    • Ordering goods

Special about human language

Symbol(符号)。

传统观点:大脑是一个符号处理器。

深度学习:连续——符号——连续。

深度学习与NLP

深度学习是一个机器学习的一个分支。

机器学习的过程:问题分析——特征工程——撰写代码。

机器学习只是擅长数值优化,学习过程几乎有人类完成。

深度学习也属于表示学习的一种。

  • 自动地选择特征
  • 大多数时候就是指神经网络
  • 广义的堆栈线性模型?

Deep Learning in Neural Networks: An Overview


人工特征有各种各样的问题。而深度学习可以方便地表示各种信息。

2010年以来,深度学习的表现远远超过其它传统方法。

为什么深度学习如此成功呢?

  • 技术并非最新发明
  • 但硬件(算力)、数据的现代化提供了模型

深度学习可以很好地与GPU结合进行并行的张量计算。

在语音识别方面,深度学习模型大幅降低了错误率。

在计算机视觉方面,图像分类的错误率也被深度学习所优化。


例:Pope’s baby steps on gays.

词向量表示 Word2vec

Word Vectors 2 and Word Senses
[slides] [notes]

Suggested Readings:

  1. GloVe: Global Vectors for Word Representation (original GloVe paper)
  2. Improving Distributional Similarity with Lessons Learned from Word Embeddings
  3. Evaluation methods for unsupervised word embeddings

Additional Readings:

  1. A Latent Variable Model Approach to PMI-based Word Embeddings
  2. Linear Algebraic Structure of Word Senses, with Applications to Polysemy
  3. On the Dimensionality of Word Embedding.

meaningdenotation指向实体的抽象表示)。

介绍独热编码(one-hot)。

  • 通过独热编码,很难进行similarity的分析(点积总为0)

分布相似性(Distributional similarity):根据上下文来推断两个词汇的相似性。

Skip-grams(SG)算法

聊天机器人

详见: 意图识别笔记

智能聊天机器人的技术综述

自然语言处理实践:聊天机器人技术原理与应用

分类

实现方式

检索式:提前定义回答,通过规则引擎、模式匹配、分类器从知识库中选择最佳回复。

生成式:基于语料自动生成一句话作为用户输入的应答。(质量较差)

目前来说,检索式是主流。但基于深度学习的seq2seq模型可能会使生成式有用武之地。

功能

问答系统:特定领域的知识获取。

  • 模板匹配 + 语义解析
  • 客服——IBMWatson

任务对话系统:特定领域,完成用户期望的任务或动作。

  • 对话管理
  • 预订机票——苹果Siri

闲聊系统:开放领域,陪用户闲聊。

  • 对话管理 + 自然语言理解
  • 娱乐、情感陪伴——微软小冰。

对于任务、闲聊,通常需要主观性的评价作为依据。

主动推荐系统:特定领域,信息主动推荐。

  • 为用户个性化地推荐信息——今日头条。

应用场景

在线客服:自动回复用户提出的与产品或服务相关的问题。

娱乐闲聊:同用户进行不限定主题的对话(闲聊),从而起到陪伴、慰藉的作用。

知识教育:具备人机交互功能的辅助学习机器人。

  • UC聊天机器人

个人助理:通过语音、文字与用户进行交互,实现用户个人事务的查询、代办。

智能问答:回答用户以自然语言形式提出的事实型、推理型、计算型的复杂问题,帮助用户获得信息和决策。

模块

自动语音识别(Automatic Speech Recognition, ASR):语音信号$\longrightarrow$文本信息

自然语言理解(Natural Language Understanding, NLU):文本信息$\longrightarrow$语义表示

对话管理(Dialogue Management, DM):对话状态决策

自然语言生成(Natural Language Generation, NLG):语义表示$\longrightarrow$文本信息

语音合成(Text-to-Speech, TTS):文本信息$\longrightarrow$语音信号

技术原理

自然语言理解 NLU

自然语言的特征:

  • 语音:与发音有关的学问。
  • 音韵:语音组合成读音。
  • 词态:词的状态(时态等)。中文较少。
  • 句法:主要研究句子如何合乎语法。
  • 语义语用:自然语言包含和表达的意思。

自然语言的难度主要在灵活性创新性多义性

模块

命名实体识别(Named Entity Recognition):识别自然语言中具有特定意义的实体。

  • 人名、地名、时间和专有名词。

意图识别:显式意图 + 隐式意图。

情感识别:显式情感 + 隐式情感。

指代消解:指向上下文的代词。

省略恢复:上下文的幻想填充。

回复确认:输入意图模糊,需要主动询问确认意图。

拒识判断:主动拒绝识别超出范围的意图。

策略分类

基于规则:利用规则定义解析文本。

  • 只适用于相对简单的场景,可快速实现一个简单可用的语义理解模块。

基于统计:利用数据训练模型解析文本。

  • 数据驱动、健壮性好,训练数据难以获取且模型难以解释和调参。
  • 意图识别被视为分类问题,可采用多元LR,SVM,AdaBoost等算法。
  • 实体抽取被视为序列标注,输入文本特征,输出文字属于实体的分布概率,可采用HMM,CRF等算法。
  • 当数据量足够大时,使用神经网络的深度学习方法可取得更好效果。
  • 必须针对处理长尾数据

在具体实践中,经常将两者结合起来:

  • 数据较少,优先采用规则;数据积累足够后逐渐转为统计方法
  • 基于统计能覆盖绝大多数场景,但基于规则的方法可以在一些边界上进行兜底,以此提升性能

词法分析

句法分析

语义分析

词袋模型

TF-IDF

词嵌入 Word Embedding

知识图谱

对话管理 DM

对话行为识别

对话状态识别

对话策略学习

对话奖励

有限状态自动机

统计法

神经网络

框架法

自然语言生成 NLG

检索式

模板式

深度学习

问答系统

KBQA

WebQA

CQA

DBQA(基于文档)

对话系统

模块化对话系统

端到端对话系统

意图识别:

仅了解语料标注方面,brat、doccano、prodigy一类

闲聊系统

测评

未来

附录

词性表

Stanford Corenlp学习笔记——词性标注

代词(PN

形容词(ADJ

谓词性形容词(VA

其他名词(NN

副词(AD

动词(ADV

连词(CNJ

限定词(ADV

系动词(VC

“有”作为主要动词(VE

其他动词(VV

专有名词(NR

时间名词(NT

方位词(LC

限定词(DT

基数词(CD

序列词(OD

度量词(M

介词(P

并列连词(CC

从属连词(CS

感叹词(IJ

拟声词(ON

长“被”结构(LB

短“被”结构(SB

把字结构(BA

其他名词修饰语(JJ

外来词(FW

标点(PU

img

img