其他分享
首页 > 其他分享> > 自然语言处理 - 二元语法与中文分词

自然语言处理 - 二元语法与中文分词

作者:互联网

二元语法与中文分词

之前的一篇文章里(自然语言处理 - 分词初窥)中我们介绍并实现了基于词典的最大匹配分词方法。这种方法简单直观,且词典扩充很方便。但词典分词难以消除歧义,给定两种分词结果“商品 和服 务”以及“商品 和 服务”,词典分词不知道哪种更加合理。

但对于人类来说,我们平时接触的都是第二种分词方案,所以我们知道第二种更加合理,因此可以判定第二种是正确地选择。这就是利用了统计自然语言处理。统计自然语言处理的核心话题之一,就是如何利用统计手法对语言建模,

语言模型

模型指的是对事物的数学抽象,那么语言模型指的就是对语言现象的数学抽象。形式化上讲,给定一个句子,语言模型就是计算句子的出现概率 的模型,而统计的对象就是人工标注而成的语料库。

举个例子,对于下面的小型语料库:

商品 和 服务
商品 和服 物美价廉
服务 和 货币

每个句子出现的概率都是 1/3,这就是语言模型。然而 的计算非常难:句子数量无穷无尽,无法枚举。即便是大型语料库,也只能“枚举”有限的句子。实际遇到的句子大部分都在语料库之外,意味着它们的概率都被当作 0,这种现象被称为数据稀疏

考虑到很多句子复用相同的词语,如果把句子看成词语列表 ,其中,每一个 都是一个词语,那么语言模型可以定义为:

其中 (Begin Of Sentence) ,(End Of Sentence) 来标记句子首尾的两个特殊"单词"。

然而随着句子长度的增大,语言模型会遇到如下两个问题:

  1. 数据稀疏:长度较大的句子出现频率较低,导致联合概率为 0
  2. 计算代价大:随着句子中词语的增多,需要存储的单词间的联合概率值也越多

马尔可夫过程

马尔可夫过程(Markov process)是一类随机过程。它的原始模型马尔可夫链,由俄国数学家A.A.马尔可夫于1907年提出。该过程具有如下特性:在已知目前状态的条件下,它未来的演变不依赖于它以往的演变。例如森林中动物头数的变化构成——马尔可夫过程。在现实世界中,有很多过程都是马尔可夫过程,如液体中微粒所作的布朗运动、传染病受感染的人数、车站的候车人数等,都可视为马尔可夫过程。

每个状态的转移只依赖于之前的 n 个状态,这个过程被称为1个 n 阶的模型,其中 n 是影响转移状态的数目。最简单的马尔可夫过程就是一阶过程,每一个状态的转移只依赖于其之前的那一个状态,这个也叫作马尔可夫性质。用数学表达式即为:

n 元语言模型

这个"模型的每个状态都只依赖于之前的状态"的假设即称为马尔科夫假设。这个假设可用来简化语言模型,我们可以假设每个词语的出现概率仅依赖于前一个 词语。此时的语言模型称为二元语法模型,对应地,假设每个词语出现的概率仅信赖于前 n 个词语的模型即n 元语法模型

语言模型给出了如何计算句子出现概率的方法(函数),具体的概率值取决于实际使用到的语料库。一些常用的语料库有:

  1. 《人民日报》语料库 PKU
  2. 微软亚洲研究院语料库 MSR
  3. 香港城市大学 CITYU(繁体)
  4. 台湾中央研究院 AS(繁体)
语料库字符数词语种数总词频平均词长
PKU183万6万111万1.6
MSR405万9万237万1.7
AS837万14万545万1.5
CITYU240万7万146万1.7

MSR 在标注一致性、切分粒度上都要优于 PKU 且词频数更多,一般采用 MSR 作为分词语料的首选。
PKU 和 MSRA 的数据集下载地址:http://sighan.cs.uchicago.edu/bakeoff2005/

参考

标签:二元,模型,词语,语料库,分词,马尔可夫,自然语言,句子
来源: https://blog.csdn.net/SLP_L/article/details/112917666