美文网首页
经典的语言模型:N-gram

经典的语言模型:N-gram

作者: 一心一意弄算法 | 来源:发表于2018-11-29 14:52 被阅读53次

语言模型

一个语言模型通常构建为字符串的S的概率分布P(s)。比如,每个人100句话中平均大约有一句“你好”,那么“你好”这句话的概率大致为p= 0.01,像“野猪会做饭烧菜”,基本没人会说,则可以认为其概率为0。语言模型中的句子和语法无关,只和出现的可能性相关。
假设构成一个句子S = w1w2w3....wn。其概率计算公式可以表示为:
p(s) = p(w1)p(w2|w1)p(w3|w1w2).....p(wl|w1...w_{l-1}),随着句子的增长,计算难度是呈指数型增长的。
一个比较实际的做法是只考虑当前词只和前n个词相关,其余无关。这种语言模型称之为n-gram。一般n=2,3应用的比较多。

以二元文法为例:2-gram

我写了一本书,分词后为:我 写了 一本 书。因为开头和结尾没有,则会为句子添加<BOS>,<EOS>,分别代表开始和结束。
即这句话的概率p=p(我|BOS)*p(写了|我)*p(一本|写了)*p(书|写了)*P(EOS|书)

如何确定p(我|BOS)的值呢?
首先构建语言模型的数据为训练数据。假设通过统计得到 "BOS 我” = 5次
“BOS 你” = 3次 ,“BOS 他” = 4次,,则p(我|BOS)= 5/(5+3+4) = 5/12 ,其他同理,最终可以得出这句话的概率。 显然,语言中肯定存在不在模型中的词(未登录词,新词等等)。比如心来的句子p(开始|BOS) = 0。 那么这个以“开始”开头的句子概率为0,显然不够合理。

数据平滑

平滑技术就是用来解决这类概率为0的情况。

加法平滑技术

在上述问题中,字面理解,就是默认给每个词组+1,即p(我|BOS)= 5+1/{(5+3+4)+3} =6/ 15。p(开始|BOS) = (0+1)/{(5+3+4)+3 +1} = 1/16。 概率为0的问题也得到了有效的解决。

古德图零估计法

基本思路:对于任何一个出现r次的n元语法,都假设它出出现了r^*次。
r^* = (r+1)*\frac{n_{r+1}}{n_r}
其中,n_r为出现r次的n元语法个数,n_{r+1}同理。
可以看出,这个估计法不能直接应用于n_r = 0 的情况。

Kaza平滑技术

待定

模型评估

评估一个模型的好坏,就是看这个模型在测试数据(实际数据)上的表现情况。准确率,回归率等等。而评价一个语言模型常用的方法有测试数据的概率,或交叉熵,困惑度等等

语言模型设计的任务就是寻找最接近真实语言的模型。所以,采用用交叉熵或困惑度来评估模型,熵值越小,表示模型越接近真实语言。
交叉熵公式为:
H(L,q) = -\lim_{n ->\infty}\frac{1}{n}\sum_n^ip(x_i)logq(x_i)
首先p(x_i)是真实词x_i的概率,这个值无法获取。但可以确定的是,它是一个定值。
所以H(L,q)\approx-\frac{1}{W}logp(T),p(T)的是文本T的概率,W是文本T词的个数 。
加个2的次幂其实就是困惑度了。所以一般用困惑度来代替交叉熵来评估语言模型。
困惑度:PP = 2^{-\frac{1}{W}logp(T)}

相关文章

  • 词向量原理

    了解词向量要从语言模型说起,语言模型其实就是计算任意一个句子的概率。 经典的语言模型是n-gram模型,该模型假设...

  • n-gram模型创建与分析

    n-gram模型:在自然语言里有一个模型叫做n-gram,表示文字或语言中的n个连续的单词组成序列。在进行自然语言...

  • 经典的语言模型:N-gram

    语言模型 一个语言模型通常构建为字符串的S的概率分布P(s)。比如,每个人100句话中平均大约有一句“你好”,那么...

  • 自然语言处理中的N-Gram模型详解

    1.自然语言处理中的N-Gram模型详解

  • N-gram

    N-gram模型是一种语言模型(Language Model,LM),语言模型是一个基于概率的判别模型,它的输入是...

  • Word2vec

    预备知识:LR、贝叶斯公式、赫夫曼编码、统计语言模型、n-gram模型、神经概率语言模型、词向量、词袋模型、sof...

  • 中文NLP笔记:8. 基于LSTM的文本分类

    序列模型 语言模型 N-gram 前面的词袋模型(Bag-of-Words,BoW),没有考虑每个词的顺序 有...

  • n-gram模型

    n-gram模型 N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑...

  • 学习笔记-简单概念记录

    语言模型:衡量一句话是句子的概率假设有句子,根据语言模型计算s的概率为通常还使用n-gram语言模型计算句子概率 ...

  • n-gram语言模型

    一、StatisticalLanguageModel 在自然语言处理中的一个基本问题:如何计算一段文本序列在某种语...

网友评论

      本文标题:经典的语言模型:N-gram

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