zoukankan      html  css  js  c++  java
  • 001-语言模型

    语言模型:

    我 今天 下午 打 篮球

    p(S)=p(w1,w2,w3,w4,w5,…,wn)
    =p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)

    .

    p(S)被称为语言模型,即用来计算一个句子概率的模型

    p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)称为条件概率,在w1发生的情况下,发生w2的概率,在w1,w2都发生的情况下w3发生的概率。

    每一个词的出现都不是独立的,都跟之前的词有关系。

    再将每个概率乘起来,就是这一句话会出现的概率。

     

     

    语言模型存在的问题:

     

    如果有一段很长的话,那么这个概率将会很小

    比如有一句话:我今天要学习深度学习算法,学习的内容是自然语言处理。

    wi是最后一个词,处理

    那么处理这个词在整句话中出现的概率,就是整句话的概率除以这句话没有出现处理的概率。

    这个缺点就是计算量很大,会导致过于稀疏,参数空间会很大。

     

    解决思路:

    假设下一个词的出现依赖它前面的一个词:
    p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)
    =p(w1)p(w2|w1)p(w3|w2)...p(wn|wn-1)

     

    假设下一个词的出现依赖它前面的两个词:
    p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)
    =p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|wn-1,wn-2)

    这么做的目的不是为了单纯的减少计算量和减少参数空间。

    在通常的情况下,一个词的出现也就是跟前2~3个词有很大的关系。

    这种模型称作 N-gram模型

    例如下面的例子:

    p(I want chinesefood)=

    P(I)

    ×P(want|I)

    ×P(chinese|want)

    ×P(food|chinese)

     I后面接want的概率就是827/2533=0.33

    参数个数:

    N表示词典中有多少个词

    n表示关联前几个词

    词典中自身有个组合,

    那么参数的个数:

    一般n=2,n=3,n=4就可以了

     

  • 相关阅读:
    Js获取当前日期时间及其它操作
    OpenResty
    Nginx开发从入门到精通
    TengineWeb服务器项目
    VS2012的SVN插件VISUALSVN
    VS项目如何运用svn的忽略列表
    SVN 中trunk、branches、tags都什么意思?
    SVN服务器搭建和使用(一)
    逗号分隔字符串转换为一张表--解决查询in(逗号分隔字符串)出错问题
    判断函数是否存在、判断函数是否存在并执行
  • 原文地址:https://www.cnblogs.com/Mjerry/p/9818934.html
Copyright © 2011-2022 走看看