第十二篇:形式语言理论与有限状态自动机

Posted flying_1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十二篇:形式语言理论与有限状态自动机相关的知识,希望对你有一定的参考价值。

目录

我们到目前已经介绍了什么?

形式语言理论

为什么要去做这个事情 ?

例子

超越会员问题……

大纲

常规语言/正则语言

例子重现

正则语言的特性

有限状态接受器

样例

派生形态学

形态学 FSA

词形态学 FSA

加权FSA(WFSA)

WFSA最短路径

有限状态传感器FST

词形态学 FSA

屈折形态学的 FST

自然语言有规律吗?是正则化的嘛?

有时候

非常规语言

中心嵌入

总结


我们到目前已经介绍了什么?

• 处理单词序列的方法:
    ‣ N-gram 语言模型
    ‣ 隐马尔可夫模型
    ‣ 循环神经网络
• 这些模型没有任何基本的语言学

形式语言理论

• 研究语言类别及其计算特性
    ‣ 正则化语言/常规语言(本次主要内容)
    ‣ 上下文无关语言(下一篇)

• 语言 = 字符串集
• 字符串 = 来自有限字母表(又名词汇表)的元素序列

为什么要去做这个事情 ?

• 主要目标是解决会员问题
    ‣ 字符串是否为语言
• 如何? 通过定义它的语法

例子

• 以 0 开头并以 1 结尾的二进制字符串
    ‣ { 01, 001, 011, 0001, ... } ✓
    ‣ ( 1, 0, 00, 11, 100, ... } ✗
• 来自字母 {a, b} 的偶数序列
    ‣ { aa, ab, ba, bb, aaaa, ... } ✓
    ‣ { aaa, aba, bbb, ... } ✗
• 以wh-word 开头并以? 结尾的英语句子
    ‣ { what ?, where my pants ?, … } ✓
    ‣ { hello how are you?, why is the dog so cute! }

超越会员问题……

• 会员
    ‣ 字符串是语言的一部分吗? 是/否
• 评分
    ‣ 给会员打分
    ‣ “字符串的可接受程度如何?” (语言模型!)
• 传感
    ‣ 将一个字符串“翻译”成另一个(词干!)

大纲

• 常规语言
• 有限状态接受器
• 有限状态传感器

常规语言/正则语言

• 最简单的语言类别
• 任何正则表达式都是正则语言
‣ 描述哪些字符串是语言的一部分(例如‘0(0|1)*1’)

• 正式地,正则表达式包括以下操作/定义:
    ‣ 从字母表中绘制的符号,Σ
    ‣ 空串,ε
    ‣ 两个正则表达式的串联,RS
    ‣ 两个正则表达式的交替,R|S
    ‣ Kleene 星,用于 0 次或多次重复,R*
    ‣ 括号 () 定义操作范围

例子重现

• 以 0 开头并以 1 结尾的二进制字符串
‣ 0(0|1)*1
• 来自字母 {a, b} 的偶数序列
‣ ((aa)|(ab)|(ba)|(bb))*
• 以wh-word 开头并以? 结尾的英语句子。
‣ ((what)|(where)|(why)|(which)|(whose)|(whom)) Σ* ?

正则语言的特性

• 闭包:如果我们采用常规语言 L1 和 L2 并将它们合并,生成的语言是否为常规语言?
• RL 在以下情况下关闭:
    ‣ 连接和并集
    ‣ 交集:在 L1 和 L2 中均有效的字符串
    ‣ 否定:不在 L 中的字符串
• 用途广泛! 可以为语言的不同属性设置 RL,并将它们一起使用


有限状态接受器

• 正则表达式定义了一种正则语言
• 但它没有给出一个算法来检查一个字符串是否属于该语言
• 有限状态接受器 (FSA) 描述了成员资格检查所涉及的计算

• FSA 包括:
    ‣ 输入符号字母表,Σ
    ‣ 状态集,Q
    ‣ 起始状态,q0 ∈ Q
    ‣ 终态,F ⊆ Q
    ‣ 转移函数:符号和状态 → 下一状态
• 如果从 q0 到最终状态的路径与每个符号匹配的转换,则接受字符串
    ‣ Djisktra 的最短路径算法,O(V log V + E)

样例

• 输入字母 {a, b}
• 状态 {q0, q1}
• 开始、结束状态 q0, {q1}
• 转换函数{(q0,a) → q0, (q0, b) → q1, (q1,b) → q1}

• 此FSA 定义的正则表达式?a*bb*

派生形态学

• 使用词缀将单词更改为另一个语法类别

• grace → graceful → gracefully
• grace → disgrace → disgracefully
• allure → alluring → alluringly
• allure → *allureful
• allure → *disallure

形态学 FSA

• 相当一致的流程
    ‣ 想要接受有效形式 (grace → graceful)
    ‣ 拒绝无效的 (allure → *allureful)
    ‣ 概括为其他词,例如,行为像grace或allure的名词

词形态学 FSA

加权FSA(WFSA)

• 有些词比其他词更合理
    ‣ 鱼腥味 vs. 不光彩
    ‣ 音乐与写意
• 可接受性分级衡量标准——加权 FSA
更改以下内容:
    ‣ 起始状态权重函数,λ:Q → ℝ
    ‣ 最终状态权重函数,ρ: Q → ℝ
    ‣ 转移函数, δ: (Q, Σ, Q) → ℝ

WFSA最短路径

• 路径的总分 π = t1, . . . , tN

    ‣ t 是一条边

• 使用最短路径算法以最低成本查找最短路径π

    ‣ O(V log V + E), 和之前一样


有限状态传感器FST

• 通常不想只接受字符串或带分数的字符串
    ‣ 想将它们翻译成另一个字符串

词形态学 FSA

有限状态接受器:allure + ing = allureing
有限状态转换器:allure + ing = alluring

• FST 向 FSA 添加字符串输出功能
    ‣ 包括输出字母表
    ‣ 转换现在采用输入符号并发出输出符号 (Q, Σ, Σ, Q)
• 可加权 = WFST
    ‣ 转移时评分
• 例如,将距离编辑为 WFST
    ‣ 将一个字符串转换为另一个字符串的距离

四条规则,举第一个说明,从q状态出发,a变成a,再到终止状态q,距离是0;

举第三个说明,从q状态出发,a变成空,再到终止状态q,距离是0;

其实这四条规则就对应着编辑距离中的,match,update,delete和insert

屈折形态学的 FST

• 西班牙语中的动词变形必须与主语和数字匹配
• 形态分析的目标:
    • canto → cantar+VERB+present+1P+singular

如图,中间列是西班牙语,最右边是英语

看下图,抛开语言本身,结合我们刚刚说的四条规则,你会得出什么?

 三条链对应着三条句子

自然语言有规律吗?是正则化的嘛?

有时候

举例:
the mouse that ran.
the cat that killed the mouse that ran.

the lion that bullied the hyena that bit the dog that chased
the cat that killed the mouse that ran

• 长度无界,但结构是局部的
    ‣(Det Noun Prep Verb)*  ---这几个对应着限定词,名词,介词,动词
    ‣ 可以用FSA描述

非常规语言

• 带平衡括号的算术表达式
    ‣ (a + (b x (c / d)))
    ‣ 可以有任意多个左括号
    ‣ 需要记住多少个左括号,才能产生相同数目的右括号
    ‣ 不能在有限数量的状态下完成

• a^{n}b^{n}

中心嵌入

• 关系从句的中心嵌入
    ‣ The cat loves Mozart
    ‣ The cat the dog chased loves Mozart
    ‣ The cat the dog the rat bit chased loves Mozart
    ‣ The cat the dog the rat the elephant admired bit chased loves Mozart
• 需要记住 n 个主语名词,以确保后面跟着 n 个动词(并且他们同意等)
• 需要(至少)上下文无关语法(下一篇!)

总结

• 语言的概念
• 常规语言
• 有限状态自动机:接收器、传感器
• 加权变体
• 应用编辑距离、形态学

今天内容就到这里了,感谢大家观看!有问题随时评论交流!

以上是关于第十二篇:形式语言理论与有限状态自动机的主要内容,如果未能解决你的问题,请参考以下文章

第十二篇:如何理解 Fiber 架构的迭代动机与设计思想?

第十二篇 JavaScript(简称JS) 实现显示与隐藏

Python之路第十二篇:Python面向对象高级

《数学之美》第十二章:有限状态机和动态规划

形式语言与自动机

Python自动化开发