基于规则方法的自然语言处理

本章主要介绍基于规则的方法在 NLP 中的应用方式,包括:形态还原、分词、词性标注、命名实体识别、机器翻译

1.形态还原

将词还原成原形,比如把 went 还原成 go,把 better 还原成 good 等

构词特点:曲折变化、派生变化、复合变化

还原规则:通用规则、个性规则(比如不规则变化)

2.分词

主要介绍了中文分词,也就是如何把一个紧密的字串划分成词的组合

中文分词方法存在三种歧义

交集型:$ABC$ 可以划分成 $A|BC$ 或 $AB|C$

组合型:$ABC$ 可以划分成 $A|B|C$ 或 $AB|C$ 或 $A|BC$

混合型:上述两种歧义都存在的时候

分词方法

最大正向匹配 FMM 当然也包括逆向 RMM

双向最大匹配 Bi-MM:同时使用 FMM 和 RMM,可以发现交集型歧义

FMM + 逆向最短词:可以发现组合型歧义

逐词遍历:每次选择最长的候选词并将其删除,重复上述过程

划分标记

这个可以详细展开描述 对于一个由 N 个字组成的句子,它有 N - 1 个划分点,怎么选择这些划分点是一个很有趣的课题

一个常用的划分指标是互信息 PMI(Pointwise Mutual Information),它可以衡量两个字之间的关联程度,PMI 越大,说明这两个字越可能组成一个词

$$\text{PMI}(x,y) = \log \frac{P(x,y)}{P(x)P(y)}$$

其中 $P(x,y)$ 是字 $x$ 和字 $y$ 同时出现的概率,$P(x)$ 和 $P(y)$ 分别是字 $x$ 和字 $y$ 出现的概率

全切分

这个也可以展开聊聊 全切分是一种简单的分词方法,它会生成所有可能的分词结果,最后选择评估最优的划分方式

这里给出一种参考的选择方法是 Score 方法,它给每一个候选词列出一个分数

$$ \text{Score}(w) = -\log P(w) $$

最后的目标就是选择

$$ \arg\min_{w_1,\ldots,w_n} \sum_{i=1}^{n} \text{Score}(w_i) $$

3.词性标注

为句子中的词标注预定义的词性,比如名词、动词、形容词等

词性的分类方法有很多,存在开放类(open class)和封闭类(closed class)之分

词性标注问题的挑战是一个词可能有多种词性,这时基于规则的方法就很难处理,PPT 给出了一个参考项目,它是用复杂的二叉树来进行 IF ELSE 判断

4.命名实体识别

识别一句话中的所有命名实体,这个在 PPT 中基本没展开

5.机器翻译

机器翻译是什么,本质上就是求解下面的优化问题

$$ \arg\max_y P(y|x) $$

规则翻译的流程分为:分析、转换、生成三个阶段

  • 分析是将 Source 转化成 Source 对应的深层结构表示
  • 转换是将 Source 的深层结构表示转化成 Target 的深层结构表示
  • 生成是将 Target 的深层结构表示转化成 Target 的表层结构

结构层次为三个层级:词汇、句法、语义

除了上面提到的三种方式外,也有一种方法是基于中间语言的翻译方式,它有效降低了多语言互相翻译时的复杂度,避免了 $N^2$ 种翻译方式的出现