NLP | 自然语言处理 - 标注问题与隐马尔科夫模型(Tagging Problems, and Hidden Markov Models)
什么是标注?
标注问题的数学表达
当我们得到一个句子时,我们能够把它看做一个向量。令句子s有共计n个单词,第i个单词用xi来表示,显然s = x1, x2, ... xn。因此问题能够描写叙述成。对于每一个单词xi,我们须要分别给定一个标注yi,因而获得句子的标注y = y1, y2, ... yn。
然后,对于语料库中出现的全部的句子s与相应的标识y,我们能够学习出条件概率p(y, s)。即某个句子与其相应标识的出现概率。其次,因为语料库无法包括全部可能出现的句子,所以我们希望能够得到一个更加宽泛的表达式,通过贝叶斯公式,我们能够很看出p(y,
s) = p(y) * p(s | y),同一时候p(y | s) = p(y) * p(s | y) / p(s);我们须要比較的是p(y | s)中的最大值而无需获得p(y | s)。因此显然p(s)的详细取值并不重要。因此我们仅仅须要考虑tagging(s)=
arg max(p(y) * p(s | y))。
隐马尔科夫模型
我们依旧回到上述问题,给定一个句子s = x1, x2, ... xn,我们给出一个标识组合y = y1, y2, ... yn,使得y = arg max(p(y)
* p(s | y)) = arg max(p(x1,
x2, ... , xn, y1, y2, ..., yn))。
x1, x2, … xn) =
p(y1, y2, … yn) * p(x1, x2, … xn | y1, y2, … yn) = ∏q(yj | yj-2, yj-1) * ∏ e(xi | yi)。显然,简化后的模型,单个单词在语料库中出现的频率会远远高于句子总体出现的频率。
參数估算
有了隐马尔科夫模型之后。我们须要做的就仅仅是估算參数q(yj
| yj-2, yj-1)与e(xi | yi)。q(yj
| yj-2, yj-1)在上一章《语言模型》中有具体的解释,而e(xi
| yi)通过统计每一个单词在语料库中的出现情况能够轻松获得。然而有一种特殊情况,某些单词假设在语料库中没有出现,那么e(xi | yi) = 0将导致总体句子的出现概率为0。为了解决问题,我们能够採用一个简单的解决方式:
| yi)将直接从语料库中统计得出。
| yi)。
算法的复杂度
如果我们已经训练得到q(yj | yj-2, yj-1)与e(xi
| yi),给定一个句子s = x1, x2, ... xn,我们应当怎样得到标注y
= y1, y2, ... yn。
暴力方法。遍历全部可能出现的y1, y2, ... yn组合,计算概率并找出概率最大的值。显然,暴力方法的时间复杂度不会令人惬意。
u, v),k表示句子的第k位,u,v表示前k为组成的子句的最后两个单词的标识。因此。递归方程能够表述为m(k, u, v) = max(m(k-1, w, u) * q(v | w, u) * e( x | v))。关于动态规划方法,leetcode里有不少案例能够说明。
NLP | 自然语言处理 - 标注问题与隐马尔科夫模型(Tagging Problems, and Hidden Markov Models)的更多相关文章
- 机器学习中的隐马尔科夫模型(HMM)详解
机器学习中的隐马尔科夫模型(HMM)详解 在之前介绍贝叶斯网络的博文中,我们已经讨论过概率图模型(PGM)的概念了.Russell等在文献[1]中指出:"在统计学中,图模型这个术语指包含贝叶 ...
- 自然语言处理(1)-HMM隐马尔科夫模型基础概念(一)
隐马尔科夫模型HMM 序言 文本序列标注是自然语言处理中非常重要的一环,我先接触到的是CRF(条件随机场模型)用于解决相关问题,因此希望能够对CRF有一个全面的理解,但是由于在学习过程中发现一个算法像 ...
- 自然语言处理---用隐马尔科夫模型(HMM)实现词性标注---1998年1月份人民日报语料---learn---test---evaluation---Demo---java实现
先放上一张Demo的测试图 测试的句子及每个分词的词性标注为: 目前/t 这/rzv 条/q 高速公路/n 之间/f 的/ude1 路段/n 已/d 紧急/a 封闭/v ./w 需要基础知识 HM ...
- HMM隐马尔科夫模型
这是一个非常重要的模型,凡是学统计学.机器学习.数据挖掘的人都应该彻底搞懂. python包: hmmlearn 0.2.0 https://github.com/hmmlearn/hmmlearn ...
- 猪猪的机器学习笔记(十七)隐马尔科夫模型HMM
隐马尔科夫模型HMM 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十七次课在线笔记.隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来 ...
- 机器学习之隐马尔科夫模型HMM(六)
摘要 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔科夫过程.其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步 ...
- 隐马尔科夫模型(HMM)与词性标注问题
一.马尔科夫过程: 在已知目前状态(现在)的条件下,它未来的演变(将来)不依赖于它以往的演变 (过去 ).例如森林中动物头数的变化构成——马尔可夫过程.在现实世界中,有很多过程都是马尔可夫过程,如液体 ...
- 隐马尔科夫模型HMM
崔晓源 翻译 我们通常都习惯寻找一个事物在一段时间里的变化规律.在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等.一个最适用的例子就是天气的预测. 首先,本 ...
- 隐马尔科夫模型 HMM(Hidden Markov Model)
本科阶段学了三四遍的HMM,机器学习课,自然语言处理课,中文信息处理课:如今学研究生的自然语言处理,又碰见了这个老熟人: 虽多次碰到,但总觉得一知半解,对其了解不够全面,借着这次的机会,我想要直接搞定 ...
随机推荐
- IPython在Windows 7上的搭建步骤
安装篇 pip install jupyter 使用篇 启动本地notebook,打开Windows命令行,键入:ipython notebook
- 部署ASP.NET MVC项目
目标:了解部署过程,掌握部署中出现问题该如何处理. 部署网站往往是一件麻烦事,因为在安装部署的过程中,经常有许多步骤要运行,对于许多不太熟悉IIS/SQL的新手来说,部署网站编程一件非常困难且危险的事 ...
- 【.Net基础拾遗】适配器模式(Adapter)与多态
今天晚上跟大家主要来讨论下适配器模式和多态,什么是适配器模式呢?先抛给大家一个问题:假设两个类Student和Teacher继承一个抽象基类Person,如何在不改动三类情况下实现多Student.T ...
- ascii码所有字符对照表(包含汉字和外国文字)
http://www.0xaa55.com/thread-398-1-1.html看到了0xaa55的这个帖子,想起了2年前我在51cto发的一个帖子http://down.51cto.com/dat ...
- mysqli_set_charset和SET NAMES优劣分析
bool mysqli_set_charset ( mysqli $link , string $charset ) 这应该是首选的用于改变字符编码的方法,不建议使用 mysqli_query()执行 ...
- Ubuntu下编译Android JNI最靠谱的方法...
网上资料太杂乱,搞了大半天都还是没搞懂怎么系统的调用NDK.最后干脆放弃了Win改用Ubuntu编译JNI,虽然编译环境简单了,但是资料却少了不少.几乎没有一篇完整的文章.我想或许是能在Ubuntu下 ...
- Python笔记之基本的语法
1 变量和赋值 Python是动态类型语言,不须要预先声明变量的类型.变量的类型在赋值的那一刻被初始化. Python变量名是大写和小写敏感的,即"cAsE"与"CaSe ...
- ListView属性解释
1.android:scrollbarStyle 定义滚动条的样式和位置 参考:http://www.trinea.cn/android/android-scrollbarstyle/ 2.andro ...
- UItableViewCell上的button点击无响应的办法
由于IOS7中添加了滑动后出现编辑按钮的操作,所以使用scrollView来处理,UITableViewCellScrollView有对触摸的相应处理,导致按钮的点击效果被屏蔽了,但是点击事件还是在的 ...
- C++逗号运算符与逗号表达式
C++将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句.循环语句等)中.这是C++语言灵活性的一种表现. 请注意,用cout语句输出一个 ...