NLP

自然语言处理——3.4 有限自动机在NLP中的应用

2018-10-02  本文已影响222人  SpareNoEfforts

英语单词拼写检查[Oflazer, 1996]

1. 编辑距离

X 为拼写错误的字符串,其长度为m,YX 对应的正确的单词(答案),其长度为n。则XY编辑距离ed(X[m], Y[n]) 定义为:从字符串X转换到Y 需要的插入、删除、替换和交换两个相邻的基本单位(字符)的最小个数。如:

ed ({\text{recog}}\underline {{\text{in}}} {\text{ze}}, {\text{recog}}\underline {{\text{in}}} {\text{ze}}) = 1
ed (\underline {\text{s}} {\text{ailn}}, \underline {\text{f}} {\text{ail}}\underline {\text{i}} {\text{n}}\underline {\text{g}} ) = 3

2. 拼写检查例子计算

假设Z = z_1 z_2 … z_p 为字母表A上的p 个字母构成的字符串,Z[j] 表示含有j (j \geqslant 1) 个字符的子串。X[m]为拼写错误的字符串,其长度为m,Y[n] 为与X串接近的字符串(一个候选),其长度为n。则给定两个串XY的编辑距离ed(X[m], Y[n]) 可以通过循环计算出从字符串X转换到Y 需要进行插入、删除、替换和交换两个相邻的字符操作的最少次数。

(1) 如果x_{i+1}= y_{j+1}(两个串的最后一个字母相同),则ed(X[i+1], Y[j+1]) = ed(X[i], Y[j]);

(2) 如果x_i = y_{j+1},并且x_{i+1} = y_j(最后两个字符需要交换位置),则ed(X[i+1], Y[j+1]) = 1+min\{ed(X[i-1], Y[j-1]), ed(X[i], Y[j+1]), ed(X[i+1], Y[j])\}

图示

(3) 其它情况下(x_{i+1} \ne y_{j+1}且(x_i \ne y_{j+1}或x_{i+1} \ne y_j))
ed(X[i+1], Y[j+1]) = 1+min\{ed(X[i], Y[j]), ed(X[i], Y[j+1]), ed(X[i+1], Y[j])\}
其中
ed(X[0], Y[j]) =j,(0 \leqslant j \leqslant n) (X长度为0)
ed(X[i], Y[0])=i, (0 \leqslant j \leqslant m), (Y长度为0)
ed(X[-1], Y[j])=ed(X[i], Y[-1])=max\{m,n\}, (边界约定)

图示

3. 拼写检查自动机构造

构造一个确定的有限状态机R
R = \{ Q,A,\delta ,{q_0},F\}
其中,Q 表示状态集;A 表示输入字符集;
\delta :Q \times A \to Q
q_0 \in Q 为起始状态;
F \subseteq Q 为终止状态集;

如果表示有限状态机R 接受的语言,字母构成的所有合法单词都是有限状态机中的一条路径。给定一个输入串,对其进行检查的过程就是在给定阈值t (t > 0) 的情况下,寻找那些与输入串的编辑距离小于t的路径。那么,一个字符串能够被R识别的条件是存在非空集合:
C = \{ Y[n]|Y[n] \in L and ed(X[m],Y[n]) \leqslant t\}

4. 拼写检查搜索树

5. 拼写检查阈值的解释

定义:cuted(X[m],Y[n]) = \mathop {\min }\limits_{l \leqslant i \leqslant u} \{ ed(X[i],Y[n])\}
其中,l = max(1, n - t), u = min(m, n + t)

注意:阈值t 有两个用途:确定截取X 的范围;限定编辑距离。

举例说明

有限自动机用于英语单词形态分析[Allen, 1995]

说明:在实际应用中,除了有限状态机以外,还常常使用有限状态转换机(finite
state transducer, FST)的概念。粗略地讲,有限状态转换机与有限自动机(或有限状态机)的区别在于:FST 在完成状态转移的同时产生一个输出,而FA (或FSM) 只实现状态转移,不产生任何输出。

一般地,具有相同的前缀或词根,词缀不同的单词可以共用一个有限状态转移机,共享其中的某些状态节点。如:tie, ties, trap, traps,try, tries, to, torch, torches, toss, tosses 等。

除了单词拼写检查、形态分析以外,有限状态自动机还广泛应用于词性标注、句法分析、短语识别、机器翻译和语音识别等很多方面。

上一篇下一篇

猜你喜欢

热点阅读