自然语言形式语法与自动机文档格式.docx
《自然语言形式语法与自动机文档格式.docx》由会员分享,可在线阅读,更多相关《自然语言形式语法与自动机文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
定义3生成(generate)
语法G生成串s(s∈VT*),当且仅当,存在一个G的派生x0,...,xn,xn=s。
语法G生成的语言L(G)={s∈VT*|s由G生成}。
例4形式语法举例
(1)G1=<
,其中VT={a,b},VN={S,A,B},S=S,R如下:
1S→ABS,
2S→e(空串),
3AB→BA,
4BA→AB,
5A→a,
6B→b。
则G1如何生成串abba?
S⇒ABS⇒ABABS⇒ABAB⇒ABBA⇒ABbA⇒aBbA⇒abbA⇒abba。
不难发现L(G1)={s∈{a,b}*|s中a与b个数相等}。
(2)G1=<
,其中VT={P,f,c,x0,...,xn,∧,⌝,∀,(,)},VN={Form,Term,Con,Var},S=Form,R如下:
1Form→⌝Form
2Form→(Form∧Form)
3Form→∀VarForm
4Form→PTerm
5Term→Con
6Term→Var
7Term→fTerm
8Con→c
9Var→x0
……
9+nVar→xn
不难发现L(G1)=Form1st-order-logic({P,f,c})。
(3)一个“零”至“九十九”的汉语数字词的形式语法。
ZERO→零
DIG→一
DIG→二
……
DIG→九
TEN→十
DEC→TENDIG
S→ZERO
S→DIG
S→TEN
S→DEC
S→TENDIG
S→DECDIG
语法生成串的过程以及串的语法结构可以通过(有序)树形图清晰地表现出来。
树可以表现出:
句子成分的层及分组信息、语法类型信息和顺序信息。
例5根据例4(3),字符串“五十三”的树:
S
DEC
DIG
TEN
五
十
三
例6
一个Parser程序。
几个关于树的语法分析中经常用到的概念。
统御(dominance),直接统御;
属于(belongto),统制/命令(command),c-统制/命令(constituent-command);
先行(precedence)。
2.乔姆斯基层级(theChomskyHierarchy)
对所有形式语法进行的分类:
按照重写规则的限制由弱增强,或者说语法生成能力的由强减弱,分为Type0至Type3。
定义7Type0至Type3语法
设α,β,ψ是任意串,A,B是非终结符,x是终结符串。
Type0(recursiveenumerablegrammar,unrestrictedrewritingsystem):
由定义1所定义的语法。
Type1(contextsensitive):
每条规则都形如αAβ→αψβ,其中ψ≠e。
(或:
ψ→ω,ω不短于ψ。
)
Type2(contextfree):
每条规则都形如A→ψ。
Type3(regular,rightlinear,finitestategrammar):
每条规则都形如A→xB或A→x。
命题8几种语法间的包含关系
(1)Type3⊆Type2。
(2)不含空串的Type2⊆Type1(因为A→e不被Type1允许)。
(3)Type1⊆Type0。
例9
例4中,G1是Type0,Type2;
不是Type1;
不是Type3。
G1表面上不满足Type2的要求,但其规则可以重写为:
S→e,S→aB,S→bA,B→b,B→bS,A→a,A→aS,A→bAA,B→aBB,
因此是Type2。
G2是Type0,Type1,Type2;
IL(IntensionalLogic,byMontagueandGallion)是Type3。
3.自动机
自动机是一种理想化的数学计算装置。
在自然语言处理中,可以想象自动机可以用来检验符号串的合法性——将一个符号串输入给自动机,由自动机依据形式语法判定其是否合法。
如果合法,自动机给出结果“接受”,反之给出结果“拒绝”。
据判定规则和工作原理的不同,自动机根可分为多种。
不同种类的自动机与不同类型的形式语法存在对应关系。
3.1有限状态自动机
有限状态自动机可用于判定正则语言(Type3)。
定义10有限状态自动机
一个有限状态自动机是一个五元组<
K,∑,δ,q0,F>
。
其中,
K是有穷集,称状态集;
∑是有穷集,称字母表;
q0∈K,称初始状态;
F⊆K,称终止状态集;
∆⊆K×
∑×
K,称指令集(有穷)。
定义11有限状态自动机的指令
设M=<
K,∑,∆,q0,F>
是一个有限状态自动机,它的一个指令是一个三元组<
qi,x,qj>
∈∆。
其中,qi,qj∈K,x∈∑。
有限状态自动机由控制器、读取头和输入带构成。
输入带两端无限长,并被分成许多格子。
输入符号串从左向右记在格子中,每个格子一个符号。
没有符号的方格称空白方格,用符号“#”表示。
工作时,自动机处于初始状态q0,然后读取头读入第一个符号x,然后根据程序指令<
q0,x,qj>
(如果存在的话),进入一个新状态qj(允许q0=qj),然后读取头右移一格。
重复进行以上操作,直至自动机不再有可执行的程序指令。
此时,若读取头未读完字符串,则称自动机锁死,认为自动机拒绝符号串;
若读完字符串,且自动机所在的状态恰好是预先定义好的终止状态之一,则自动机接受符号串;
否则就拒绝符号串。
例12有限状态自动机
一个用于识别“零”至“九十九”的汉语数字词的有限自动机图式
q0
q1
二,...,九
q2
零,一
q3
q4
一,...,九
正则语言就是有限状态自动机语言。
正则语言由正则语法生成,用有限状态自动机识别。
正则语法的缺陷:
只能向右扩展。
英语(自然语言)不是正则语言。
例13例11自动机对应的形式语法(部分),有悖于直观
DIG→三
TEEN→十DIG
S→五TEEN
例14中,“五十三”其实是“五”+“十三”而非“五十”+“三”。
定理13抽吸定(引)理
如果L是一无穷有限状态自动机语言,其字母表是∑,那么存在串x,y,z∈∑*,使得y≠e且xynz∈L(对任意自然数n)。
例15
(1)IL:
Ytt……YttZt。
(2)此定理用于否证一个语言是有限状态自动机语言。
如{anbn|n≥0}。
3.2下推状态自动机(pushdownautomata)
下推自动机可用于判定上下文无关语言。
下推自动机有一个遵循“先进后出”原则的符号暂存器,称为栈。
定义15下推自动机
一个下推自动机是一个六元组<
K,∑,’,∆,q0,F>
,其中
∑是有穷集,称(对象语言)字母表;
’是有穷集,称栈字母表;
’*×
K×
’*。
一个下推自动机指令形如<
qi,a,A>
→<
qj,γ>
,其中qi,qj是状态,a是对象语言字母表中的符号,A是栈字母表(可以不同于对象语言的字母表)中的符号,γ是基于栈字母表的符号串。
当自动机在qi状态时,读取输入带子上的符号a,读取栈顶端的符号A,将A替换为γ并进入状态qj。
若γ=e,相当于将A抹去;
若A=e,相当于将γ加入栈。
下推自动机接受一个符号串,如果以下三个条件被同时满足:
(1)输入符号串被读取完;
(2)自动机处于最终状态;
(3)栈是空的。
例16一个接受{anbn|n≥0}的下推自动机
K={q0,q1},∑={a,b},’={A},初始状态q0,终止状态集{q0,q1},操作:
<
q0,a,e>
q0,A>
,
q0,b,A>
q1,e>
q1,b,A>
对应的语法(Type2):
S→aSb
S→e
上下文无关语言由上下文无关语法生成,可使用下推自动机进行识别。
一般认为,自然语言是一种上下文无关语言,因而可以用下推自动机来识别。
但某些语言中存在着“交叉对应”现象,是无法被上下文无关语法描述的。
因此,一些语言学家认为自然语言可能是一种介于上下文无关语言和上下文有关语言之间的语言,且多数情况下更接近于前者的语言。
3.3图灵机(Turingmachine)
图灵机用于识别递归可枚举语言。
定义17图灵机
一个图灵机是一个四元组<
K,∑,s,δ>
∑是有穷集,称字母表,#∈∑;
s∈K,称初始状态;
部分函数δ:
∑→K×
(∑∪{L,R}),L,R不属于∑。
图灵机由控制器、方格输入带和读写头构成。
图灵机从初始状态q0开始,读写头处于最左边的非空白符号上。
图灵机根据指令δ=<
qi,aj>
<
qk,X>
>
(<
)行事,即:
如果图灵机处于qi状态且读入符号aj,就进入状态qk(允许aj=qk),此时,若X是字母表中的一个符号al,则用al替换aj;
若X是L或R,则令读写头向左或向右移动一格。
被读取的符号可为#,因而图灵机的读写头原则上可到达带子的任一位置。
若图灵机不再有可执行的指令,则图灵机停机,图灵机接受符号串。
如果图灵机永不停机,则认为符号串被拒绝。
例18
(1)一个做a,b互换的图灵机,遇到右侧第一个#时停机。
K={q0,q1},∑={a,b,#},初始状态q0,操作:
q0,a>
q1,b>
q0,b>
q1,a>
q0,#>
q1,#>