zoukankan      html  css  js  c++  java
  • Traditional Language Model

    Traditional Language Model通常用于回答下述问题:

    How likely is a string of English words good English ?

    (p_{LM}()the house is small()ge p_{LM}() small the is house())
    (p_{LM}()I am going home()ge p_{LM}()I am going house())

    生成该句子 (W=w_1, w_2, w_3, w_4...w_n) 的概率为(p(W)) 如何计算?

    我们可以使用 chain rule 将该句子分解(decompose):

    [egin{split}p(w_1, w_2, w_3...w_n) &=p(w_1) * p(w_2|w_1)*p(w_3|w_1,w_2)cdots* p(w_n| w_1, w_2cdots w_{n-1})end{split} ]

    我们发现 (p(w_n| w_1, w_2cdots w_{n-1}))需要很多前置项(w_1, w_2cdots w_{n-1}),在数据集中很难计算,十分稀疏(sparse)。

    Markov 假设

    • 当前词只和前面的词相关;
    • 只和前面的(k)个单词相关

    这样表示就相对简便。

    uni-gram model

    [P(w_i|w_0cdots w_{i−1})approx P(w_i) ]

    Bi-gram model

    [P(w_i|w_0cdots w_{i−1})approx P(w_i|w_{i-1}) ]

    Tri-gram model

    [P(w_i|w_0cdots w_{i−1})approx P(w_i|w_{i-1},w_{i-2}) ]

    例如,2-gram的 language model:

    [p(w_1, w_2, w_3,cdots w_n)approx p(w_1) * p(w_2|w_1) * p(w_3|w_2) cdots p(w_n|w_{n-1}) ]

    n-gram probability estimation

    2-gram概率估计

    [p(w_2|w_1)=frac{count(w_1,w_2)}{count(w_1)} ]

    所以我们只需要找一个大词库,然后统计(w_1)出现的次数和(w_1,w_2)共同出现的次数,即可。

    Linear interpolation

    • Bigram: (P(w_i∣w_{i−1})=lambda_2 P(w_i∣w_{i−1})+ (1−λ_2) P(w_i))

    • Unigram: (P(w_i)=lambda_1 P(w_i)+(1-lambda_1)frac{1}{N})

  • 相关阅读:
    Installing Oracle Database 12c Release 2(12.2) RAC on RHEL7.3 in Silent Mode
    周四测试
    假期生活
    《人月神话》阅读笔记三
    《人月神话》阅读笔记二
    《人月神话》阅读笔记一
    软件进度7
    软件进度6
    软件进度5
    软件进度4
  • 原文地址:https://www.cnblogs.com/ZJUT-jiangnan/p/5829609.html
Copyright © 2011-2022 走看看