语法推理与语言边界识别:创新方法与实践应用
1. 观察表在语言学习中的应用与特点
观察表是计算确定性有限状态自动机的经典技术。其行和列分别由目标语言元素的(潜在)前缀和后缀索引,每个条目显示相应的前缀和后缀组合是否构成语言的一个元素。每一行对应一个状态,若发现两行条目相同,则将它们视为同一状态。若一行的索引是通过在另一行索引尾部添加输入符号得到的,则可推断出相应的转换规则。
这种技术已在多种算法中得到扩展,用于学习比确定性有限状态自动机更复杂的结构,如上下文无关文法、正则树语言,甚至是非上下文无关的多维树语言。近期研究表明,通过使用观察表,可从字符串数据中学习上下文无关语言的一个丰富子类,它们和某些算法一样,使用子结构作为行索引,其上下文作为列索引。
下面是不同语言类别的观察表比较:
| 目标语言 | 正则语言 | 同余上下文无关语言 | 具有 fkp 的多上下文无关语言 |
| — | — | — | — |
| 行 | 状态 | 非终结符 | 非终结符 |
| 行索引 | 前缀 | 子字符串 | 多字 |
| 列索引 | 后缀 | 上下文 | 多上下文 |
| 行之间的关键关系 | 等价 | 等价 | 包含 |
与先前的算法相比,某些算法的一个重要区别在于,它能找到具有可比条目的两行之间的不对称关系,而经典技术则合并具有相同条目的两行。通过找到双向的包含关系,具有相同条目的两行最终会被识别。这种泛化使得算法能够学习像 ${ a^m b^n c^m d^n | 1 \leq m \leq n }$ 这样的复杂语言。
2. 观察表的一致性与算法特性
标准的学
超级会员免费看
订阅专栏 解锁全文
2006

被折叠的 条评论
为什么被折叠?



