NLP 课程笔记
课程涵盖范围:
- NLP 子问题(NLP sub-problems):词性标注(part-of-speech tagging)、句法分析(parsing)、词义辨识(word-sense disambiguation)等
- 机器学习技术(Machine learning techniques):概率无关上下文语法(probabilistic context-free grammars)、隐马尔可夫模型(hidden markov models)、估值/平滑技术(estimation/smoothing techniques)、EM 算法(EM algorith)、对数线性模型(log-linear models)等
- 应用(Applications):信息提取(information extraction)、机器翻译(machine translation)、自然语言界面(natural language interfaces)等
第一周:
语言模型(Language Modeling)
- Trigram 模型:
(马尔可夫链)
- 评价模型:Perplexity
- 估计 q 值:
◇ 最大似然估计(数据不够,需要 smooth):
◇ 线性插值:
◇ Discounting:
Katz Back-Off 模型
第二周:
标注问题、隐马尔可夫模型(Tagging Problems, Hidden Markov Models)
- 标注问题:监督式学习(supervised learning)
- 生成模型(generative model),对联合概率分布建模:
- 隐马尔可夫模型(属于生成模型):
标注:
◇ Viterbi 算法:动态规划算法,时间复杂度为
第三周:
句法分析、上下文无关语法(Parsing, Context-Free Grammars)
- 句法分析
- 上下文无关语法(CFG):
◇ N:非终端符号集(例:N = {S, NP, VP, PP, DT, Vi, Vt, NN, IN})
◇ Σ:终端符号集(例:Σ = {sleeps, saw, man, woman, telescope, the, with, in})
◇ R:
◇ S:开始符
概率上下文无关语法(Probabilistic Context-Free Grammars)
- 概率上下文无关语法(PCFG,为 CFG 的每一条规则加上概率)
◇ 概率:
◇ 计算最高概率的语法树:
◇ 最大似然估计:
◇ CKY 算法:动态规划算法
第四周:
PCFG 的弱点(Weaknesses of PCFGs)
- 缺少对词汇信息(lexical information)的敏感度
- 缺少对结构频率(structural frequencies)的敏感度
词汇化的 PCFG(Lexicalized PCFGs)
- 中心词(head):加入中心词的语法树,克服PCFG的弱点
- PCFG的参数(例:)→ 词汇化PCFG的参数(例:)
- 参数估计(smooth):
◇ 第一步:
◇ 第二步:
- 评价:准确率(precision)、召回率(recall)
第五周:
机器翻译(Machine Translation)
- 挑战:词汇歧义、不同语序、句法结构……
- 经典机器翻译:
◇ 直接翻译
◇ 基于转换(transfer-based)的机器翻译:分析→转换语法树→生成(例:Systran 系统)
◇ 跨语言(interlingua-based)的机器翻译:分析(独立于语言的表示)→生成
- 统计机器翻译(statistical MT):噪声信道模型(noisy channel model),以法翻英为例
◇ 语言模型:,可以为 Trigram 模型
◇ 翻译模型:
◇
◇
IBM 翻译模型(The IBM Translation Models)
- IBM 模型 1
◇ 定义英文句 e 有 l 个词汇,法文句 f 有 m 个词汇
◇ 对齐(alignment)a 为
◇ 模型:
其中,
◇ 副产品:复原 alignment(现在最初的 IBM 模型已很少用于翻译,但仍用于复原 alignment)
- IBM 模型 2:
◇ 与 IBM 模型 1 的区别:
◇ 复原 alignment:
- 参数估计(t、q):EM算法(该算法会收敛到 log 似然函数的局部最优解)
第六周:
基于短语的翻译(Phrase-Based Translation)
- 从 alignment 中学习短语
◇ 通过 IBM 模型 2(和 )得到 alignment矩阵
◇ 从矩阵提取短语对
- 基于短语的翻译模型
◇ p:短语 tuple (s, t, e),表示源语言的 译为目标语言的 e(例:(1, 3, we must also))
◇ y:短语的有限序列
◇ :满足一定条件的 y 的集合
◇ 最优翻译:
◇ 任一 y 的得分:
其中,h 为 Trigram 模型得分,g 为基于短语的得分
- 解码算法(decoding algorithm)
第七周:
对数线性模型(Log-Linear Models)
- 对数线性模型:
◇ 条件概率:
◇ 特征:,特征向量:
◇ 参数向量:
◇ 得分:
◇ 模型:
- 参数估计:
◇ 最大似然估计:
◇ 梯度上升法(gradient ascent method)
- 规则化(regularization):
第八周:
用于标注的对数线性模型(Log-linear Models for Tagging)
- 标注序列:
- Trigram 对数线性 tagger:
- 训练模型:
◇ 4-tuple 历史:
- Viterbi 算法
基于历史的语法分析的对数线性模型(Log-Linear Models for History-based Parsing)
- 第一步:将树表示为 decision 序列(Ratnaparkhi's Parser)
◇ 第一层:标注
◇ 第二层:chunks
◇ 第三层:其他结构
- 第二步:树的概率为
- 第三步:使用对数线性模型估计
◇ 定义 f
- 第四步:搜寻问题
Beam Search 方法(不能用动态规划算法)
第九周:
非监督式学习:布朗聚类(Unsupervised Learning: Brown Clustering)
- 布朗聚类算法:
◇ 输入:语料库
◇ 输出:词的聚类(或进一步,分级的词聚类)
- 模型:
- C的质量:
其中,
- 算法一:
◇ 每一词有其自己的聚类,共类
◇ 进行次合并,每次合并使 Quality(C) 最大的两个类
- 算法二:
◇ 最常见的 m 个词都有其自己的聚类
◇ 之后每一步建立一个新聚类,再合并使 Quality(C) 最大的两个类
全局线性模型(Global Linear Models)
- 截至目前为止的所有模型都是基于历史(history-based)的模型(例:PCFG、对数线性 tagger)
- 全局线性模型:
◇ 三个要素:
特征向量
候选
参数向量
◇ 函数
- 参数估计:
◇ 感知器算法(perception algorithm)
◇ Boosting
◇ 对数线性模型(最大似然)
第十周:
标注的感知器算法(The Perceptron Algorithm for Tagging)
- 感知器算法
- 全局特征
通过局部特征定义全局特征:
- 使用感知器算法训练 tagger
依存句法分析的感知器算法(The Perception Algorithm for Dependency Parsing)
- 依存句法分析
◇ 依存(dependency)表示为,分别为首词和修饰词的序号
◇ 时间复杂度为 (比较:PCFG 为,词汇化 PCFG 为)
- 全局线性模型