统计语言模型产生的初衷是为了解决语音识别问题。在语音识别中,计算机需要知道一个文字序列 是否能构成一个大家理解而且有意义的句子,然后显示或者打印给使用者。贾里尼克认为:一个句子是否合理,就看他的可能性大小如何。至于可能性就用概率来衡量。
这个说法更普遍的描述是:
句子S表示某一个有意义的句子,由一连串特性顺序排列的词w1,w2,...,wn组成,这里n是句子的长度。
句子S发生的概率:
此处,如何估计条件概率,因为有了大量机读文本,也就是专业人士讲的语料库,只要数一数在文本中出现的次数,然后根据大数定理,只要统计量足够,相对频度就等于概率。大数定理的要求是有足够的观测值。
问题:如果上面公式中的这对词在语料库中没出现,或只出现一两次,估计概率如何解决?
高阶语言模型:
PS:这里的错别字---“因此再怎么提高模型的结束”,应该是阶数!!另外,在增加数据量同时,仍会遇到零概率或者统计量不足的问题,如果将其壁纸计算概率,大部分条件概率依然是0,这种模型我们称之为“不平滑”。在实际应用中,统计语言模型的零概率问题是无法回避的,必须解决。
利用古德-图灵估计求解概率的方法是卡茨退避法,用来进行平滑
另一种平滑的方法是利用低阶语言模型和高阶语言模型进行线性插值,该方法不如卡茨规避法。
语料的选取:
训练数据通常越多愈好;
训练数据跟应用数据一致性
噪声,进行预处理
语言模型是建立在词的基础上,词是表达语义的最小单位。
对于西方拼音语言来讲,词之间有明确的分界符,对于一些亚洲语言(中日韩泰)词之间没有明确的分界符。
分词的输入是一串汉字,而分词的输出是用分界符,比如用斜线或者竖线分割的一串词。
输入:中国航天官员应邀到美国与太空总署官员开会。
输出:中国/航天/官员/应邀/到/美国/与/太空/总署/官员/开会。
分词的方法:
1. 查字典(最简单)
把一个句子从左向右扫描一遍,遇到字典里有的词就标识出来,遇到复合词(比如 上海大学)就找最长的词匹配,遇到不认识的字串就分割成单字词,于是简单的分词就完成了。
后来对其理论化,发展成最少词数的分词理论:即 一句话,应该分成数量最少的词串。遇到具有二义性的时候,就不能准确的分割了
如:发展中国家
正确分割:发展/中/国家
粗偶分割:发展/中国/家
另外,并非所有的最长匹配都是正确的,如:上海大学城书店 正确分词:上海/大学城/书店 错误:上海大学/城/书店
2. 利用统计语言模型分词(最好的一种分词方法应该保证分完词后这个句子出现的概率最大)
假定一个句子S可以有几种分词方法,假定有三种,那么最好的一种分词方法应该保证分完词后这个句子出现的概率最大。
当然这里有一个实现的技巧,如果穷举所有可能的分词方法并计算出每种可能下句子的概率,那么计算量是相当大的。因此,可以把它看成
一个动态规划的问题,利用维特比算法快速地找到最佳分词。
需要注意的是,语言学家对词语的定义不完全相同。一个这种的解决方法是在分词的同时,找到复合词的嵌套结构。
一般来讲,应用不同,汉语分词的颗粒度大小应该不同。
关于分词有两点需要说明,首先,这个问题属于已经解决的问题,不是什么难题了。不值得再去画大量的精力去做研究。其次,原本用来对中文进行分词的技术,也在英文的手写体识别中派上了用场。
3. 衡量分词的结果
一致性:分词的不一致:分为两种,一种是错误,包括越界型错误和覆盖型错误
另一种是:人们对词的颗粒度的认识不一致
颗粒度:翻译中颗粒度越大越好,网页搜索颗粒度越小越好
使用一个分词器同时支持不同层次的词的切分:基本词,复合词(由基本词构成),这样,首先需要一个基本词表和一个复合词表,基本词就是无法再分的词,复合词表包括复合词及他们由哪些基本词构成。接下来根据两个词表各自构建一个语言模型。