西湖草莓
在网上看了很多关于马尔可夫模型的资料,有很多文章写得不错,在此记录自己学习过程中的笔记 隐马尔可夫模型(Hidden Markov Model, HMM)是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为 状态序列 ;每个状态生成一个观测,而由此产生的观测的随机序列,称为 观测序列 。序列的每一个位置又可以看作是一个时刻。 隐马尔可夫模型由初始概率分布、状态转移概率分布以及观测概率分布确定。 一个简单的例子 假设我们有3颗不同的骰子。第一个是6面体、第二个是4面体、第三个是8面体,对应每一面数值分别为(1,2,3,4,5,6)、(1,2,3,4)、(1,2,3,4,5,6,7,8),出现概率分别为 我们开始掷骰子,我们从这三个骰子里挑选一个骰子的概率为 。我们掷骰子的数值在1~8之间。当不停的掷骰子我们会得到一串数字序列。例如(掷骰10次):1、6、3、5、2、7、3、5、 2、4。上图可以看出马尔可夫模型为节点为隐含状态,边为转移概率的有向图模型,接下来我们通过这个例子介绍几个概念。 可见状态链(观测序列) :掷骰子得到的这串数字对应概念中我们可观察的参数。 隐含状态链(状态序列) :在这个掷骰子的例子中隐含状态链为我们掷的骰子的序列(有多种可能)。隐含状态(骰子)之间存在转换概率,D4的下一个状态D4、D6、D8的概率都是 。 转换概率(状态转移概率): 隐含状态转换(骰子改变)的概率 输出概率(发射状态): 尽管可见状态之间没有转换概率,但是隐含状态和可见状态之间有一个概率叫做输出概率。就我们的例子来说,六面体掷出1的概率为 ,四面体掷出1的概率为 ,八面体掷出1的概率为 。 当然转换概率和输出概率我们都是随意更改的,比如输出概率方面我们对骰子做点手脚可以让例如六面体掷出1的概率为 ,其它数字的概率为 。转换概率方面我们可以放入比如在2颗D6、4颗D4、4颗D8中选择筛子,然后有放回的选择筛子,转换概率D6为0.2, D4为0.4,D8为0.4。使用维特比算法(Viterbi algorithm)进行分词根据观测序列推断出状态序列 观察值序列:小明硕士毕业于中国科学院计算所 隐含状态集:隐含状态指的是每个字的状态。 有词语的开头、词语的中间字、词尾、单个字,这里的隐含状态集有4个状态对应的英文字母{B,M,E,S} 输入:小明硕士毕业于中国科学院计算所 输出:BEBEBMEBEBMEBES(BE/BE/BME/BE/BME/BE/S =小明/硕士/毕业于/中国/科学院/计算/所)1、定义V[id][字的状态] = 概率,注意这里的概率,前几个的字的状态都确定下来了(概率最大),这里的概率就是一个累乘的概率了。 2、因为第一个字为‘小’,所以第一个字的概率V[1][B]= 初始概率[B] *发射概率[B][‘小’],同理可得V[1][M]、V[1][E]、V[1][S]选择其中概率最大的一个加入到结果序列。 3、从第二个字开始,对于字的状态Y,都有前一个字的状态是X的概率* X转移到Y的概率 * Y状态下输出字为‘明’的概率。因为前一个字的状态Y有四种可能,所以Y的概率有四个,选取其中较大一个作为V[2][字的状态]的概率,同时加入到结果序列中。 4、比较V[15][B]、V[15][M]、V[15][E]、V[15][S],找出较大的哪一个对应的序列,就是最终结果。
金威家具
什么是中文分词 众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个 学生。 中文分词技术 中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。 现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。 1、基于字符串匹配的分词方法 这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下: 1)正向最大匹配法(由左到右的方向); 2)逆向最大匹配法(由右到左的方向); 3)最少切分(使每一句中切出的词数最小)。 还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。 一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。 对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述。 2、基于理解的分词方法 这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。 3、基于统计的分词方法 从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。 到底哪种分词算法的准确度更高,目前并无定论。对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法。笔者了解,海量科技的分词算法就采用“复方分词法”,所谓复方,相当于用中药中的复方概念,即用不同的药才综合起来去医治疾病,同样,对于中文词的识别,需要多种算法来处理不同的问题。
优质英语培训问答知识库