N-gram

N-gram

u  基础概念

-------------------------------------------------

条件概率的基本定理:

设A,B 是两个事件,且A不是不可能事件,则称

为在事件A发生的条件下,事件B发生的条件概率

-------------------------------------------------

P(W) = P(w1, w2, w3,...wn)

P(W) =  N-gram  = LM

P(W)=P(w1,w2,w3,…wn) = P(w1)P(w2|w1)P(w3|w1,w2)…P(wn|

w1…wn-1)

P(wn|w1,...wn-1) = C(w1,w2,...wn)/C(w1,w2,...wn-1)

故ngram只是一阶马尔科夫链

不足:

1.统计时需要计算大量的语句的概率,计算量随着n的增加爆炸性增长

2.数据稀疏,不可能有足够多的语句来统计概率

引入马尔科夫假设:假设要估算的状态只和其前i-1个状态有关

故:P(wn|w1,...wn) ≈P(wn|wn-i+1,...wn-1)

采用最大似然估计(MLE)来计算概率

涉及到一系列的打折平滑算法

P(wn|wn-i+1,...wn-1) = C(wn-i+1,...wn)/ C(wn-i+1,...wn-1)

u  基于SRILM的LM的概率计算方式

P(word1, word2, word3)

# if has (word3| word1, word2){

#     returnP(word3| word1, word2);

# }else if has (word2| word1){

#     returnbackOff(word2| word1) * P(word3| word2);

# }else{

#    return P(word3| word2);

# }

# if has (word2| word1){

#    return P(word2| word1);

# }else{

#    return backOff(word1) * P(word2); #Make sure OOV change to <unk>

# }

u  基于SRILM的LM的PPL计算方式

ngram -ppl TESTSET.seg-order 3 -lm LM.ARPA

--------------------------------------------------------

file TESTSET.seg: 2000 sentences, 52388 words, 249 OOVs

0 zeroprobs, logprob= -105980 ppl= 90.6875 ppl1= 107.805

TESTSET.seg       测试集的分词文件

LM.ARPA           待评估的语言模型

--------------------------------------------------------

ppl=10^{-{logP(T)}/{Sen+Word}}

ppl1=10^{-{logP(T)}/Word}

时间: 2024-10-23 05:19:30

N-gram的相关文章

Derive Modified Gram Schmidt QR Decomposition Algorithm from Gram Schmidt Orthogonalisation (part 2)

All rights reserved. Please don't share this article without notifying me. Email address: [email protected] From eq. 10 in part 1 we can find the Classical Gram Schmidt Algorithm, which is numerically unstable or sensitive to perturbation: Q=zeros((m

Gram Shimidt QR Factorization Matlab version

function [Q,R] = gram_schmidt_qr(A) % Formation: A = QR % The implementation of QR Factorization(classical Gram-Schmidt method) % Q is orthonormal basis for R(A) % R is an upper-triangular matrix with positive diagonal entries. % Author: Zhenlin Du(J

【统计学习】随机梯度下降法求解感知机模型

1. 感知机学习模型 感知机是一个二分类的线性分类问题,求解是使误分类点到超平面距离总和的损失函数最小化问题.采用的是随机梯度下降法,首先任意选取一个超平面w0和b0,然后用梯度下降法不断地极小化目标损失函数,极小化过程中不是一次使所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降.假设误分类点集合M是固定的,那么损失函数L(w,b)的梯度: 随机选取一个误分类点,对w和b进行更新: 其中n是步长,又称为学习率(learning rate),这样通过迭代可以使损失函数L(w,b)不

重学STM32---(七) FSMC+LCD

关于FSMC+LCD第一次学习完时候,自己也还是对这个不清不白,时而清楚,时而糊涂.这一次再次学习的话,不能在这样了,仔仔细细把STM32参考手册,原子的LCD实验看了一遍,又在网上找了好些关于FSMC+LCD的资料,终于彻底明白了,,,当然,叫我完全一个人独立的把这个LCD显示实验程序写出来还是不可能的,C语言还是有待提高,实战还是太少,看到别人写的代码,有些细节根本一点都想不到,更何况让自己去写.... 收集的资料: LCD有如下控制线: CS:Chip Select 片选,低电平有效 RS

一步一步跟我学习lucene(9)---lucene搜索之拼写检查和相似度查询提示(spellcheck)

suggest应用场景 用户的输入行为是不确定的,而我们在写程序的时候总是想让用户按照指定的内容或指定格式的内容进行搜索,这里就要进行人工干预用户输入的搜索条件了:我们在用百度谷歌等搜索引擎的时候经常会看到按键放下的时候直接会提示用户是否想搜索某些相关的内容,恰好lucene在开发的时候想到了这一点,lucene提供的suggest包正是用来解决上述问题的. suggest包联想词相关介绍 suggest包提供了lucene的自动补全或者拼写检查的支持: 拼写检查相关的类在org.apache.

[从零搭网站五]http网站Tomcat配置web.xml和server.xml

点击下面连接查看从零开始搭网站全系列 从零开始搭网站 上一章我们在CentOS下搭建了Tomcat,但是还是没有跑起来...那么这一章就把最后的配置给大家放上去. 有两种方式:一种是用 rm -f 给这两个文件删掉,再用vim建新的出来.另一种是vim编辑,输入:set nu 显示行号,再输入:1,最后一行的行号d 把全文删掉. 然后再复制粘贴我给你们的配置文件就行. web.xml  , 完全不用修改,直接复制就行了: <?xml version="1.0" encoding=

Learn Python 014: Funtions

def weight_converter(gram): total_weight = gram / 1000 return str(total_weight) + 'KG' the_weight = weight_converter(3000) print(the_weight)

文本数据的机器学习自动分类方法(转)

http://blog.csdn.net/jdbc/article/details/50586042 本文为第一部分,着重介绍文本预处理以及特征抽取的方法. 随着互联网技术的迅速发展与普及,如何对浩如烟海的数据进行分类.组织和管理,已经成为一个具有重要用途的研究课题.而在这些数据中,文本数据又是数量最大的一类."文本分类是指在给定分类体系下,根据文本内容自动确定文本类别的过程"(达观数据科技联合创始人,张健).文本分类有着广泛的应用场景,例如: 新闻网站包含大量报道文章,基于文章内容,

HDU2202--最大三角形(凸包,枚举)

Problem Description 老师在计算几何这门课上给Eddy布置了一道题目,题目是这样的:给定二维的平面上n个不同的点,要求在这些点里寻找三个点,使他们构成的三角形拥有的面积最大.Eddy对这道题目百思不得其解,想不通用什么方法来解决,因此他找到了聪明的你,请你帮他解决这个题目. Input 输入数据包含多组测试用例,每个测试用例的第一行包含一个整数n,表示一共有n个互不相同的点,接下来的n行每行包含2个整数xi,yi,表示平面上第i个点的x与y坐标.你可以认为:3 <= n <=

[读书笔记]机器学习:实用案例解析(7)

第7章  优化:密码破译 优化简介:最优点(optimum),优化(optimization) 本章研究的问题:构建一个简单的密码破译系统,把解密一串密文当做一个优化问题. 优化方法:网格搜索(grid search),主要问题是1.步长的选择:2.维度灾难(Curse of Dimensionality):问题规模过大 optim函数:比网格搜索更快,可以通过已经计算出的信息推断出下一步的方向,同时对所有变量一起优化.(根据书中后文,可能的原理是根据导数得出下一步的进行方向,因为该函数对于不可