lexical-analysis

1.汉语的自动分词

主要包括下面两个步骤:
1 . 根据分词规范 , 建立机器词典。
2 . 根据分词算法和机器词典 , 把字串切分为词串。

重要性

汉语的词也是汉语语言中最小的独立运用单位。
自动分词是现代汉语进行句法分析的第一步,是后续语法和语义分析的基础。
汉语分词的关键在于 , 好的分词算法和好的分词词库。

方法

  • 基于规则的方法

    一般都需要事先有人工建立好的分词词典和分词规则库。主要是基于字符串匹配的原理进行分词,往往以足够大的词表为依据 ,采用一定的处理策略将汉语文本的字符串与词表中的词逐匹配 , 如若成功 , 就认为该字串为词。

  • 基于统计的方法

利用字与字间、词与词间的同现频率作为分词的依据 , 可以没有建立好的分词词典。这种方法需要大规模的训练文本 , 用来训练模型参数。这种方法的优点在于它不受应用领域的限制。但训练文本的选择将影响分词结果。

1. 正向最大匹配法(Maximum Matching Method,简称 MM 方法)

MM 算法的具体算法可以描述如下:
设 MaxLen 表示最大词长, D 为分词词典;
(1) 从待切分语料中按正向取长度为 MaxLen 的字串 str, 令 LEN = MAXLEN;
(2) 把 str 与 D 中的词相匹配;
(3) 若匹配成功, 则认为该字串为词,指向待切分语料的指针向前移 LEN 个汉字, 返回到(1);
(4) 若匹配不成功, 如果LEN>1,则把 LEN 减 1,从待切分语料中取长度为 LEN 的字串 str,返回到 (2)。否则,得到长度为1的单字词,指向待切分语料的指针向前前移 1 个汉字, 返回到(1)。


说明: 在步骤(1)中,如果待切分语料的字串长度小于 MaxLen,则取字串 str 为待切 分语料。在步骤(4)中, 如果得到的单字不是词, 是语素字的话, 则需要进行未登录词的识别。


MM 方法优点:
(1) MM 扫描方向是从左到右, 从长到短的顺序进行匹配;
(2) MM 法的原理简单 , 易于在计算机上实现 , 时间复杂度也比较低。
MM 方法缺点:
(1) 必然会忽视“词中有词”的现象, 导致切分错误。例如对字符串 “幼儿园地节目”进行切分时, MM 方法的切分结果是“幼儿园/地/节目”,而正确的切分结果应该是“幼儿/ 园地 / 节目”。
(2) 最大词长的长度比较难于确定,如果定得太长,则匹配时花的时间多,算法的时间复杂度明显提高。如果定得太短,则不能切分长度超过它的词,导致切分正确率降低。


2. 逆向最大匹配法(Reverse Maximum Matching Method,简称 RMM 方法)

这种方法原理与 MM 方法相同, 但扫描方向由右到左, 提出 RMM 方法的意义更在 于同 MM 方法进行结合运用,即双向匹配法对字符串进行更准确地切分。


3.双向匹配法

对同一个字符串分别采用 MM 法、RMM 法两种方法进行切分处理, 如果能够得到 相同的切分结果 , 则认为切分成功,否则认为有疑点,这时或者采用上下文信息,根据切分歧义规则库进行排歧。或者进行人工干预 , 选取一种切分为正确的切分。


4 . 基于联想-回溯算法(Association-Backtracking Word Segmentation, 简 称 AB 算法 )

山西大学采用 AB 算法实现了一个分词系统(刘开瑛 2000)。这个系统利用的汉语本身的知识 ( 如 构 词 法 、构 形 法 、句 法 等 ) 比较多 ,提出了一些歧义结构 的实用分词规则,并且采用切分标志法和有穷多次列举的方法来提高分词精度。
该系统由知识库和选词控制机制两大部分组成。


5 . 统计方法进行汉语切分

令 $S= C_1 C_2 ⋯C_{n - 1} C_n$ , 其中 $C_i (1≤i≤n)$是一个汉字字符。把一个汉语句子切分成词序列就是把这些汉字字符结合成词,比如:
$$
\begin{split}
S &= C_1 C_2 ⋯ C_{n - 1} C_n
&=( C_1 ⋯ C_{x_1} ) ( C_{x_1 + 1} ⋯ C_{x_2} ) ⋯ ( C_{x_{m - 1}+1} ⋯ C_{x_m}) \
&=W_1 W_2⋯W_m \
\end{split}\tag{2.1}$$
其中 $x_k$ 是第 $k$ 个词 $W_k$ 的最后字符的下标, $x_0 =0$, $x_m = n$,根据信道模型,分词的过程就是 求 在 给 定 输 入 字 串 $C$ 的 条 件 下 所 产 生 的 输 出 词 串 $W$ 的 概 率 $P ( W | C)$ 。
根 据 贝 叶 斯 公 式 , 下面的公式成立:


$P(W | C) = ( P ( W ) P( C | W) ) / P(C) \tag{2.2}$

因为 $C$ 是给定的字串, $P(C)$是一个确定的值,在计算中不起作用。$P(C|W)$是在给定词串的情况下字串出现的概率 , 可以认为是 $1$。



$P(W | C) ≈ P(W) \tag{2.3}$



因此 , 基于统计的词切分过程,可以认为是寻找具有最大概率值的词串过程。

汉语切分歧义及其处理

  • 交 集 型 歧 义

如 果 字 串 $a b c$ 既 可 切 分 为 $a b/ c$ , 又 可 切 分 为 $a/ b c$ 。 其 中$ a $, $a b$ , $c$ 和 $b c$ 是词。

  • 组合型歧义

若 $ab$ 为词,而 $a$ 和 $b$ 在句子中又可分别单独成词。

  • 混合型歧义

由交集型歧义和组合型歧义自身嵌套或两者交 叉组合而 产生的歧 义 (侯敏,孙建军,陈肇雄 1995)。

  • 处理方法

(1) 规则方法
主要利用歧义字串、前趋字串和后继字串的句法、语义、语用三个方面的信息来消歧。
(2) 统计方法
方法一: 孙茂松、黄昌宁等提出了一种利用句内相邻字之间的互信息及 t-测试差这 两个统计量解决汉语自动分词中交集型歧义字串的方法(孙茂松、黄昌宁等 1997)。
方法二: 刘开瑛提出根据链长和独立成词能力频次库结合的统计方法解决交集型歧义字串的方法(刘开瑛 2000) 。
方法三: 直接利用上文统计方法进行切分和歧义消歧一体化处理策略。
(3) 规则与统计结合的方法:把前面两种方法结合。

未登录词的处理

未登录词: 词典中没有登录过的人名、地名、机构名、译名、新词语等(冯志伟 2001)。
当采用匹配的方法来切词时 , 由于词典中没有登录这些词 , 会引起自动切词的困难。一个 开放的系统必须能够识别未登录词,才有可能提高分词系统的正确率。

汉语分词的难点

  • 未登录词识别
  • 离合词
  • 语素字

2. 屈折语的词法分析

根据一定的词法规则对源句中的每个单词进行分析处理 , 得到每个变形单词的原形词和变化的词法属性 , 或得到它的词根 , 由此获得该单词的词法属性 , 也就 是分析单词的构成特点。


词法分析要识别以下几种变化 :


(1) 屈折变化: 即由于单词在句子中所起的语法作用的不同而发生的词的形态变化,而单词的词性基本不变的现象,
如 take, took, takes。识别这种变化是词法分析的最基本的任务。


(2) 派生变化: 即一个单词从另外一个不同类单词或词干衍生过来,
如 morphological<—morphology,英语中派生变化主要通过加前缀或后缀的形式构成; 在 其他语言中 , 如德语和俄语中 , 同时还伴有音的变化。


(3) 复合变化: 两个或更多个单词以一定的方式组合成一个新的单词。这种变化形式比较灵活 , 因此也给机器翻译带来更多的问题。

方法

  • 描述性的词法分析

实现形式: 为每一个单词及其各种变形词都设一个词典的入口, 词法分析过程根据词典的索引和搜索算法 , 查询词典 , 寻找该单词所存储的信息,从而得到该单词的语法和语义属性。


特点: 实际上相当于一个字典检索过程, 在词汇量较小情况下, 分析非常简单, 结果可靠。


缺点: 当词汇量增大时, 要为每个字典设立一个入口, 不但所需要的空间大, 而且耗费时间也多。

  • 过程性的词法分析

为每一个原形单词及其变形的单词共享一个入口。
因为屈折语的词的变形是一个有规律的独立过程 , 可以单独处理。根据词的变形规律 ,对当前词进行分析处理 , 根据变形特征和它的原形词在字典中的属性得到它的语法属性和语义信息。


缺点 :分析程序本身与具体的自然语言的词缀形式及词法特 征密切相关 , 使算法不易修改和维护,并且不易扩充到其他语种 ;
程序中的比较次数与语言形态变化的丰富与否有关 , 对词形变化丰富的语言,要有上千条比较语句才能处理完所有的词形变化 , 词法分析的效率很低。

  • 基于规则的词法分析

基本思想是把词的构成形式分为两个层次:表层形式和深层形式。
表层形式是指单词在句子中出现的形式,深层形式是指单词的原形。
词法分析就是根据这些规则寻找单词的表层形式和深层形式之间的映射。
对于英语 , 基于规则的词法分析首先要建立动词、形容 词、副词和名词的规则变化的规则和不规则变化表。


词法分析算法 :
(1) 输入一个词。
(2) 查看词典是否有该词,如果词典中有该词,则得到该词及其属性。转向(5)。 如果词典中未有该词,则查找 RuleBase。
(3) 如果 RuleBase 中存有该词的变形, 则根据相应的变形规则,得到该词的原形及其属性。转向(5)。如果 RuleBase 中未存有该词的变形,则查找 NonRuleBase。
(4) 如果 NonRuleBase 中存有该词的变形,则根据词的不规则变化得到该词的原形 及其属性。转向(5)。如果 NonRuleBase 中未存有该词的变形,则该词是未登录词,转入未登录词处理模块。
(5) 结束。


说明: 未登录词处理模块包括合成词、序数词、货币、百分数、年代、人名、地名等的识别和处理。


基于规则词法分析优点: 程序的可移植性好, 分析效率高; 在此基础上, 出现了各种通用的或针对特定语言的词法分析方法。

词法分析的意义

  1. 屈折语词形变化丰富。如爱斯基摩语几乎所有词都变形。

  2. 减少词典入口词数量 , 减少信息重复。

  3. 可 以 识 别 词 法 范 畴 信 息 , 如 : 人 称 、数 、时 态 。

  4. 识别生词的功能。规则或解决——如 : 多词的组合。

  5. 在一定程度上解决歧义。

    程度

一个分析系统到底分析到何种程度取决于自然语言处理系统的深度。如果不解决未定义词 , 分析到词干层 , 解决未定义词 , 要分析到词根层。