目录
一、研究背景及意义
1.1 研究背景和研究意义
在中文里面,词是最小的能够独立活动的有意义的语言成分,分词和词性标注都是中文自然语言处理的基础工作,能够后续如句法分析带来很大的便利性。
1.2 研究内容简要介绍
第一章是中文分词实验,先讲了中文分词是什么、中文分词的常用方法、中文分词的难点,再介绍隐马尔可夫模型并描述隐马尔可夫模型运用到中文分词的原理,接下来是实际操作与遇到的问题
第二章是词性标注实验,先介绍词性标注与词性标注的难点,然后介绍隐马尔可夫模型如何应用到词性标注,最后是实际操作。
第三章总结实验,并做出展望。
二、中文分词实验
2.1中文分词介绍
中文文本,从形式上看是由汉字、标点符号等组成的一个字符串。由字组成词,再组成句子、文章等。那么分词,就是按照一定的规则把字符串重新组合成词序列的过程。
在中文里面,词是最小的能够独立活动的有意义的语言成分;英文中单词以空格作为自然分界,虽然也有短语划分的问题。但中文词没有一个形式上的分界,相对而言难度大了许多,分词作为中文自然语言处理的基础工作,质量的好坏对后面的工作影响很大。
2.1.1分词的难点
(1)歧义消解问题
输入待切分句子: 提高人民生活水平
可以切分输出 : 提高/人民/生活/水平
或者切分输出: 提/高人/民生/活水/平
可以看到,明显第二个输出为歧义切分。
(2)未登录词识别
未登录词指的是在已有的词典中,或者训练语料里面没有出现过的词,分为实体名词,专有名词及新词。
2.1.2分词的方法
(1)基于字典、词库匹配的分词机械分词算法,将待分的字符串与一个充分大的机器词典中的词条进行匹配。实际应用中,将机械分词作为初分手段,再利用其他方法提高准确率。
(2)基于词频统计的分词统计分词,是一种全切分方法。切分出待分语句中所有的词,基于训练语料词表中每个词出现的频率,运用统计模型和决策算法决定最优的切分结果。
(3)基于知识理解的分词主要基于句法、语法分析,并结合语义分析,通过对上下文内容所提供信息的分析对词进行定界。这类方法试图让机器具有人类的理解能力,需要使用大量的语言知识和信息,目前还处在试验阶段。
本文采用的就是第二种分词方法,即利用隐马尔可夫模型来进行中文分词。
2.2隐马尔可夫模型介绍
2.2.1马尔科夫过程
一个系统有N各状态,,随着时间的推移,系统从某一个状态转移到另一个状态。设qt是时间为t时刻对应的状态,系统在t时刻处于状态Sj的概率取决于其在时间1, 2, 3, ... , t-1的状态。这个概率为:
如果系统在t时刻的状态只与其在时间t-1的状态相关,则该系统构成一个离散的一阶markov链(马尔科夫过程):
如果仅仅考虑独立于时间t的随机过程,其中状态转移概率
必须满足
,并且
,则该随机过程称为markov model。
2.2.2隐马尔科夫模型基本假设
在Markov Model中,每一个状态代表一个可观察的事件。然而在Hidden Markov Model中观察到的事件是状态的随机函数,其中状态转移过程是隐蔽的,并且可观察的事件的随机过程是隐蔽的状态转换过程的随机函数。
HMM模型建立在三条重要的假设基础之上。对于一个随机事件,观察序列为,该事件对应的隐状态序列为
(1)齐次马尔科夫性,即一阶Markov过程
(2)不动性假设:即状态与具体的时间无关对于任意的i,j都成立。
(3)观测独立性假设:输出仅与当前状态相关,
2.2.2 隐马尔可夫模型的描述
HMM可以通过以下描述:
: 状态的有限集合
: 观察值的有限集合
: 状态转移概率矩阵
: 观察值概率分布矩阵
: 初始状态概率分布
2.2.3 隐马尔可夫模型的主要问题
评估问题:即给定观测序列 O=O1,O2,O3…Ot和模型参数λ=(A,B,pi),怎样有效计算这一观测序列出现的概率,使用Forward-backward算法
解码问题:对于给定模型和观察值序列,求可能性最大的状态序列,使用viterbi算法。
学习问题:对于给定的一个观察值序列O,调整参数,使得观察值出现的概率最大,使用极大似然估计的方法估计参数、Baum-Welch或EM算法。
2.3隐马尔可夫模型用于中文分词
2.3.1用于中文分词的HMM模型的描述
(1)观测序列:把每一个待分的句子,都视为一个观测序列,如:我喜欢星期天喝牛奶,就是一个长度8的观测序列
(2)状态序列:每一个观测序列,都对应着相同长度的状态序列。这里将汉字按SBME进行标注,分别代表single(单独成词的字)、begin(一个词语开始字)、middle(一个词语中间的字)、end(一个词语结束的字),
如:观测序列:我喜欢星期天喝牛奶
状态序列:SBEBMESBE
(3)初始概率分布:SBME各自作为句首状态的概率。
我们可以查看jieba的hmm分词方法中的初始概率分布,对应
jiaba/finalseg/prob_start.py文件,如下
(4)状态转移矩阵:SBME之间两两转移的概率,我们可以对应查看jieba/finalseg/prob_trans.py文件,如下:
(5)观测发射矩阵:其元素含义为,当状态为SBME时。观察到各个汉字的概率,对应jieba/finalseg/prob_emit.py文件,如下: