美文网首页NLP
自然语言处理——3.2 有限自动机与正则文法

自然语言处理——3.2 有限自动机与正则文法

作者: SpareNoEfforts | 来源:发表于2018-10-02 16:04 被阅读141次

    确定的有限自动机(definite automata, DFA)

    1. 定义

    确定的有限自动机 M 是一个五元组:
    M = (\Sigma ,Q,\delta ,{q_0},F)

    • \Sigma 是输入符号的有穷集合;
    • Q 是状态的有限集合;
    • {q_0} \in Q是初始状态;
    • F 是终止状态集合,F \subseteq Q
    • \deltaQ\Sigma 的直积Q×\SigmaQ (下一个状态) 的映射。它支配着有限状态控制的行为,有时也称为状态转移函数。

    2. DFA示意图


    处在状态
    为了明确起见,终止状态用双圈表示,起始状态用有“开始”标记的箭头表示。如:

    4. DFA 定义的语言

    如果一个句子x 使得有限自动机M\delta (q_0,a) = p,p \in F,那么,称句子xM 接受。
    M 定义的语言 T(M) 就是被 M 接受的句子的全集。即:
    T(M) = \{ x|\delta ({q_0},x) \in F\}

    • 例子:

      x = 110101M 接受。T(M)= {含偶数个0和偶数个1的链}

    不确定的有限自动机(non-definite automata, NFA)

    1. 定义

    不确定的有限自动机 M 是一个五元组:
    M = (\Sigma ,Q,\delta ,{q_0},F)

    • \Sigma 是输入符号的有穷集合;
    • Q 是状态的有限集合;
    • {q_0} \in Q是初始状态;
    • F 是终止状态集合,F \subseteq Q
    • \deltaQ\Sigma 的直积Q×\SigmaQ的幂集2^Q 的映射。

    DFA与NFA

    1. DFA与NFA的唯一区别

    NFADFA 的唯一区别是:在 NFA\delta(q, a) 是一个状态集合,而在 DFA\delta(q, a) 是一个状态。

    • 例子

      该自动机为不确定自动机;句子x =01011 可以被接受。

    1. DFA与NFA的关系

    L 是一个被 NFA 所接受的句子的集合,则存在一个 DFA它能够接受L

    正则文法与有限自动机的关系

    1. 正则文法 \to 自动机

    • 定理
      G = (V_N,V_T, P, S )是一个正则文法,则存在一个有限自动机M=(\Sigma ,Q,\delta , q_0, F),使得:T(M) = L(G)

    • G 构造M 的一般步骤:
      (1) 令\Sigma =V_T, Q=V_N \cup { T },q_0=S,其中, T 是一个新增加的非终结符。
      (2) 如果在P 中有产生式S \to \varepsilon ,则F={S, T},否则F={T}
      (3) 如果在P 中有产生式B \to aB \in V_Na \in V_T,则T \in \delta(B, a)
      (4) 如果在P 中有产生式B \to aC,B, C \in V_N,a \in V_T, 则 C \in \delta(B, a)
      (5) 对于每一个a \in V_T,有\delta(T, a) = \emptyset

    1. 自动机 \to 正则文法

    • 定理
      M=(\Sigma ,Q,\delta , q_0, F)是一有限自动机,则存在正则文法G = (V_N,V_T, P, S ),使L(G)=T(M)

    • M 构造G 的一般步骤:
      (1) 令V_N = Q,V_T = \Sigma,S =q_0
      (2) 如果C \in \delta(B, a),B, C \in Q,a \in \Sigma,则在P 中有产生式B \to aC
      (3) 如果C \in \delta(B, a),C \in F,则在P中有产生式B \to a

    相关文章

      网友评论

        本文标题:自然语言处理——3.2 有限自动机与正则文法

        本文链接:https://www.haomeiwen.com/subject/iabooftx.html