自然语言处理 - 二元语法与中文分词
作者:互联网
二元语法与中文分词
之前的一篇文章里(自然语言处理 - 分词初窥)中我们介绍并实现了基于词典的最大匹配分词方法。这种方法简单直观,且词典扩充很方便。但词典分词难以消除歧义,给定两种分词结果“商品 和服 务”以及“商品 和 服务”,词典分词不知道哪种更加合理。
但对于人类来说,我们平时接触的都是第二种分词方案,所以我们知道第二种更加合理,因此可以判定第二种是正确地选择。这就是利用了统计自然语言处理。统计自然语言处理的核心话题之一,就是如何利用统计手法对语言建模,
语言模型
模型指的是对事物的数学抽象,那么语言模型指的就是对语言现象的数学抽象。形式化上讲,给定一个句子,语言模型就是计算句子的出现概率 的模型,而统计的对象就是人工标注而成的语料库。
举个例子,对于下面的小型语料库:
商品 和 服务
商品 和服 物美价廉
服务 和 货币
每个句子出现的概率都是 1/3,这就是语言模型。然而 的计算非常难:句子数量无穷无尽,无法枚举。即便是大型语料库,也只能“枚举”有限的句子。实际遇到的句子大部分都在语料库之外,意味着它们的概率都被当作 0,这种现象被称为数据稀疏。
考虑到很多句子复用相同的词语,如果把句子看成词语列表 ,其中,每一个 都是一个词语,那么语言模型可以定义为:
其中 (Begin Of Sentence) ,(End Of Sentence) 来标记句子首尾的两个特殊"单词"。
然而随着句子长度的增大,语言模型会遇到如下两个问题:
- 数据稀疏:长度较大的句子出现频率较低,导致联合概率为 0
- 计算代价大:随着句子中词语的增多,需要存储的单词间的联合概率值也越多
马尔可夫过程
马尔可夫过程(Markov process)是一类随机过程。它的原始模型马尔可夫链,由俄国数学家A.A.马尔可夫于1907年提出。该过程具有如下特性:在已知目前状态的条件下,它未来的演变不依赖于它以往的演变。例如森林中动物头数的变化构成——马尔可夫过程。在现实世界中,有很多过程都是马尔可夫过程,如液体中微粒所作的布朗运动、传染病受感染的人数、车站的候车人数等,都可视为马尔可夫过程。
每个状态的转移只依赖于之前的 n 个状态,这个过程被称为1个 n 阶的模型,其中 n 是影响转移状态的数目。最简单的马尔可夫过程就是一阶过程,每一个状态的转移只依赖于其之前的那一个状态,这个也叫作马尔可夫性质。用数学表达式即为:
n 元语言模型
这个"模型的每个状态都只依赖于之前的状态"的假设即称为马尔科夫假设。这个假设可用来简化语言模型,我们可以假设每个词语的出现概率仅依赖于前一个 词语。此时的语言模型称为二元语法模型,对应地,假设每个词语出现的概率仅信赖于前 n 个词语的模型即n 元语法模型。
语言模型给出了如何计算句子出现概率的方法(函数),具体的概率值取决于实际使用到的语料库。一些常用的语料库有:
- 《人民日报》语料库 PKU
- 微软亚洲研究院语料库 MSR
- 香港城市大学 CITYU(繁体)
- 台湾中央研究院 AS(繁体)
语料库 | 字符数 | 词语种数 | 总词频 | 平均词长 |
---|---|---|---|---|
PKU | 183万 | 6万 | 111万 | 1.6 |
MSR | 405万 | 9万 | 237万 | 1.7 |
AS | 837万 | 14万 | 545万 | 1.5 |
CITYU | 240万 | 7万 | 146万 | 1.7 |
MSR 在标注一致性、切分粒度上都要优于 PKU 且词频数更多,一般采用 MSR 作为分词语料的首选。
PKU 和 MSRA 的数据集下载地址:http://sighan.cs.uchicago.edu/bakeoff2005/。
参考
标签:二元,模型,词语,语料库,分词,马尔可夫,自然语言,句子 来源: https://blog.csdn.net/SLP_L/article/details/112917666