zoukankan      html  css  js  c++  java
  • 自然语言处理4-3:语言模型之n-gram模型

    n-gram模型

    unigram模型:假设每个单词的出现概率和前面的单词无关,写成表达式就是 :

    $$P(omega _{1},omega _{2},...,omega _{n}) = P(omega _{1})P(omega _{2} )P(omega _{3})...P(omega _{n})$$

    bigram模型:假设每个单词的出现概率只和前面的一个单词有关,写成表达式就是:

    $$P(omega _{1},omega _{2},...,omega _{n}) = P(omega _{1})P(omega _{2} |omega _{1})P(omega _{3}|omega _{2})...P(omega _{n}|omega _{n-1})$$

    bigram模型和前面提到的1st order Markov Assumption是一样的哦。

    tri-gram模型,假设每个单词的出现只和前面的两个单词有关,和前面的2nd Markov Assumption是一样的。

    当每个单词只和前面的n-1个单词有关的时候,叫做n-gram模型,但是一般到tri-gram模型就够用了。

    计算语言模型中的概率

    计算的方法很简单,就是数个数.利用如下的公式:

    $$P(omega _{n}|omega _{1},...,omega _{n-1}) = frac{C(omega _{1},...,omega {n})}{C(omega _{1},...,omega _{n-1})} $$

    其中$C(omega _{i})表示omega_{i}的出现次数惹$

    下面举一个例子

    假设我们有语料库

    我很喜欢自然语言处理
    我很喜欢喝奶茶
    我很喜欢编程
    我很喜欢喝咖啡
    我很希望斜视快点好

    那么,P(我很喜欢自然语言处理) = P(我,很,喜欢,自然语言处理)/ P(我,很,喜欢)= 1/5

  • 相关阅读:
    BZOJ 2733 永无乡
    【重温基础】13.迭代器和生成器
    【重温基础】13.迭代器和生成器
    【重温基础】12.使用对象
    【重温基础】12.使用对象
    【重温基础】11.Map和Set对象
    【重温基础】11.Map和Set对象
    【重温基础】10.数组
    【重温基础】10.数组
    【重温基础】9.正则表达式
  • 原文地址:https://www.cnblogs.com/loubin/p/13720107.html
Copyright © 2011-2022 走看看