<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>我爱自然语言处理 &#187; 标注</title>
	<atom:link href="http://www.52nlp.cn/category/tagging/feed" rel="self" type="application/rss+xml" />
	<link>http://www.52nlp.cn</link>
	<description>I Love Natural Language Processing</description>
	<lastBuildDate>Wed, 21 Jul 2010 15:33:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HMM在自然语言处理中的应用一：词性标注6</title>
		<link>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6</link>
		<comments>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6#comments</comments>
		<pubDate>Sun, 06 Dec 2009 16:11:04 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[隐马尔科夫模型]]></category>
		<category><![CDATA[Brown语料库]]></category>
		<category><![CDATA[citar]]></category>
		<category><![CDATA[hmm]]></category>
		<category><![CDATA[hmm应用]]></category>
		<category><![CDATA[nltk]]></category>
		<category><![CDATA[TnT]]></category>
		<category><![CDATA[UMDHMM]]></category>
		<category><![CDATA[词性标注]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=2744</guid>
		<description><![CDATA[　　有一段时间没有谈HMM和词性标注了，今天我们继续这个系列的最后一个部分：介绍一个开源的HMM词性标注工具并且利用Brown语料库构造一个英文词性标注器。
　　上一节借用umdhmm构造的HMM词性标注工具是二元语法(bigram)标注器，因为我们只考虑了前一个词性标记和当前词性标记，算的上是最基本的马尔科夫模型标注器。这个HMM词性标注器可以通过好几种方式进行扩展，一种方式就是考虑更多的上下文，不只考虑前面一个词性标记，而是考虑前面两个词性标记，这样的标注器称之为三元语法（trigram）标注器，是非常经典的一种词性标注方法，在《自然语言处理综论》及《统计自然语言处理基础》中被拿来介绍。
　　正因为经典， 所以老外已经做足了功课，包括paper以及开源工具，我查了一下，其中比较有名的一个是TnT，作者既写了一篇“TnT &#8212; Statistical Part-of-Speech Tagging”，被引用869次，又开发了一套开源工具(http://www.coli.uni-saarland.de/~thorsten/tnt/)，可谓“知行合一”。但是要获得这个工具必须填一个表，并且传真给对方，比较麻烦。不过幸好在英文维基百科关于词性标注的介绍页面上有替代品：Part-of-speech_tagging.
　　在这个页面的“External links（外部链接）”的最后一行，提到了一个名叫Citar的利用C++开发的隐马尔科夫模型（HMM）三元语法词性标注器：
　　“Citar LGPL C++ Hidden Markov Model trigram POS tagger, a Java port named Jitar is also available”
　　同时，它也提供Java版本的Jitar。不过可惜，这个页面目前无法直接访问到。如果读者对这个词性标注工具感兴趣的话，这里提供一个Citar的下载链接： citar-0.0.2.zip
　　以下是citar的简要介绍：
　　Citar is a simple part-of-speech tagger, based on a trigram Hidden Markov Model (HMM). It (partly) implements the ideas set forth in [1]. Citaris written in C++. There is also a Java/JDK [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第一部分）'>MIT自然语言处理第四讲：标注（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/%e4%b8%ad%e6%96%87%e5%88%86%e8%af%8d%e5%85%a5%e9%97%a8%e4%b9%8b%e5%ad%97%e6%a0%87%e6%b3%a8%e6%b3%951' rel='bookmark' title='Permanent Link: 中文分词入门之字标注法1'>中文分词入门之字标注法1</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>　　有一段时间没有谈HMM和词性标注了，今天我们继续这个系列的最后一个部分：介绍一个开源的HMM词性标注工具并且利用Brown语料库构造一个英文词性标注器。<br />
　　<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5">上一节</a>借用umdhmm构造的HMM词性标注工具是二元语法(bigram)标注器，因为我们只考虑了前一个词性标记和当前词性标记，算的上是最基本的马尔科夫模型标注器。这个HMM词性标注器可以通过好几种方式进行扩展，一种方式就是考虑更多的上下文，不只考虑前面一个词性标记，而是考虑前面两个词性标记，这样的标注器称之为三元语法（trigram）标注器，是非常经典的一种词性标注方法，在《自然语言处理综论》及《统计自然语言处理基础》中被拿来介绍。<span id="more-2744"></span><br />
　　正因为经典， 所以老外已经做足了功课，包括paper以及开源工具，我查了一下，其中比较有名的一个是TnT，作者既写了一篇“<a href="http://www.xun6.com/file/ad4afd816/a00-1031.pdf.html"target=_blank>TnT &#8212; Statistical Part-of-Speech Tagging</a>”，被引用869次，又开发了一套开源工具(http://www.coli.uni-saarland.de/~thorsten/tnt/)，可谓“知行合一”。但是要获得这个工具必须填一个表，并且传真给对方，比较麻烦。不过幸好在英文维基百科关于词性标注的介绍页面上有替代品：<a href="http://en.wikipedia.org/wiki/Part-of-speech_tagging"target=_blank>Part-of-speech_tagging</a>.<br />
　　在这个页面的“External links（外部链接）”的最后一行，提到了一个名叫Citar的利用C++开发的隐马尔科夫模型（HMM）三元语法词性标注器：<br />
　　“Citar LGPL C++ Hidden Markov Model trigram POS tagger, a Java port named Jitar is also available”<br />
　　同时，它也提供Java版本的Jitar。不过可惜，这个页面目前无法直接访问到。如果读者对这个词性标注工具感兴趣的话，这里提供一个Citar的下载链接： <a href="http://www.xun6.com/file/fcb40ab16/citar-0.0.2.zip.html"target=_blank>citar-0.0.2.zip</a><br />
　　以下是citar的简要介绍：<br />
　　Citar is a simple part-of-speech tagger, based on a trigram Hidden Markov Model (HMM). It (partly) implements the ideas set forth in [1]. Citaris written in C++. There is also a Java/JDK counterpart named Jitar,<br />
which is available at: http://code.google.com/p/jitar/<br />
　　其中[1]指的是“<a href="http://www.xun6.com/file/ad4afd816/a00-1031.pdf.html"target=_blank>TnT &#8212; Statistical Part-of-Speech Tagging</a>”，其具体的实现思想在这篇文章里描述的很细致，我觉得主要需要注意的几个地方是trigram的平滑算法，未登录词的处理方法（主要是针对英文的），以及柱搜索(beam search)解码算法。<br />
　　编译citar直接make就可以了，生成三个可执行文件：train,tag,evaluate。顾名思义，“train”是用来一些必要的文件的，tag则是进行标注的，而evaluate则是用来评价标注结果的。下面我们以Brown语料库为例来演示如何使用这三个可执行程序。<br />
　　关于Brown语料库，我是从NLTK的包中得到的，NLTK提供了两个版本的语料库，一个是纯文本格式，另外一个是XML格式，都进行了词性标注，如果你对NLTK不熟悉，可以从下面两个链接直接下载这两个语料库：<br />
　　1、<a href="http://www.xun6.com/file/fe1271a16/brown_tei.zip.html"target=_blank>XML格式的brown语料库</a>，带词性标注；<br />
　　2、<a href="http://www.xun6.com/file/7b4ab4816/brown.zip.html"target=_blank>普通文本格式的brown语料库</a>，带词性标注；<br />
　　至于Brown语料库的具体介绍，大家可以参考这个页面：<a href="http://icame.uib.no/brown/bcm.html"target=_blank>BROWN CORPUS MANUAL</a>。在这个练习中，我采用的是纯文本格式的brown语料库，但是这些文件是按照类别分布在很多小文件里，并且包含很多空行，所以我处理了一下这个文件，把它们合并到一个大的文件中，并且去除了行首的空格及空行，共得到57340个带词性标注的句子(brown.corpus)。我们首先对这个语料库进行划分，从中选取前55340句作为训练集(brown.train)，选取剩余的2000句作为测试集(brown.test)，现在我们就来运行这三个命令。<br />
　　首先利用train来训练：<br />
　　../train brown.train brown.lex brown.ngram<br />
　　其中输入文件是训练集brown.train，而输出文件是brown.lex及brown.ngram，如果大家还记着上一节里我也生成了两个前处理文件lex和ngram的话，那么就不难理解这两个文件的内容含义了。事实上，我当时就是模仿citar的这个预处理思想做得，只是结果文件里的格式稍有不同而已。<br />
　　有了上述两个文件，就可以利用tag进行词性标注了，我们拿citar里的一个示例句子来实验一下：<br />
　　echo &#8220;The cat is on the mat .&#8221; | ../tag brown.lex brown.ngram<br />
　　得到如下的结果：<br />
　　The/at cat/nn is/bez on/in the/at mat/nn ./.<br />
　　如果对一个没有标注的文件进行标注，可以利用如下的命令：<br />
　　../tag brown.lex brown.ngram < input > output<br />
　　最后，我利用evaluate来验证一下基于brown.train训练出来的词性标注器的准确率,在测试集brown.test上进行测试：<br />
　　../evaluate brown.lex brown.ngram brown.test<br />
　　得到如下的结果：<br />
　　Accuracy (known): 0.964621<br />
　　Accuracy (unknown): 0.740937<br />
　　Accuracy (overall): 0.956389<br />
　　说明这个词性标注器对于语料库中已存在的词的标注准确率是96.46%，对于未登录词的标注准确率是74.09%，而整体标注准确虑是95.63%。<br />
　　好了，关于Citar我们就到此为止，有兴趣的读者可以找一些标注好的语料库来试试，包括中文的词性标注语料库，只不过它用于英文的未登录词处理方法对于中文并不合适而已。上面所提到的几个文件，包括处理好的brown.corpus,训练集brown.train,测试集brown.test及中间生成的brown.lex,brown.ngram我已经打包放在了网络硬盘里，可以在如下地址下载：<a href="http://www.xun6.com/file/cdf8c0b16/browntest.zip.html"target=_blank>browntest.zip</a><br />
　　关于HMM在词性标注中的应用就说完了，再次回头说词性标注时，我会基于其他的模型来作相关的词性标注练习。下一个关于HMM在自然语言处理的应用，将会谈谈中文分词的相关问题，欢迎继续关注52nlp。</p>
<p>注：原创文章，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6">http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第一部分）'>MIT自然语言处理第四讲：标注（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/%e4%b8%ad%e6%96%87%e5%88%86%e8%af%8d%e5%85%a5%e9%97%a8%e4%b9%8b%e5%ad%97%e6%a0%87%e6%b3%a8%e6%b3%951' rel='bookmark' title='Permanent Link: 中文分词入门之字标注法1'>中文分词入门之字标注法1</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>HMM在自然语言处理中的应用一：词性标注5</title>
		<link>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5</link>
		<comments>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5#comments</comments>
		<pubDate>Sat, 21 Nov 2009 17:59:47 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[隐马尔科夫模型]]></category>
		<category><![CDATA[hmm]]></category>
		<category><![CDATA[hmm应用]]></category>
		<category><![CDATA[Philip Resnik]]></category>
		<category><![CDATA[UMDHMM]]></category>
		<category><![CDATA[词性标注]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=2630</guid>
		<description><![CDATA[　　上一节我们谈完了Resnik教授基于UMDHMM设计的词性标注的练习，不过自始至终，还没有见到一个词性标记的影子。虽然这一过程展示了自然语言处理中EM算法在无监督学习任务中的重要作用，但是这类方法的标注准确性还相对较低，在实际应用中多是那些建立在有词性标注训练集基础上的机器学习算法，如最大熵模型、决策树等，所学习的词性标注器能获得较高的标注准确率。本节我们就以一个标注好的训练集为基础，来学习一个最简单的HMM词性标注器。
　　首先就是准备训练集，作为一个练习，52nlp也本着尽量简单的原则，所以这里仍然选用Resnik教授所使用的example0.train，这个训练集虽然包含了一百句“似英语”的句子，但是只有一行，所以我们首先做一个断句处理，不过这些句子只采用了“.”和“?”作为句尾标志，因此断句相对简单。不过实际处理中英文断句问题比较麻烦，也有很多学者这方面做了很多研究工作。这里52nlp写了一个简单的sentsplit.pl脚本来处理这个训练集：
　　./sentsplit.pl example0.train example0.sentences
　　example0.sentences就成了每一句为一行的训练集，如下所示：
the plane can fly .
the typical plane can see the plane .
a typical fly can see .
who might see ?
the large can might see a can .
the can can destroy a large can .
…
　　但是，这个训练集只包含纯粹的单词句子，因此需要做一下词性标注，当然人工标注并检查是最好的了，但是我不懂，于是找了一个开源的词性标注工具对这些句子进行了标注，关于这个词性标注器的细节，下一节我会具体介绍，先来看标注后得到的包含词性标记的训练集example0.all，部分示例如下：
	the/at plane/nn can/md fly/vb ./.
	the/at typical/jj plane/nn can/md see/vb the/at plane/nn ./.
	a/at typical/jj fly/nn can/md see/vb ./.
	who/wps might/md see/vb ?/.
	the/at [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-eight-summary' rel='bookmark' title='Permanent Link: HMM学习最佳范例八：总结'>HMM学习最佳范例八：总结</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例七：前向-后向算法5'>HMM学习最佳范例七：前向-后向算法5</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例五：前向算法5'>HMM学习最佳范例五：前向算法5</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>　　上一节我们谈完了Resnik教授基于UMDHMM设计的词性标注的练习，不过自始至终，还没有见到一个词性标记的影子。虽然这一过程展示了自然语言处理中EM算法在无监督学习任务中的重要作用，但是这类方法的标注准确性还相对较低，在实际应用中多是那些建立在有词性标注训练集基础上的机器学习算法，如最大熵模型、决策树等，所学习的词性标注器能获得较高的标注准确率。本节我们就以一个标注好的训练集为基础，来学习一个最简单的HMM词性标注器。<span id="more-2630"></span><br />
　　首先就是准备训练集，作为一个练习，52nlp也本着尽量简单的原则，所以这里仍然选用Resnik教授所使用的<a href="http://www.52nlp.org/postagging/example/example0.train"target=_blank>example0.train</a>，这个训练集虽然包含了一百句“似英语”的句子，但是只有一行，所以我们首先做一个断句处理，不过这些句子只采用了“.”和“?”作为句尾标志，因此断句相对简单。不过实际处理中英文断句问题比较麻烦，也有很多学者这方面做了很多研究工作。这里52nlp写了一个简单的<a href="http://www.52nlp.org/postagging/example/sentsplit.txt"target=_blank>sentsplit.pl</a>脚本来处理这个训练集：<br />
　　./sentsplit.pl example0.train example0.sentences<br />
　　<a href="http://www.52nlp.org/postagging/example/example0.sentences"target=_blank>example0.sentences</a>就成了每一句为一行的训练集，如下所示：</p>
<blockquote><p>the plane can fly .<br />
the typical plane can see the plane .<br />
a typical fly can see .<br />
who might see ?<br />
the large can might see a can .<br />
the can can destroy a large can .<br />
…</p></blockquote>
<p>　　但是，这个训练集只包含纯粹的单词句子，因此需要做一下词性标注，当然人工标注并检查是最好的了，但是我不懂，于是找了一个开源的词性标注工具对这些句子进行了标注，关于这个词性标注器的细节，下一节我会具体介绍，先来看标注后得到的包含词性标记的训练集<a href="http://www.52nlp.org/postagging/example/example0.all"target=_blank>example0.all</a>，部分示例如下：</p>
<blockquote><p>	the/at plane/nn can/md fly/vb ./.<br />
	the/at typical/jj plane/nn can/md see/vb the/at plane/nn ./.<br />
	a/at typical/jj fly/nn can/md see/vb ./.<br />
	who/wps might/md see/vb ?/.<br />
	the/at large/jj can/nn might/md see/vb a/at can/nn ./.<br />
	…</p></blockquote>
<p>　　无论什么方法，建立HMM词性标注器的关键就是根据这个训练集来学习一个合适的HMM模型了。我们先来确定HMM模型中的隐藏状态（词性标记）和观察符号（词型），这里只考察能从训练集中观察的到的词性标记和词型，因此上一节用到的create_key.pl这个脚本就可以派上用处了。对于确定训练集中的词型，利用example0.sentences就可以:<br />
　　../create_key.pl words.key < example0.sentences > example0.seq 　　<br />
　　所得到的<a href="http://www.52nlp.org/postagging/example/words.key"target=_blank>words.key</a>就包含了训练集中的词型及其数字编号：</p>
<blockquote><p>1        the<br />
2        plane<br />
8        a<br />
4        fly<br />
3        can<br />
7        see<br />
12       large<br />
11       ?<br />
10       might<br />
9        who<br />
6        typical<br />
5        .<br />
13       destroy </p></blockquote>
<p>　　注意另一个副产品example0.seq在这一节里并不需要。同样我们也需要利用create_key.pl来确定训练集中的词性标记及其编号，不过这里我们需要先将example0.all中的词性标记序列抽取出来。这里52nlp写了一个简单的脚本<a href="http://www.52nlp.org/postagging/example/extractpos.txt"target=_blank>extractpos.pl</a>来处理此事：<br />
　　./extractpos.pl example0.all example0.pos<br />
　　所得到的example0.pos文件部分示例如下：</p>
<blockquote><p>at nn md vb .<br />
at jj nn md vb at nn .<br />
at jj nn md vb .<br />
wps md vb .<br />
at jj nn md vb at nn .<br />
at nn md vb at jj nn .<br />
…</p></blockquote>
<p>　　有了这个文件，就可以再次利用create_key.pl了：<br />
　　../create_key.pl pos.key < example0.pos > example0.posseq<br />
　　所得到的<a href="http://www.52nlp.org/postagging/example/pos.key"target=_blank>pos.key</a>就包含了训练集中的词性标记及其数字编号：</p>
<blockquote><p>4        vb<br />
6        jj<br />
3        md<br />
2        nn<br />
7        wps<br />
5        .<br />
1        at </p></blockquote>
<p>　　同样，另一个副产品example0.posseq这里也不需要。<br />
　　确定好了该HMM模型中的隐藏状态（词性标记）和观察符号（词型）后，下一步便是要计算HMM模型中其他三个基本要素了，包括初始概率向量<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_994.5_8edb2cf68079344a2edd739531259f6c.png" style="vertical-align:-5.5px; display: inline-block ;" alt="pi" title="pi"/>, 状态转移矩阵A，混淆矩阵B。<br />
　　我们先预处理一下语料库，主要的目标是对一元词性、二元词性及词型与词性的组合进行计数，这里52nlp写了一个脚本<a href="http://www.52nlp.org/postagging/example/pretrain.txt"target=_blank>pretrain.pl</a>来处理此事：<br />
　　./pretrain.pl example0.all lex ngram<br />
　　所得到的<a href="http://www.52nlp.org/postagging/example/lex"target=_blank>lex</a>文件主要是统计词型及其词性标记的组合在训练集中出现的次数：</p>
<blockquote><p>typical jj 25<br />
large jj 22<br />
might md 42<br />
fly nn 20<br />
a at 58<br />
? . 57<br />
plane nn 34<br />
the at 35<br />
who wps 57<br />
can nn 39<br />
see vb 45<br />
destroy vb 9<br />
fly vb 46<br />
. . 43<br />
can md 58 </p></blockquote>
<p>　　ngram文件主要包含的是一元词性及二元词性在训练集中的出现次数：</p>
<blockquote><p>vb 100<br />
jj 47<br />
md 100<br />
nn 93<br />
wps 57<br />
. 100<br />
at 93<br />
vb . 50<br />
md vb 100<br />
vb at 50<br />
at jj 47<br />
wps md 57<br />
nn . 50<br />
at nn 46<br />
jj nn 47<br />
nn md 43 </p></blockquote>
<p>　　有了这几个预处理文件，我们就可以训练一个简单的HMM词性标注模型了,这里52nlp写了一个约100行的脚本<a href="http://www.52nlp.org/postagging/example/hmmtrain.txt"target=_blank>hmmtrain.pl</a>来处理此事：<br />
　　./hmmtrain.pl words.key pos.key ngram lex example.hmm<br />
　　其中前四个是输入（准备）文件，最后一个<a href="http://www.52nlp.org/postagging/example/example.hmm"target=_blank>example.hmm</a>是输出文件，也就是本节的核心目标：一个合适的HMM词性标注模型，我们来简单看一下example.hmm：</p>
<blockquote><p>M= 13<br />
N= 7<br />
A:<br />
0.0100 0.4700 0.0100 0.0100 0.0100 0.4800 0.0100<br />
&#8230;<br />
B:<br />
0.3396 0.0094 0.0094 0.0094 0.0094 0.0094 0.0094 0.5566 0.0094 0.0094 0.0094 0.0094 0.0094<br />
&#8230;<br />
pi:<br />
0.1576 0.1576 0.1695 0.1695 0.1695 0.0797 0.0966 </p></blockquote>
<p>　　有兴趣的读者，可以对比一下上一节利用BaumWelch算法（前向-后向算法）所学习的HMM词性标注模型example0.hmm。<br />
　　关于这个脚本，其中对于状态转移矩阵A，混淆矩阵B的计算采用了最简单的加一平滑来处理那些在训练集中的未出现事件， 关于加一平滑，不清楚读者可以在“<a href="http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-fourth-part">MIT自然语言处理第三讲：概率语言模型（第四部分）</a>”  中找到参考，或者任何一本自然语言处理书中关于ngram语言模型的章节都会介绍的。<br />
　　现在我们就可以作上一节最后一个词性标注的练习了，仍然选择训练集中的第91句：</p>
<blockquote><p>the can can destroy the typical fly .</p></blockquote>
<p>　　可以利用Resnik教授的words2seq.pl来对此句进行转换，或者利用上一节已经处理好的UMDHMM可读的<a href="http://www.52nlp.org/postagging/example/example0.test"target=_blank>example0.test</a>：</p>
<blockquote><p>T= 8<br />
1 3 3 13 1 6 4 5</p></blockquote>
<p>　　现在就可以使用testvit及刚刚训练好的example.hmm来作词性标注了：<br />
　　../testvit example.hmm example0.test<br />
　　同样得到了一个隐藏状态序列：</p>
<blockquote><p>…<br />
Optimal state sequence:<br />
T= 8<br />
1 2 3 4 1 6 2 5<br />
…</p></blockquote>
<p>　　不过这次我们已经有了词性标记序列及其数字编号，可以对应着把它们写出来：</p>
<blockquote><p>at nn md vb at jj nn .</p></blockquote>
<p>　　与测试句子合在一起即是：</p>
<blockquote><p>the/at can/nn can/md destroy/vb the/at typical/jj fly/nn ./. </p></blockquote>
<p>　　对照example.all里的第91句：</p>
<blockquote><p>the/at can/nn can/md destroy/vb the/at typical/jj fly/nn ./. </p></blockquote>
<p>　　二者是一样的，不过这个绝不能说明此HMM词性标注器是100％正确的。<br />
　　好了，本节就到此为止了，这一节的相关例子及小脚本可以单独按链接下载，也可以打包在这里供下载：<a href="http://www.xun6.com/file/5b43de614/52nlpexample.zip.html"target=_blank>52nlpexample.zip</a><br />
　　不过这套小工具还不足以处理实际问题中的词性标注问题，下一节我将介绍一个更加健壮的HMM词性标注开源工具。</p>
<p>未完待续：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6">词性标注6</a></p>
<p>注：原创文章，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5">http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-eight-summary' rel='bookmark' title='Permanent Link: HMM学习最佳范例八：总结'>HMM学习最佳范例八：总结</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例七：前向-后向算法5'>HMM学习最佳范例七：前向-后向算法5</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例五：前向算法5'>HMM学习最佳范例五：前向算法5</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>HMM在自然语言处理中的应用一：词性标注4</title>
		<link>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4</link>
		<comments>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4#comments</comments>
		<pubDate>Fri, 13 Nov 2009 15:37:36 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[隐马尔科夫模型]]></category>
		<category><![CDATA[hmm]]></category>
		<category><![CDATA[hmm应用]]></category>
		<category><![CDATA[Philip Resnik]]></category>
		<category><![CDATA[UMDHMM]]></category>
		<category><![CDATA[层次短语模型]]></category>
		<category><![CDATA[统计机器翻译]]></category>
		<category><![CDATA[蒋伟]]></category>
		<category><![CDATA[词性标注]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=2595</guid>
		<description><![CDATA[　　在继续昨晚的工作之前，先聊两句Philip Resnik教授。作为美国马里兰大学的教授，他的主要研究领域是自然语言处理，不过最近他被美国某个网站评为“当代卫生保健领域最具创新性和最有影响力的百位革新者之一(the most creative and influential innovators working in healthcare today)&#8221; ,Resnik教授也非常吃惊（Much to my surprise），之所以入选，再于他利用自然语言处理来提高医用编码（medical coding）的水平，具体什么是医用编码我不太清楚，不过这项工作至少说明自然语言处理还是有相当的应用前景的。
　　另外，05年的时候，他的一个学生开发了一套统计机器翻译系统，取名为“Hiero”，在当年NIST机器翻译评测中表现出色，虽然没有拿到第一，但是其提出的“层次短语模型”的论文获得了当年ACL的最佳论文，此人名叫David Chiang ，中文名蒋伟。
　　一年之前有一段时间我对Web平行语料库自动采集比较感兴趣，就找了很多这方面的paper,其中最有名的当属Resnik教授的Strand和LDC的BITS了，只是当时没有仔细考虑过他是何方神圣。今天仔细读了一下他的个人主页，觉得他在自然语言处理领域也是一个比较神奇的人物，有兴趣的读者不妨看看他的这个主页，对于扩展研究思路和把握当前的研究动态还是非常有好处的。好了，以下我们转入HMM词性标注的正题。
　　在将训练集转换成UMDHMM需要的形式后，就可以利用UMDHMM中编译好的可执行程序esthmm来训练HMM模型了。esthmm的作用是，对于给定的观察符号序列，利用BaumWelch算法（前向-后向算法）学习隐马尔科夫模型HMM。这里采用如下的命令训练HMM模型：
　　../esthmm -N 7 -M 13 example0.seq > example0.hmm
　　其中 N指示的隐藏状态数目，这里代表词性标记，这个例子中可以随便选，我选的是7，下一节会用到。注意Resnik教授给出的命令：
　　esthmm 6 13 example0.seq > example0.hmm
　　是错误的，需要加上”-N”和“-M”。example0.hmm的部分形式如下：
M= 13
N= 7
A:
0.001002 0.001003 0.001000 0.001000 0.462993 0.001000 0.538002
&#8230;
B:
0.001000 0.366300 0.420021 0.215676 0.001000 0.001001 0.001001 0.001000 0.001001 0.001000 0.001000 0.001001 0.001000
&#8230;
pi:
0.001000 0.001000 0.001005 0.001000 0.001000 [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例六：维特比算法5'>HMM学习最佳范例六：维特比算法5</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-4' rel='bookmark' title='Permanent Link: HMM学习最佳范例五：前向算法4'>HMM学习最佳范例五：前向算法4</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-2' rel='bookmark' title='Permanent Link: HMM学习最佳范例五：前向算法2'>HMM学习最佳范例五：前向算法2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>　　在继续昨晚的工作之前，先聊两句Philip Resnik教授。作为美国马里兰大学的教授，他的主要研究领域是自然语言处理，不过最近他被美国某个网站评为“当代卫生保健领域最具创新性和最有影响力的百位革新者之一(the most creative and influential innovators working in healthcare today)&#8221; ,Resnik教授也非常吃惊（Much to my surprise），之所以入选，再于他利用自然语言处理来提高医用编码（medical coding）的水平，具体什么是医用编码我不太清楚，不过这项工作至少说明自然语言处理还是有相当的应用前景的。<span id="more-2595"></span><br />
　　另外，05年的时候，他的一个学生开发了一套统计机器翻译系统，取名为“Hiero”，在当年NIST机器翻译评测中表现出色，虽然没有拿到第一，但是其提出的“层次短语模型”的论文获得了当年ACL的最佳论文，此人名叫David Chiang ，中文名蒋伟。<br />
　　一年之前有一段时间我对Web<a href="http://www.52nlp.cn/bits-structure-analysis">平行语料库自动采集</a>比较感兴趣，就找了很多这方面的paper,其中最有名的当属Resnik教授的Strand和LDC的BITS了，只是当时没有仔细考虑过他是何方神圣。今天仔细读了一下他的个人主页，觉得他在自然语言处理领域也是一个比较神奇的人物，有兴趣的读者不妨看看他的这个<a href="http://www.umiacs.umd.edu/~resnik/"target=_blank>主页</a>，对于扩展研究思路和把握当前的研究动态还是非常有好处的。好了，以下我们转入HMM词性标注的正题。</p>
<p>　　在将训练集转换成<a href="http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-4">UMDHMM</a>需要的形式后，就可以利用UMDHMM中编译好的可执行程序esthmm来训练HMM模型了。esthmm的作用是，对于给定的观察符号序列，利用BaumWelch算法（前向-后向算法）学习隐马尔科夫模型HMM。这里采用如下的命令训练HMM模型：<br />
　　../esthmm -N 7 -M 13 example0.seq > example0.hmm<br />
　　其中 N指示的隐藏状态数目，这里代表词性标记，这个例子中可以随便选，我选的是7，下一节会用到。注意Resnik教授给出的命令：<br />
　　esthmm 6 13 example0.seq > example0.hmm<br />
　　是错误的，需要加上”-N”和“-M”。example0.hmm的部分形式如下：</p>
<blockquote><p>M= 13<br />
N= 7<br />
A:<br />
0.001002 0.001003 0.001000 0.001000 0.462993 0.001000 0.538002<br />
&#8230;<br />
B:<br />
0.001000 0.366300 0.420021 0.215676 0.001000 0.001001 0.001001 0.001000 0.001001 0.001000 0.001000 0.001001 0.001000<br />
&#8230;<br />
pi:<br />
0.001000 0.001000 0.001005 0.001000 0.001000 0.999995 0.001000</p></blockquote>
<p>　　抛开这个HMM模型的效果如何，这里不得不感叹前向－后向算法或者EM算法的神奇。当然这里只是一个练习，实际处理中需要加上一些辅助手段，譬如词典之类的，这种无监督的学习是非常有难度的。<br />
　　有了这个HMM模型，就可以作些练习了。首先我们利用genseq来随机生成句子：<br />
　　../genseq -T 10 example0.hmm > example0.sen.seq<br />
　　其中T指示的是输出序列的长度，如下所示：</p>
<blockquote><p>T= 10<br />
8 12 4 5 9 3 7 5 9 3</p></blockquote>
<p>　　注意 Resink教授给出的命令仍然是错的，上面的输出结果可读性不好，读者可以对照着example0.key将这个句子写出来，不过Resnik教授写了一个ints2words.pl的脚本，帮助我们完成了这件事：<br />
　　../ints2words.pl example0.key < example0.sen.seq > example0.sen<br />
　　example0.sen中包含的就是这个HMM模型随机生成的句子：</p>
<blockquote><p>a large fly . who can see . who can</p></blockquote>
<p>　　虽然不是一句整句，但是局部还是可读的，注意这两步可以利用管道命令合并在一起：<br />
　　../genseq -T 10 example0.hmm | ../ints2words.pl example0.key<br />
　　注意每次的结果并不相同。<br />
　　最后一个练习也是最重要的一个：对于一个测试句子寻找其最可能的隐藏状态序列（Finding the Hidden State Sequence for a Test Sentence），对于本文来说，也就是词性序列了。我们使用testvit来完成这个任务，当然，前提是先准备好测试句子。可以根据exampl0.key中的单词和标点自己组织句子，也可以利用上一个练习随机生成一个句子，不过我选择了训练集中的第91句，比较典型：</p>
<blockquote><p>the can can destroy the typical fly .</p></blockquote>
<p>　　虽然违背了自然语言处理中实验的训练集与测试集分离的原则，不过考虑到这只是一个练习，另外也是为下一节做个小准备，我们就以此句话为例建立一个文件example0.test.words。不过UMDHMM还是只认数字，所以Resnik教授有为我们写了一个words2seq.pl处理此事：<br />
　　../words2seq.pl example0.key < example0.test.words > example0.test<br />
　　example0.test就是UMDHMM可以使用的测试集了，如下所示：</p>
<blockquote><p>T= 8<br />
1 3 3 13 1 6 4 5</p></blockquote>
<p>　　现在就可以使用testvit，这次Resnik教授没有写错：<br />
 　　../testvit example0.hmm example0.test<br />
　　看到结果了吗？我们得到了一个隐藏状态序列：</p>
<blockquote><p>…<br />
Optimal state sequence:<br />
T= 8<br />
6 1 5 2 6 3 1 7<br />
…</p></blockquote>
<p>　　如果之前你已经建立好了隐藏状态与词性标记的一一映射，那么就可以把它们所对应的词性标记一个一个写出来了！这个词性标注结果是否与你的期望一样？<br />
　　如果你还没有建立这个映射，那么就可以好好发挥一下想象力了！无论如何，恭喜你和52nlp一起完成了Philip Resnik教授布置的这个练习。</p>
<p>未完待续：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5">词性标注5</a></p>
<p>注：原创文章，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4">http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例六：维特比算法5'>HMM学习最佳范例六：维特比算法5</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-4' rel='bookmark' title='Permanent Link: HMM学习最佳范例五：前向算法4'>HMM学习最佳范例五：前向算法4</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-2' rel='bookmark' title='Permanent Link: HMM学习最佳范例五：前向算法2'>HMM学习最佳范例五：前向算法2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HMM在自然语言处理中的应用一：词性标注3</title>
		<link>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3</link>
		<comments>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3#comments</comments>
		<pubDate>Thu, 12 Nov 2009 15:53:27 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[隐马尔科夫模型]]></category>
		<category><![CDATA[Brown语料库]]></category>
		<category><![CDATA[hmm]]></category>
		<category><![CDATA[hmm应用]]></category>
		<category><![CDATA[Philip Resnik]]></category>
		<category><![CDATA[UMDHMM]]></category>
		<category><![CDATA[词性标注]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=2577</guid>
		<description><![CDATA[　　原计划这一节讲解如何利用UMDHMM这个HMM工具包来实现一个toy版本的HMM词性标注器，自己也写了几个相关的小脚本，不过由于处理过程中需要借用Philip Resnik教授写的另外几个小脚本，所以这里先介绍一下他的工作。
　　Resnik教授利用UMDHMM写了一个关于如何使用隐马尔科夫模型的介绍和练习，主要目标包括以下四个方面：
　　1、 在一个“似英语”的文本上训练一个HMM模型（Train an HMM on a sample of English-like text ）；
　　2、对于训练好的模型进行检测（Inspect the resulting model）；
　　3、根据训练好的模型随机生成句子（Generate sentences at random from the model）；
　　4、对于测试句子寻找最可能隐藏状态序列（Create test sentences and find the most likely hidden state sequence）。
　　我的工作和Resnik教授的主要区别再于，他的训练集没有进行词性标注，利用了前向－后向算法生成HMM模型，并且需要读者有一定想象能力来作虚拟词性标注；而我所用的训练集是有标注的，主要是通过统计的方法生成HMM模型，并且对于测试集标注是直观的。但是，殊途同归，都是为了建立一个HMM模型，都是为了能利用UMDHMM。
　　关于如何下载和使用这个工具包具体请参考“Exercise: Using a Hidden Markov Model”，这里我主要讲解一些要点和一个例子。
　　下载这个工具包主要是在命令行方式下利用ftp命令，估计有的读者不太习惯这种方式，所以我在网络硬盘上上传了一个已下载的版本，有需要的读者可以去这个地址下载： solaris.tar.gz。
　　首先对这个工具包解压：tar -zxvf solaris.tar.gz
　　主要包括几个perl脚本，UMDHMM编译后生成的几个可执行程序以及两个样例文件夹，需要注意的是，几个perl脚本需要根据你所使用的环境修改perl的执行路径，另外UMDHMM的几个可执行程序是Resnik教授在Solaris 5.5系统下编译的，并不适用于其他操作系统，因此最好自己单独编译一下UMDHMM，关于UMDHMM的编译和使用，不太清楚的读者可以先看一下我之前写得一点介绍：UMDHMM。
　　对于这几个perl脚本，需要作一点预处理，第一使其可执行：chmod u+x *.pl 或 chmod 755 *.pl；第二，修改每个脚本的perl解释器目录，由于我用的是ubuntu9.04，所以处理的方法是，注释掉第一行，将第二行”/usr/local/bin/perl5“修改为“/usr/bin/perl”。
　　修改完毕perl脚本使其可执行之后，就可以进入example0目录进行练习了：cd example0
　　example0目录下有一个example0.train文件，只有一行，但是包含了一百句英语句子，这一百句英语句子只用了11个单词和两个标点符号”.”和“？”生成，是一个“似英语”句子生成器生成的，主目录下有这个程序，是lisp程序写的，我不明白怎么使用。如下所示部分句子：
the plane can fly . the typical plane can [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/several-different-programming-language-version-of-hmm' rel='bookmark' title='Permanent Link: 几种不同程序语言的HMM版本'>几种不同程序语言的HMM版本</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-four-hidden-markov-models' rel='bookmark' title='Permanent Link: HMM学习最佳范例四：隐马尔科夫模型'>HMM学习最佳范例四：隐马尔科夫模型</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-three-hidden-patterns' rel='bookmark' title='Permanent Link: HMM学习最佳范例三：隐藏模式'>HMM学习最佳范例三：隐藏模式</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例七：前向-后向算法5'>HMM学习最佳范例七：前向-后向算法5</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>　　原计划这一节讲解如何利用UMDHMM这个HMM工具包来实现一个toy版本的HMM词性标注器，自己也写了几个相关的小脚本，不过由于处理过程中需要借用Philip Resnik教授写的另外几个小脚本，所以这里先介绍一下他的工作。<span id="more-2577"></span><br />
　　Resnik教授利用UMDHMM写了一个关于如何使用隐马尔科夫模型的介绍和练习，主要目标包括以下四个方面：<br />
　　1、 在一个“似英语”的文本上训练一个HMM模型（Train an HMM on a sample of English-like text ）；<br />
　　2、对于训练好的模型进行检测（Inspect the resulting model）；<br />
　　3、根据训练好的模型随机生成句子（Generate sentences at random from the model）；<br />
　　4、对于测试句子寻找最可能隐藏状态序列（Create test sentences and find the most likely hidden state sequence）。<br />
　　我的工作和Resnik教授的主要区别再于，他的训练集没有进行词性标注，利用了前向－后向算法生成HMM模型，并且需要读者有一定想象能力来作虚拟词性标注；而我所用的训练集是有标注的，主要是通过统计的方法生成HMM模型，并且对于测试集标注是直观的。但是，殊途同归，都是为了建立一个HMM模型，都是为了能利用UMDHMM。<br />
　　关于如何下载和使用这个工具包具体请参考“<a href="http://www.umiacs.umd.edu/~resnik/nlstat_tutorial_summer1998/Lab_hmm.html"target=_blank>Exercise: Using a Hidden Markov Model</a>”，这里我主要讲解一些要点和一个例子。<br />
　　下载这个工具包主要是在命令行方式下利用ftp命令，估计有的读者不太习惯这种方式，所以我在网络硬盘上上传了一个已下载的版本，有需要的读者可以去这个地址下载： <a href="http://www.xun6.com/file/108fa6ae5/solaris.tar.gz.html"target=_blank>solaris.tar.gz</a>。<br />
　　首先对这个工具包解压：tar -zxvf solaris.tar.gz<br />
　　主要包括几个perl脚本，UMDHMM编译后生成的几个可执行程序以及两个样例文件夹，需要注意的是，几个perl脚本需要根据你所使用的环境修改perl的执行路径，另外UMDHMM的几个可执行程序是Resnik教授在Solaris 5.5系统下编译的，并不适用于其他操作系统，因此最好自己单独编译一下UMDHMM，关于UMDHMM的编译和使用，不太清楚的读者可以先看一下我之前写得一点介绍：<a href="http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-4">UMDHMM</a>。<br />
　　对于这几个perl脚本，需要作一点预处理，第一使其可执行：chmod u+x *.pl 或 chmod 755 *.pl；第二，修改每个脚本的perl解释器目录，由于我用的是ubuntu9.04，所以处理的方法是，注释掉第一行，将第二行”/usr/local/bin/perl5“修改为“/usr/bin/perl”。<br />
　　修改完毕perl脚本使其可执行之后，就可以进入example0目录进行练习了：cd example0<br />
　　example0目录下有一个example0.train文件，只有一行，但是包含了一百句英语句子，这一百句英语句子只用了11个单词和两个标点符号”.”和“？”生成，是一个“似英语”句子生成器生成的，主目录下有这个程序，是lisp程序写的，我不明白怎么使用。如下所示部分句子：</p>
<blockquote><p>the plane can fly . the typical plane can see the plane . a typical fly can see . who might see ? the large can might see a can . the can can destroy a large can … </p></blockquote>
<p>　　对于这个训练集，Resnik教授建议读者写一个简单的词性列表，并尝试为每一个单词分配一个词性标记，并且同一个单词可以有不同的标记。注意这个练习并不是要在这个文件中进行，可以在别的地方，譬如纸上或者心里都可以，不做也行的。我就偷懒了，因为不知道如何标记，并且手工标记的工作量较大，我用了一个基于Brown语料库训练的词性标注器标注了一下，这个之后再详细说明。<br />
　　由于UMDHMM这个工具包处理的都是数字而非符号，所以需要先将这个训练集转换为数字序列，由create_key.pl这个脚本完成：<br />
　　../create_key.pl example0.key < example0.train > example0.seq<br />
　　这一步生成两个文件：example0.key及example0.seq，前者主要将训练集中出现的单词符号映射为数字编号,如：</p>
<blockquote><p>1        the<br />
2        plane<br />
8        a<br />
4        fly<br />
3        can<br />
7        see<br />
12       large<br />
11       ?<br />
10       might<br />
9        who<br />
6        typical<br />
5        .<br />
13       destroy
</p></blockquote>
<p>　　后者主要根据example0.key中的编号对训练集进行转换，并且形式为UMDHH中的训练集输入形式，如：</p>
<blockquote><p>T= 590<br />
1 2 3 4 5 1 6 2 3 7 1 2 5 8 6 4 3 7 5 9 10 7 11 1 12 3 10 7 8 3 5 1 3 3 13 8 12 3 5 9 10 7 11 9 10 4 11 9 3 4 11 1 3 10 7 5 1 2 3 4 8 6 4 5 9 3 4 11 1 12 4 3 4 5 9 3 7 11 9 3 7 8 3 11&#8230;</p></blockquote>
<p>　　其中T代表了训练集中的单词符号数目。<br />
　　今晚有点晚了，先到此为止吧，明晚继续！</p>
<p>未完待续：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4">词性标注4</a></p>
<p>注：原创文章，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3">http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/several-different-programming-language-version-of-hmm' rel='bookmark' title='Permanent Link: 几种不同程序语言的HMM版本'>几种不同程序语言的HMM版本</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-four-hidden-markov-models' rel='bookmark' title='Permanent Link: HMM学习最佳范例四：隐马尔科夫模型'>HMM学习最佳范例四：隐马尔科夫模型</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-three-hidden-patterns' rel='bookmark' title='Permanent Link: HMM学习最佳范例三：隐藏模式'>HMM学习最佳范例三：隐藏模式</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例七：前向-后向算法5'>HMM学习最佳范例七：前向-后向算法5</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HMM在自然语言处理中的应用一：词性标注2</title>
		<link>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2</link>
		<comments>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2#comments</comments>
		<pubDate>Sat, 07 Nov 2009 10:52:17 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[隐马尔科夫模型]]></category>
		<category><![CDATA[Brown语料库]]></category>
		<category><![CDATA[hmm]]></category>
		<category><![CDATA[hmm应用]]></category>
		<category><![CDATA[数学建模]]></category>
		<category><![CDATA[词性标注]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=2519</guid>
		<description><![CDATA[　　上一节我们对自然语言处理中词性标注的基本问题进行了描述，从本节开始我们将详细介绍HMM与词性标注的关系以及如何利用HMM进行词性标注。首先回顾一下隐马尔科夫模型(HMM)的定义和三大基本问题，并由此与词性标注的基本问题进行一个对比。
　　隐马尔科夫模型(HMM)是什么？说白了，就是一个数学模型，用一堆数学符号和参数表示而已，包括隐藏状态集合、观察符号集合、初始概率向量, 状态转移矩阵A，混淆矩阵B。
　　隐马尔科夫模型(HMM)的三大基本问题与解决方案包括：
　　1. 对于一个观察序列匹配最可能的系统——评估，使用前向算法（forward algorithm）解决；
　　2. 对于已生成的一个观察序列，确定最可能的隐藏状态序列——解码，使用维特比算法（Viterbi algorithm）解决；
　　3. 对于已生成的观察序列，决定最可能的模型参数——学习，使用前向-后向算法（forward-backward algorithm）解决。
　　回顾完HMM，这里暂且先放下词性标注，瞎扯一下数学建模。
　　记得以前在大学里参加数学建模竞赛，本着拿奖的目的，稀里糊涂的就和几个同学一起组队参加，并没有仔细考虑过数学建模的本质到底是什么。反正感觉和平常作数学题不同，数学题都是定义好的，只需给出一个解答就行，而数学建模给的问题都很实际，并没有按数学题的形式出题，不仅要把这个实际问题转化为一个合理的数学问题，还要给出一个解答，由于自己概括问题的能力有限，在数学建模竞赛上也基本毫无建树。
　　我在Google上搜索了一下数学建模的定义，有好几种解释，觉得下面这个最符合本质：
　　把现实世界中的实际问题加以提炼，抽象为数学模型，求出模型的 解，验证模型的合理性，并用该数学模型所提供的解答来解释现实问题，我们把 数学知识的这一应用过程称为数学 建模。
　　好了，这就是数学建模，如果把词性标注问题作为一个数学建模的题目来出，该如何作答？套用上面的定义，可以解释为：
　　1、对词性标注问题进行提炼：词性标注本质上是一个分类问题，对于句子中的每一个单词W，找到一个合适的词类类别T，也就是词性标记，不过词性标注考虑的是整体标记的好坏，既整个句子的序列标记问题；
　　2、抽象为数学模型：对于分类问题，有很多现成的数学模型和框架可以套用，譬如HMM、最大熵模型、条件随机场、SVM等等；
　　3、求出模型的解：上述模型和框架一旦可以套用，如何求解就基本确定好了，就像HMM中不仅描述了三大基本问题，并相应的给出了求解方案一样；
　　4、验证模型的合理性：就是词性标注的准确率等评测指标了，在自然语言处理中属于必不可少的评测环节；
　　5、解释现实问题：如果词性标注的各项指标够好，就可以利用该数学模型构造一个词性标注器来解决某种语言的标注问题了！
　　词性标注的数学建模就这样了，自然语言处理中的多数分类问题与此相似。这里讲得是HMM的应用，所以其他模型暂且不表，以后有机会有条件了我们再说。
　　如何建立一个与词性标注问题相关联的HMM模型？首先必须确定HMM模型中的隐藏状态和观察符号，也可以说成观察状态，由于我们是根据输入句子输出词性序列，因此可以将词性标记序列作为隐藏状态，而把句子中的单词作为观察符号，那么对于Brown语料库来说，就有87个隐藏状态（标记集）和将近4万多个观察符号（词型）。
　　确定了隐藏状态和观察符号，我们就可以根据训练语料库的性质来学习HMM的各项参数了。如果训练语料已经做好了标注，那么学习这个HMM模型的问题就比较简单，只需要计数就可以完成HMM各个模型参数的统计，如标记间的状态转移概率可以通过如下公式求出：
　　　　　　　　P（Ti&#124;Tj) = C(Tj,Tk)/C(Tj)
　　而每个状态（标记）随对应的符号（单词）的发射概率可由下式求出：
　　　　　　　　P（Wm&#124;Tj) = C(Wm,Tj)/C(Tj)
　　其中符号C代表的是其括号内因子在语料库中的计数。
　　如果训练语料库没有标注，那么HMM的第三大基本问题“学习”就可以派上用处了，通过一些辅助资源，如词典等，利用前向－后向算法也可以学习一个HMM模型，不过这个模型比之有标注语料库训练出来的模型要差一些。
　　总之，我们已经训练了一个与语料库对应的HMM词性标注模型，那么如何利用这个模型来解决词性标注问题呢？当然是采用维特比算法解码了， HMM模型第二大基本问题就是专门来解决这个问题的。
　　说完了如何建模，下一节我们将利用UMDHMM这个HMM工具包来实现一个toy版本的HMM词性标注器。
未完待续：词性标注3
注：原创文章，转载请注明出处“我爱自然语言处理”：www.52nlp.cn
本文链接地址：http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2










相关文章:HMM在自然语言处理中的应用一：词性标注3
HMM在自然语言处理中的应用一：词性标注1
HMM在自然语言处理中的应用一：词性标注6
HMM在自然语言处理中的应用一：词性标注4
HMM在自然语言处理中的应用一：词性标注5
HMM学习最佳范例七：前向-后向算法4
HMM学习最佳范例四：隐马尔科夫模型
MIT自然语言处理第四讲：标注（第四部分）
HMM学习最佳范例五：前向算法3
MIT自然语言处理第四讲：标注（第三部分）



相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-4' rel='bookmark' title='Permanent Link: HMM学习最佳范例七：前向-后向算法4'>HMM学习最佳范例七：前向-后向算法4</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-four-hidden-markov-models' rel='bookmark' title='Permanent Link: HMM学习最佳范例四：隐马尔科夫模型'>HMM学习最佳范例四：隐马尔科夫模型</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-3' rel='bookmark' title='Permanent Link: HMM学习最佳范例五：前向算法3'>HMM学习最佳范例五：前向算法3</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>　　上一节我们对自然语言处理中词性标注的基本问题进行了描述，从本节开始我们将详细介绍HMM与词性标注的关系以及如何利用HMM进行词性标注。首先回顾一下隐马尔科夫模型(HMM)的定义和三大基本问题，并由此与词性标注的基本问题进行一个对比。<span id="more-2519"></span><br />
　　隐马尔科夫模型(HMM)是什么？说白了，就是一个数学模型，用一堆数学符号和参数表示而已，包括隐藏状态集合、观察符号集合、初始概率向量<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_994.5_8edb2cf68079344a2edd739531259f6c.png" style="vertical-align:-5.5px; display: inline-block ;" alt="pi" title="pi"/>, 状态转移矩阵A，混淆矩阵B。<br />
　　隐马尔科夫模型(HMM)的三大基本问题与解决方案包括：<br />
　　1. 对于一个观察序列匹配最可能的系统——评估，使用前向算法（forward algorithm）解决；<br />
　　2. 对于已生成的一个观察序列，确定最可能的隐藏状态序列——解码，使用维特比算法（Viterbi algorithm）解决；<br />
　　3. 对于已生成的观察序列，决定最可能的模型参数——学习，使用前向-后向算法（forward-backward algorithm）解决。<br />
　　回顾完HMM，这里暂且先放下词性标注，瞎扯一下数学建模。<br />
　　记得以前在大学里参加数学建模竞赛，本着拿奖的目的，稀里糊涂的就和几个同学一起组队参加，并没有仔细考虑过数学建模的本质到底是什么。反正感觉和平常作数学题不同，数学题都是定义好的，只需给出一个解答就行，而数学建模给的问题都很实际，并没有按数学题的形式出题，不仅要把这个实际问题转化为一个合理的数学问题，还要给出一个解答，由于自己概括问题的能力有限，在数学建模竞赛上也基本毫无建树。<br />
　　我在Google上搜索了一下数学建模的定义，有好几种解释，觉得下面这个最符合本质：<br />
　　把现实世界中的实际问题加以提炼，抽象为数学模型，求出模型的 解，验证模型的合理性，并用该数学模型所提供的解答来解释现实问题，我们把 数学知识的这一应用过程称为数学 建模。<br />
　　好了，这就是数学建模，如果把词性标注问题作为一个数学建模的题目来出，该如何作答？套用上面的定义，可以解释为：<br />
　　1、对词性标注问题进行提炼：词性标注本质上是一个分类问题，对于句子中的每一个单词W，找到一个合适的词类类别T，也就是词性标记，不过词性标注考虑的是整体标记的好坏，既整个句子的序列标记问题；<br />
　　2、抽象为数学模型：对于分类问题，有很多现成的数学模型和框架可以套用，譬如HMM、最大熵模型、条件随机场、SVM等等；<br />
　　3、求出模型的解：上述模型和框架一旦可以套用，如何求解就基本确定好了，就像HMM中不仅描述了三大基本问题，并相应的给出了求解方案一样；<br />
　　4、验证模型的合理性：就是词性标注的准确率等评测指标了，在自然语言处理中属于必不可少的评测环节；<br />
　　5、解释现实问题：如果词性标注的各项指标够好，就可以利用该数学模型构造一个词性标注器来解决某种语言的标注问题了！<br />
　　词性标注的数学建模就这样了，自然语言处理中的多数分类问题与此相似。这里讲得是HMM的应用，所以其他模型暂且不表，以后有机会有条件了我们再说。<br />
　　如何建立一个与词性标注问题相关联的HMM模型？首先必须确定HMM模型中的隐藏状态和观察符号，也可以说成观察状态，由于我们是根据输入句子输出词性序列，因此可以将词性标记序列作为隐藏状态，而把句子中的单词作为观察符号，那么对于Brown语料库来说，就有87个隐藏状态（标记集）和将近4万多个观察符号（词型）。<br />
　　确定了隐藏状态和观察符号，我们就可以根据训练语料库的性质来学习HMM的各项参数了。如果训练语料已经做好了标注，那么学习这个HMM模型的问题就比较简单，只需要计数就可以完成HMM各个模型参数的统计，如标记间的状态转移概率可以通过如下公式求出：<br />
　　　　　　　　P（Ti|Tj) = C(Tj,Tk)/C(Tj)<br />
　　而每个状态（标记）随对应的符号（单词）的发射概率可由下式求出：<br />
　　　　　　　　P（Wm|Tj) = C(Wm,Tj)/C(Tj)<br />
　　其中符号C代表的是其括号内因子在语料库中的计数。<br />
　　如果训练语料库没有标注，那么HMM的第三大基本问题“学习”就可以派上用处了，通过一些辅助资源，如词典等，利用前向－后向算法也可以学习一个HMM模型，不过这个模型比之有标注语料库训练出来的模型要差一些。<br />
　　总之，我们已经训练了一个与语料库对应的HMM词性标注模型，那么如何利用这个模型来解决词性标注问题呢？当然是采用维特比算法解码了， HMM模型第二大基本问题就是专门来解决这个问题的。<br />
　　说完了如何建模，下一节我们将利用<a href="http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-4">UMDHMM</a>这个HMM工具包来实现一个toy版本的HMM词性标注器。</p>
<p>未完待续：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3">词性标注3</a></p>
<p>注：原创文章，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2">http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注1'>HMM在自然语言处理中的应用一：词性标注1</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-seven-forward-backward-algorithm-4' rel='bookmark' title='Permanent Link: HMM学习最佳范例七：前向-后向算法4'>HMM学习最佳范例七：前向-后向算法4</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-four-hidden-markov-models' rel='bookmark' title='Permanent Link: HMM学习最佳范例四：隐马尔科夫模型'>HMM学习最佳范例四：隐马尔科夫模型</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-3' rel='bookmark' title='Permanent Link: HMM学习最佳范例五：前向算法3'>HMM学习最佳范例五：前向算法3</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HMM在自然语言处理中的应用一：词性标注1</title>
		<link>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1</link>
		<comments>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1#comments</comments>
		<pubDate>Sun, 01 Nov 2009 11:06:31 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[隐马尔科夫模型]]></category>
		<category><![CDATA[Brown语料库]]></category>
		<category><![CDATA[hmm]]></category>
		<category><![CDATA[hmm应用]]></category>
		<category><![CDATA[统计自然语言处理基础]]></category>
		<category><![CDATA[自然语言处理综论]]></category>
		<category><![CDATA[词性标注]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=2480</guid>
		<description><![CDATA[　　词性标注（Part-of-Speech tagging 或 POS tagging)是指对于句子中的每个词都指派一个合适的词性，也就是要确定每个词是名词、动词、形容词或其他词性的过程，又称词类标注或者简称标注。词性标注是自然语言处理中的一项基础任务，在语音识别、信息检索及自然语言处理的许多领域都发挥着重要的作用。因此，在关于自然语言处理的书籍中，都会将词性标注单列一章重点讲解，对此有兴趣的读者可参考《自然语言处理综论》第一版第8章或《统计自然语言处理基础》第10章，本文部分内容也参考自这两本自然语言处理的经典书籍。
　　我们以Brown语料库中的句子为例，词性标注的任务指的是，对于输入句子：
　The Fulton County Grand Jury said Friday an investigation of Atlanta&#8217;s recent primary election produced &#8220; no evidence &#8221; that any irregularities took place .
　　需要为句子中的每个单词标上一个合适的词性标记，既输出含有词性标记句子：
　The/at-tl Fulton/np-tl County/nn-tl Grand/jj-tl Jury/nn-tl said/vbd Friday/nr an/at investigation/nn of/in Atlanta&#8217;s/np$ recent/jj primary/jj election/nn produced/vbn &#8220;/&#8220; no/at evidence/nn &#8221;/&#8221; that/cs any/dti irregularities/nns took/vbd place/nn ./.
　　在进行词性标注时，前提条件之一便是选择什么样的标记集？Brown语料库标记集有87个，而英语中其他标记集多数是从Brown语料库中的标记集发展而来的，如最常用的Penn Treebank标记集，包含45个标记，是小标记集。汉语标记集中常用的有北大《人民日报》语料库词性标记集、计算所汉语词性标记集等。
　　关于Brwon语料库标记集的详细信息可参考：		　　　
　　　http://www.comp.leeds.ac.uk/amalgam/tagsets/brown.html
　　关于计算所汉语词性标记集的详细信息可参考：
　　　http://www.ictclas.org/ictclas_docs_003.html
　　在确定使用某个标记集之后，下一步便是如何进行词性标注了！如果每个单词仅仅对应一个词性标记，那么词性标注就非常容易了。但是语言本身的复杂性导致了并非每一个单词只有一个词性标记，而存在一部分单词有多个词性标记可以选择，如book这个单词，既可以是动词（book that [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第一部分）'>MIT自然语言处理第四讲：标注（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>　　词性标注（Part-of-Speech tagging 或 POS tagging)是指对于句子中的每个词都指派一个合适的词性，也就是要确定每个词是名词、动词、形容词或其他词性的过程，又称词类标注或者简称标注。词性标注是自然语言处理中的一项基础任务，在语音识别、信息检索及自然语言处理的许多领域都发挥着重要的作用。因此，在关于自然语言处理的书籍中，都会将词性标注单列一章重点讲解，对此有兴趣的读者可参考《自然语言处理综论》第一版第8章或《统计自然语言处理基础》第10章，本文部分内容也参考自这两本自然语言处理的经典书籍。<span id="more-2480"></span><br />
　　我们以Brown语料库中的句子为例，词性标注的任务指的是，对于输入句子：<br />
　The Fulton County Grand Jury said Friday an investigation of Atlanta&#8217;s recent primary election produced &#8220; no evidence &#8221; that any irregularities took place .<br />
　　需要为句子中的每个单词标上一个合适的词性标记，既输出含有词性标记句子：<br />
　The/at-tl Fulton/np-tl County/nn-tl Grand/jj-tl Jury/nn-tl said/vbd Friday/nr an/at investigation/nn of/in Atlanta&#8217;s/np$ recent/jj primary/jj election/nn produced/vbn &#8220;/&#8220; no/at evidence/nn &#8221;/&#8221; that/cs any/dti irregularities/nns took/vbd place/nn ./.<br />
　　在进行词性标注时，前提条件之一便是选择什么样的标记集？Brown语料库标记集有87个，而英语中其他标记集多数是从Brown语料库中的标记集发展而来的，如最常用的Penn Treebank标记集，包含45个标记，是小标记集。汉语标记集中常用的有北大《人民日报》语料库词性标记集、计算所汉语词性标记集等。<br />
　　关于Brwon语料库标记集的详细信息可参考：		　　　<br />
　　　<a href="http://www.comp.leeds.ac.uk/amalgam/tagsets/brown.html"target=_blank>http://www.comp.leeds.ac.uk/amalgam/tagsets/brown.html</a><br />
　　关于计算所汉语词性标记集的详细信息可参考：<br />
　　　<a href="http://www.ictclas.org/ictclas_docs_003.html"target=_blank>http://www.ictclas.org/ictclas_docs_003.html</a><br />
　　在确定使用某个标记集之后，下一步便是如何进行词性标注了！如果每个单词仅仅对应一个词性标记，那么词性标注就非常容易了。但是语言本身的复杂性导致了并非每一个单词只有一个词性标记，而存在一部分单词有多个词性标记可以选择，如book这个单词，既可以是动词（book that flight)，也可以是名词(hand me that book)，因此，词性标注的关键问题就是消解这样的歧义，也就是对于句子中的每一个单词在一定的上下文中选择恰如其分的标记。<br />
　　关于词性标注歧义问题，对Brown语料库进行统计，按歧义程度排列的词型数目（The number of word types in Brown corpus by degree of ambiguity）DeRose(1988)给出了如下的标记歧义表：<br />
　　无歧义（Unambiguous）只有1个标记： 35,340<br />
　　　　歧义（Ambiguous） 有2-7个标记：  	4,100<br />
　　　　　　　　　　　　　　　　2个标记：3,764<br />
　　　　　　　　　　　　　　　　3个标记：264<br />
　　　　　　　　　　　　　　　　4个标记：61<br />
　　　　　　　　　　　　　　　　5个标记：12<br />
　　　　　　　　　　　　　　　　6个标记：2<br />
　　　　　　　　　　　　　　　　7个标记：1<br />
　　可见英语中的大多数单词都是没有歧义的，也就是这些单词只有一个单独的标记。但是，英语中的最常用单词很多都是有歧义的，因此，任何一个词性标注算法的关键归根结底还是如何解决词性标注中的歧义消解问题。<br />
　　大多数的标注算法可以归纳为三类：一类是基于规则的标注算法（rule-based tagger)，一类是随机标注算法（stochastic tagger)，最后一类是混合型的标注算法。基于规则的标注算法一般都包括一个手工制作的歧义消解规则库；随机标注算法一般会使用一个训练语料库来计算在给定的上下文中某一给定单词具有某一给定标记的概率，如基于HMM的标注算法；而混合型标注算法具有上述两种算法的特点，如TBL标注算法。<br />
　　关于词性标注的基本问题本节就到此为止了，也算是一点准备工作，下一节我们将进入与HMM相关的词性标注问题的正题！</p>
<p>未完待续：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2">词性标注2</a></p>
<p>注：原创文章，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1">http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-6' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注6'>HMM在自然语言处理中的应用一：词性标注6</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-2' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注2'>HMM在自然语言处理中的应用一：词性标注2</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-3' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注3'>HMM在自然语言处理中的应用一：词性标注3</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-4' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注4'>HMM在自然语言处理中的应用一：词性标注4</a></li>
<li><a href='http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-5' rel='bookmark' title='Permanent Link: HMM在自然语言处理中的应用一：词性标注5'>HMM在自然语言处理中的应用一：词性标注5</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第一部分）'>MIT自然语言处理第四讲：标注（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/hmm-application-in-natural-language-processing-one-part-of-speech-tagging-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）</title>
		<link>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part</link>
		<comments>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part#comments</comments>
		<pubDate>Tue, 05 May 2009 00:00:26 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[MIT自然语言处理]]></category>
		<category><![CDATA[最大熵模型]]></category>
		<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[对数线性模型]]></category>
		<category><![CDATA[常宝宝]]></category>
		<category><![CDATA[开放式课程]]></category>
		<category><![CDATA[最大熵]]></category>
		<category><![CDATA[词性]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=1501</guid>
		<description><![CDATA[自然语言处理：最大熵和对数线性模型
Natural Language Processing: Maximum Entropy and Log-linear Models 
作者：Regina Barzilay（MIT,EECS Department, October 1, 2004)
译者：我爱自然语言处理（www.52nlp.cn ，2009年5月5日）
二、	最大熵（Maximum Entropy）：
b)	最大熵模型(Maximum Entropy Modeling)
　iii.	约束条件（Constraint）：
　　每个特征的观察样本期望值与特征模型期望值相一致（observed expectation of each feature has to be the same as the model’s expectation of the feature）：
 　　
　iv.	最大熵原理(Principle of Maximum Entropy)：
　　将已知事实作为制约条件，求得可使熵最大化的概率分布作为正确的概率分布：
　　　　　
　v.	补充：
　　自然语言处理中很多问题都可以归结为统计分类问题，很多机器学习方法在这里都能找到应用，在自然语言处理中，统计分类表现在要估计类a 和某上下文b 共现的概率P(a,b) ，不同的问题，类a 和上下文b 的内容和含义也不相同。在词性标注中是类的含义是词性标注集中的词类标记，而上下文指的是当前被处理的词前面一个词及词类，后面一个词及词类或前后若干个词和词类。通常上下文有时是词，有时是词类标记，有时是历史决策等等。大规模语料库中通常包含a 和b 的共现信息，但b 在语料库中的出现常常是稀疏的，要对所有可能的(a,b)计算出可靠的P(a,b) ，语料库规模往往总是不够的。问题是要发现一个方法，利用这个方法在数据稀疏的条件下可靠的估计P(a,b) 。不同的方法可能采用不同的估计方法。
　　最大熵模型的优点是：在建模时，试验者只需要集中精力选择特征，而不需要花费精力考虑如何使用这些特征。而且可以很灵活地选择特征，使用各种不同类型的特征，特征容易更换。利用最大熵建模，一般也不需要做在其它方法建模中常常使用的独立性假设，参数平滑可以通过特征选择的方式加以考虑，无需专门使用常规平滑算法单独考虑，当然也不排除使用经典平滑算法进行平滑。每个特征对概率分布的贡献则由参数α决定，该参数可以通过一定的算法迭代训练得到。
（注：以上两段转自北大常宝宝老师的《自然语言处理的最大熵模型》）
三、	最大熵模型详述
a)	概要（Outline）
　i.	我们将首先证明（We will first show that）满足上述条件的概率分布p*具有如下的形式：
 　　　　　
　其中是一个归一化常数，α是模型参数（where  is [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fifth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第三讲：概率语言模型（第三部分）'>MIT自然语言处理第三讲：概率语言模型（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-first-lesson-introduction-and-overview-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第一讲：简介和概述（第三部分）'>MIT自然语言处理第一讲：简介和概述（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/maximum-entropy-model-tutorial-reading' rel='bookmark' title='Permanent Link: 最大熵模型文献阅读指南'>最大熵模型文献阅读指南</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>自然语言处理：最大熵和对数线性模型</strong><br />
Natural Language Processing: Maximum Entropy and Log-linear Models <span id="more-1501"></span><br />
作者：Regina Barzilay（MIT,EECS Department, October 1, 2004)<br />
译者：<a href="http://www.52nlp.cn">我爱自然语言处理</a>（<a href="http://www.52nlp.cn">www.52nlp.cn</a> ，2009年5月5日）</p>
<p><strong>二、	最大熵（Maximum Entropy）：</strong><br />
b)	最大熵模型(Maximum Entropy Modeling)<br />
　iii.	约束条件（Constraint）：<br />
　　每个特征的观察样本期望值与特征模型期望值相一致（observed expectation of each feature has to be the same as the model’s expectation of the feature）：<br />
 　　<img src="http://www.52nlp.cn/images/Constraint.jpg" alt="最大熵模型约束条件" /><br />
　iv.	最大熵原理(Principle of Maximum Entropy)：<br />
　　将已知事实作为制约条件，求得可使熵最大化的概率分布作为正确的概率分布：<br />
　　　　　<img src="http://www.52nlp.cn/images/Principle.jpg" alt="最大熵模型原理" /><br />
　v.	补充：<br />
　　自然语言处理中很多问题都可以归结为统计分类问题，很多机器学习方法在这里都能找到应用，在自然语言处理中，统计分类表现在要估计类a 和某上下文b 共现的概率P(a,b) ，不同的问题，类a 和上下文b 的内容和含义也不相同。在词性标注中是类的含义是词性标注集中的词类标记，而上下文指的是当前被处理的词前面一个词及词类，后面一个词及词类或前后若干个词和词类。通常上下文有时是词，有时是词类标记，有时是历史决策等等。大规模语料库中通常包含a 和b 的共现信息，但b 在语料库中的出现常常是稀疏的，要对所有可能的(a,b)计算出可靠的P(a,b) ，语料库规模往往总是不够的。问题是要发现一个方法，利用这个方法在数据稀疏的条件下可靠的估计P(a,b) 。不同的方法可能采用不同的估计方法。<br />
　　最大熵模型的优点是：在建模时，试验者只需要集中精力选择特征，而不需要花费精力考虑如何使用这些特征。而且可以很灵活地选择特征，使用各种不同类型的特征，特征容易更换。利用最大熵建模，一般也不需要做在其它方法建模中常常使用的独立性假设，参数平滑可以通过特征选择的方式加以考虑，无需专门使用常规平滑算法单独考虑，当然也不排除使用经典平滑算法进行平滑。每个特征对概率分布的贡献则由参数α决定，该参数可以通过一定的算法迭代训练得到。<br />
（注：以上两段转自北大常宝宝老师的《自然语言处理的最大熵模型》）</p>
<p><strong>三、	最大熵模型详述</strong><br />
a)	概要（Outline）<br />
　i.	我们将首先证明（We will first show that）满足上述条件的概率分布p*具有如下的形式：<br />
 　　　　　<img src="http://www.52nlp.cn/images/p.jpg" alt="概览分布P" /><br />
　其中<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_994.5_8edb2cf68079344a2edd739531259f6c.png" style="vertical-align:-5.5px; display: inline-block ;" alt="pi" title="pi"/>是一个归一化常数，α是模型参数（where <img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_994.5_8edb2cf68079344a2edd739531259f6c.png" style="vertical-align:-5.5px; display: inline-block ;" alt="pi" title="pi"/> is a normalization constant and the α’s are the model parameters）<br />
　ii.	然后我们将考虑搜寻α的参数估计过程（Then, we will consider an estimation procedure for finding the α’s）<br />
b)	数学符号表示（Notations）<br />
　i.	χ是可能的“历史”集（χis the set of possible histories）<br />
　ii.	γ是所有可能的标记集（γ is the set of all possible tags）<br />
　iii.	S是事件训练样本集（S finite training sample of events）<br />
　iv.	p’(x)是S中x的观察概率（p’(x)observed probability of x in S）<br />
　v.	p(x)是x的模型概率（p(x) the model’s probability of x）<br />
　vi.	其它符号公式定义如下：<br />
　　　　<img src="http://www.52nlp.cn/images/Notations.jpg" alt="数学符号表示" /></p>
<p>未完待续:<a href="http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part">第四部分</a></p>
<p>附：课程及课件pdf下载<a href="http://people.csail.mit.edu/regina/6881/"target="_blank">MIT英文网页</a>地址：<br />
　　　http://people.csail.mit.edu/regina/6881/</p>
<p>注：本文遵照麻省理工学院开放式课程<a href="http://ocw.mit.edu/OcwWeb/web/terms/terms/index.htm"target="_blank">创作共享规范</a>翻译发布，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part/">http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part/</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fifth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第三讲：概率语言模型（第三部分）'>MIT自然语言处理第三讲：概率语言模型（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-first-lesson-introduction-and-overview-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第一讲：简介和概述（第三部分）'>MIT自然语言处理第一讲：简介和概述（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/maximum-entropy-model-tutorial-reading' rel='bookmark' title='Permanent Link: 最大熵模型文献阅读指南'>最大熵模型文献阅读指南</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）</title>
		<link>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part</link>
		<comments>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part#comments</comments>
		<pubDate>Wed, 29 Apr 2009 00:00:43 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[MIT自然语言处理]]></category>
		<category><![CDATA[最大熵模型]]></category>
		<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[对数线性模型]]></category>
		<category><![CDATA[常宝宝]]></category>
		<category><![CDATA[开放式课程]]></category>
		<category><![CDATA[最大熵]]></category>
		<category><![CDATA[词性]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=1475</guid>
		<description><![CDATA[自然语言处理：最大熵和对数线性模型
Natural Language Processing: Maximum Entropy and Log-linear Models 
作者：Regina Barzilay（MIT,EECS Department, October 1, 2004)
译者：我爱自然语言处理（www.52nlp.cn ，2009年4月29日）
一、	词性标注（POS tagging）：
c)	特征向量表示（Feature Vector Representation）
　i.	一个特征就是一个函数f（A feature is a function f ）：

　ii.	我们有m个特征fk，k = 1…m（We have m features fk for k =1&#8230;m）
d)	词性表示（POS Representation）
　i.	对于所有的单纯/标记对的单词/标记特征，（Word/tag features for all word/tag pairs）：
 
ii.	对于所有特定长度的前缀/后缀的拼写特征（Spelling features for all prefixes/suffixes of certain length）：
  
iii.	上下文特征（Contextual features）：
  
iv.	对于一个给定的“历史”x ∈ X ，每一个γ中的标记都被映射到一个不同的特征向量（For [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fifth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第三讲：概率语言模型（第二部分）'>MIT自然语言处理第三讲：概率语言模型（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-first-lesson-introduction-and-overview-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第一讲：简介和概述（第二部分）'>MIT自然语言处理第一讲：简介和概述（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-second-lesson-word-counting-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第二讲：单词计数（第二部分）'>MIT自然语言处理第二讲：单词计数（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-first-lesson-introduction-and-overview-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第一讲：简介和概述（第三部分）'>MIT自然语言处理第一讲：简介和概述（第三部分）</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>自然语言处理：最大熵和对数线性模型</strong><br />
Natural Language Processing: Maximum Entropy and Log-linear Models <span id="more-1475"></span><br />
作者：Regina Barzilay（MIT,EECS Department, October 1, 2004)<br />
译者：<a href="http://www.52nlp.cn">我爱自然语言处理</a>（<a href="http://www.52nlp.cn">www.52nlp.cn</a> ，2009年4月29日）</p>
<p><strong>一、	词性标注（POS tagging）：</strong><br />
c)	特征向量表示（Feature Vector Representation）<br />
　i.	一个特征就是一个函数f（A feature is a function f ）：<br />
<img src="http://www.52nlp.cn/images/feature-1.jpg" alt="特征函数1" /><br />
　ii.	我们有m个特征fk，k = 1…m（We have m features fk for k =1&#8230;m）<br />
d)	词性表示（POS Representation）<br />
　i.	对于所有的单纯/标记对的单词/标记特征，（Word/tag features for all word/tag pairs）：<br />
 <img src="http://www.52nlp.cn/images/feature-2.jpg" alt="特征函数2" /><br />
ii.	对于所有特定长度的前缀/后缀的拼写特征（Spelling features for all prefixes/suffixes of certain length）：<br />
  <img src="http://www.52nlp.cn/images/feature-3.jpg" alt="特征函数3" /><br />
iii.	上下文特征（Contextual features）：<br />
  <img src="http://www.52nlp.cn/images/feature-4.jpg" alt="特征函数4" /><br />
iv.	对于一个给定的“历史”x ∈ X ，每一个γ中的标记都被映射到一个不同的特征向量（For a given history x ∈ X, each label in γ is mapped to a different feature vector）：<br />
 <img src="http://www.52nlp.cn/images/feature-5.jpg" alt="特征向量" /><br />
v.	目标（Goal）：学习一个条件概率P(tag|history)（learn a conditional probability P(tag|history) </p>
<p><strong>二、	最大熵（Maximum Entropy）：</strong><br />
a)	例子（Motivating Example）：<br />
　i.	给定约束条件：p(x, 0)+p(y, 0)=0.6，a ∈{x, y}且b ∈0, 1，估计概率分布p(a, b)（Estimate probability distribution p(a, b), given the constraint: p(x, 0) + p(y, 0) =0.6, where a ∈{x, y}and b ∈0, 1））：<br />
 　　　　　　　<img src="http://www.52nlp.cn/images/maxent1.jpg" alt="最大熵模型举例1" /><br />
　ii.	满足约束条件的一种分布（One Way To Satisfy Constraints）：<br />
 　　　　　　　<img src="http://www.52nlp.cn/images/maxent2.jpg" alt="最大熵模型举例2" /><br />
　iii.	满足约束条件的另一种分布（Another Way To Satisfy Constraints）：<br />
 　　　　　　　<img src="http://www.52nlp.cn/images/maxent3.jpg" alt="最大熵模型举例3" /><br />
b)	最大熵模型(Maximum Entropy Modeling)<br />
　i.	给定一个训练样本集，我们希望寻找一个分布符合如下两个条件(Given a set of training examples, we wish to find a distribution which)：<br />
　　1.	满足已知的约束条件（satisfies the input constraints）<br />
　　2.	最大化其不确定性（maximizes the uncertainty）<br />
　ii.	补充：<br />
　　最大熵原理是在1957 年由E.T.Jaynes 提出的，其主要思想是，在只掌握关于未知分布的部分知识时，应该选取符合这些知识但熵值最大的概率分布。因为在这种情况下，符合已知知识的概率分布可能不止一个。我们知道，熵定义的实际上是一个随机变量的不确定性，熵最大的时侯，说明随机变量最不确定，换句话说，也就是随机变量最随机，对其行为做准确预测最困难。从这个意义上讲，那么最大熵原理的实质就是，在已知部分知识的前提下，关于未知分布最合理的推断就是符合已知知识最不确定或最随机的推断，这是我们可以作出的唯一不偏不倚的选择，任何其它的选择都意味着我们增加了其它的约束和假设，这些约束和假设根据我们掌握的信息无法做出。（这一段转自北大常宝宝老师的《自然语言处理的最大熵模型》）</p>
<p>未完待续:<a href="http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part">第三部分</a></p>
<p>附：课程及课件pdf下载<a href="http://people.csail.mit.edu/regina/6881/"target="_blank">MIT英文网页</a>地址：<br />
　　　http://people.csail.mit.edu/regina/6881/</p>
<p>注：本文遵照麻省理工学院开放式课程<a href="http://ocw.mit.edu/OcwWeb/web/terms/terms/index.htm"target="_blank">创作共享规范</a>翻译发布，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part/">http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part/</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fifth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第三讲：概率语言模型（第二部分）'>MIT自然语言处理第三讲：概率语言模型（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-first-lesson-introduction-and-overview-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第一讲：简介和概述（第二部分）'>MIT自然语言处理第一讲：简介和概述（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-second-lesson-word-counting-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第二讲：单词计数（第二部分）'>MIT自然语言处理第二讲：单词计数（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-first-lesson-introduction-and-overview-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第一讲：简介和概述（第三部分）'>MIT自然语言处理第一讲：简介和概述（第三部分）</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</title>
		<link>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part</link>
		<comments>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part#comments</comments>
		<pubDate>Sat, 25 Apr 2009 00:49:05 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[MIT自然语言处理]]></category>
		<category><![CDATA[最大熵模型]]></category>
		<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[TBL]]></category>
		<category><![CDATA[对数线性模型]]></category>
		<category><![CDATA[开放式课程]]></category>
		<category><![CDATA[最大熵]]></category>
		<category><![CDATA[词性]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=1463</guid>
		<description><![CDATA[自然语言处理：最大熵和对数线性模型
Natural Language Processing: Maximum Entropy and Log-linear Models 
作者：Regina Barzilay（MIT,EECS Department, October 1, 2004)
译者：我爱自然语言处理（www.52nlp.cn ，2009年4月25日）
上一讲主要内容回顾（Last time）：
* 基于转换的标注器（Transformation-based tagger）
* 基于隐马尔科夫模型的标注器（HMM-based tagger）
遗留的内容（Leftovers）: 
a) 词性分布（POS distribution）
　i. 在Brown语料库中按歧义程度排列的词型数目（The number of word types in Brown corpus by degree of ambiguity）：
　　无歧义（Unambiguous）只有1个标记： 35,340
　　　　歧义（Ambiguous） 有2-7个标记：  	4,100
　　　　　　　　　　　　　　　　2个标记：3,764
　　　　　　　　　　　　　　　　3个标记：264
　　　　　　　　　　　　　　　　4个标记：61
　　　　　　　　　　　　　　　　5个标记：12
　　　　　　　　　　　　　　　　6个标记：2
　　　　　　　　　　　　　　　　7个标记：1
b) 无监督的TBL（Unsupervised TBL）
　i. 初始化（Initialization）：允许的词性列表（a list of allowable part of speech tags）
　ii.	转换（Transformations）： 在上下文C中将一个单词的标记从χ变为Y (Change the tag of a [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fifth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第一部分）'>MIT自然语言处理第四讲：标注（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-second-lesson-word-counting-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第二讲：单词计数（第一部分）'>MIT自然语言处理第二讲：单词计数（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第三讲：概率语言模型（第一部分）'>MIT自然语言处理第三讲：概率语言模型（第一部分）</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>自然语言处理：最大熵和对数线性模型</strong><br />
Natural Language Processing: Maximum Entropy and Log-linear Models <span id="more-1463"></span><br />
作者：Regina Barzilay（MIT,EECS Department, October 1, 2004)<br />
译者：<a href="http://www.52nlp.cn">我爱自然语言处理</a>（<a href="http://www.52nlp.cn">www.52nlp.cn</a> ，2009年4月25日）</p>
<p><strong>上一讲主要内容回顾（Last time）：</strong><br />
<em>* 基于转换的标注器（Transformation-based tagger）<br />
* 基于隐马尔科夫模型的标注器（HMM-based tagger）</em></p>
<p><strong>遗留的内容（Leftovers）: </strong><br />
a) 词性分布（POS distribution）<br />
　i. 在Brown语料库中按歧义程度排列的词型数目（The number of word types in Brown corpus by degree of ambiguity）：<br />
　　无歧义（Unambiguous）只有1个标记： 35,340<br />
　　　　歧义（Ambiguous） 有2-7个标记：  	4,100<br />
　　　　　　　　　　　　　　　　2个标记：3,764<br />
　　　　　　　　　　　　　　　　3个标记：264<br />
　　　　　　　　　　　　　　　　4个标记：61<br />
　　　　　　　　　　　　　　　　5个标记：12<br />
　　　　　　　　　　　　　　　　6个标记：2<br />
　　　　　　　　　　　　　　　　7个标记：1<br />
b) 无监督的TBL（Unsupervised TBL）<br />
　i. 初始化（Initialization）：允许的词性列表（a list of allowable part of speech tags）<br />
　ii.	转换（Transformations）： 在上下文C中将一个单词的标记从χ变为Y (Change the tag of a word from χ to Y in context C, where γ ∈ χ).<br />
　　例子（Example）: “From NN VBP to VBP if previous tag is NNS”<br />
　iii.	评分标准(Scoring criterion):<br />
　　<img src="http://www.52nlp.cn/images/tbl.png" alt="tbl" /><br />
<strong><br />
这一讲主要内容（Today）：</strong><br />
<em>* 最大熵模型(Maximum entropy models)<br />
* 与对数线性模型的联系(Connection to log-linear models)<br />
* 优化方法(Optimization methods)</em></p>
<p><strong>一般问题描述(The General Problem)：</strong><br />
a)	给定输入域χ（We have some input domain χ）；<br />
b)	给定标记集γ（We have some label set γ）；<br />
c)	目标（Goal）：对于任何x ∈ χ 及 y ∈γ学习一个条件概率P(y|x) （learn a conditional probability P(y|x)for any x ∈ χ and y ∈ γ ）。<br />
<strong><br />
一、	词性标注（POS tagging）：</strong><br />
a)	例子：Our/PRP$ enemies/NNS are/VBP innovative/JJ and/CC resourceful/JJ ,/, and/CC so/RB are/VB we/PRP ?/?.<br />
　i.	输入域（Input domain）：χ是可能的“历史”（χ is the set of possible histories）；<br />
　ii.	标记集（Label set）：γ是所有可能的标注标记（γ is the set of all possible tags）；<br />
　iii.	目标（Goal）：学习一个条件概率P(tag|history)（learn a conditional probability P(tag|history)）。<br />
b)	表现形式（Representation）：<br />
　i.	“历史”是一个4元组(t1,t2,w[1:n],i) （History is a 4-tuples (t1,t2,w[1:n],i)；<br />
　ii.	t1,t2是前两个标记（t1,t2 are the previous two tags）<br />
　iii.	w[1:n]是输入句子中的n个单词（w[1:n]are the n words in the input sentence）<br />
　iv.	i 是将要被标注的单词的位置索引（i is the index of the word being tagged）<br />
　χ是所有可能的“历史”集合（χis the set of all possible histories）</p>
<p>未完待续：<a href="http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part">第二部分</a></p>
<p>附：课程及课件pdf下载<a href="http://people.csail.mit.edu/regina/6881/"target="_blank">MIT英文网页</a>地址：<br />
　　　http://people.csail.mit.edu/regina/6881/</p>
<p>注：本文遵照麻省理工学院开放式课程<a href="http://ocw.mit.edu/OcwWeb/web/terms/terms/index.htm"target="_blank">创作共享规范</a>翻译发布，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<a href="http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part/">http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part/</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fifth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第五部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第一部分）'>MIT自然语言处理第四讲：标注（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第四部分）'>MIT自然语言处理第四讲：标注（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-second-lesson-word-counting-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第二讲：单词计数（第一部分）'>MIT自然语言处理第二讲：单词计数（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第三讲：概率语言模型（第一部分）'>MIT自然语言处理第三讲：概率语言模型（第一部分）</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MIT自然语言处理第四讲：标注（第四部分）</title>
		<link>http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part</link>
		<comments>http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part#comments</comments>
		<pubDate>Thu, 26 Mar 2009 00:00:58 +0000</pubDate>
		<dc:creator>52nlp</dc:creator>
				<category><![CDATA[MIT自然语言处理]]></category>
		<category><![CDATA[标注]]></category>
		<category><![CDATA[自然语言处理]]></category>
		<category><![CDATA[隐马尔科夫模型]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[TBL]]></category>
		<category><![CDATA[Viterbi 算法]]></category>
		<category><![CDATA[开放式课程]]></category>
		<category><![CDATA[词性]]></category>

		<guid isPermaLink="false">http://www.52nlp.cn/?p=1289</guid>
		<description><![CDATA[自然语言处理：标注
Natural Language Processing: Tagging
作者：Regina Barzilay（MIT,EECS Department, November 15, 2004)
译者：我爱自然语言处理（www.52nlp.cn ，2009年3月26日）

三、	马尔科夫模型（Markov Model）
g)	有效标注（Efficient Tagging）
　i.	对于一个单词序列，如何寻找最可能的标记序列（How to find the most likely a sequence of tags for a sequence of words）?
　　1.	盲目搜索的方法是可怕的（The brute force search is dreadful）— 对于N个标记和W个单词计算代价是.for N tags and W words, the cost is NW
　　2.	主意（Idea）: 使用备忘录（Viterbi算法）（use memoization (the Viterbi Algorithm)）
　　——结束于相同标记的序列可以压缩在一起，因为下一个标记仅依赖于此序列的当前标记（Sequences that end in the same tag can be collapsed [...]


相关文章:<ol><li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第一部分）'>MIT自然语言处理第四讲：标注（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-second-lesson-word-counting-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第二讲：单词计数（第四部分）'>MIT自然语言处理第二讲：单词计数（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第三讲：概率语言模型（第四部分）'>MIT自然语言处理第三讲：概率语言模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例六：维特比算法5'>HMM学习最佳范例六：维特比算法5</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>自然语言处理：标注</strong><br />
Natural Language Processing: Tagging<span id="more-1289"></span><br />
作者：Regina Barzilay（MIT,EECS Department, November 15, 2004)<br />
译者：<a href="http://www.52nlp.cn">我爱自然语言处理</a>（<a href="http://www.52nlp.cn">www.52nlp.cn</a> ，2009年3月26日）<br />
<strong><br />
三、	马尔科夫模型（Markov Model）</strong><br />
g)	有效标注（Efficient Tagging）<br />
　i.	对于一个单词序列，如何寻找最可能的标记序列（How to find the most likely a sequence of tags for a sequence of words）?<br />
　　1.	盲目搜索的方法是可怕的（The brute force search is dreadful）— 对于N个标记和W个单词计算代价是<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_994_833633d01ba1e8530f98a42ba6c52783.png" style="vertical-align:-6px; display: inline-block ;" alt="N^W" title="N^W"/>.for N tags and W words, the cost is NW<br />
　　2.	主意（Idea）: 使用备忘录（Viterbi算法）（use memoization (the Viterbi Algorithm)）<br />
　　——结束于相同标记的序列可以压缩在一起，因为下一个标记仅依赖于此序列的当前标记（Sequences that end in the same tag can be collapsed together since the next tag depends only on the current tag of the sequence）<br />
　　图示如下：<br />
<img src="http://52nlp.cn/images/test2.png" alt="test" /><br />
h)	Viterbi 算法（The Viterbi Algorithm）<br />
　i.	初始情况（Base case）:<br />
　　　<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_986.5_8e0d8cd8e919775eed30753d3b4f844f.png" style="vertical-align:-13.5px; display: inline-block ;" alt="pi delim{[}{0, START}{]} = log 1 = 0" title="pi delim{[}{0, START}{]} = log 1 = 0"/><br />
　　　<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_986.5_6711cbbcfe1041d9144264c305d59fae.png" style="vertical-align:-13.5px; display: inline-block ;" alt="pi delim{[}{0, t_{-1}}{]} = log 0 = infty" title="pi delim{[}{0, t_{-1}}{]} = log 0 = infty"/><br />
　　对所有其他的<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_986.5_a0e9484a184b2b9f5d76ab395c5dbefb.png" style="vertical-align:-13.5px; display: inline-block ;" alt="t_{-1}" title="t_{-1}"/>(for all other <img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_986.5_a0e9484a184b2b9f5d76ab395c5dbefb.png" style="vertical-align:-13.5px; display: inline-block ;" alt="t_{-1}" title="t_{-1}"/>)<br />
　ii.	递归情况（Recursive case）:<br />
　　1.	对于i = 1&#8230;S.length及对于所有的<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_986.5_96ec5f91a620e04f5ec24792a7db695c.png" style="vertical-align:-13.5px; display: inline-block ;" alt="t_{-1} in T" title="t_{-1} in T"/>:<br />
<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_971_35fc308f86cfd1b29b695e288fd1fe37.png" style="vertical-align:-29px; display: inline-block ;" alt="pi delim{[}{i, t_{-1}}{]} = {max}under{t in T union START}{ pi delim{[}{i-1, t}{]} + log P(t_{-1}delim{|}{t}{}) + log P(S_i delim{|}{t_{-1}}{})}" title="pi delim{[}{i, t_{-1}}{]} = {max}under{t in T union START}{ pi delim{[}{i-1, t}{]} + log P(t_{-1}delim{|}{t}{}) + log P(S_i delim{|}{t_{-1}}{})}"/><br />
　　2.	回朔指针允许我们找出最大概率序列（Backpointers allow us to recover the max probability sequence）:<br />
<img src="http://www.52nlp.cn/wp-content/plugins/WpMathEditor/phpmathpublisher/img/math_971_7c7d63f0e630d08fe8449a6b0f526cc0.png" style="vertical-align:-29px; display: inline-block ;" alt="BP delim{[}{i, t_{-1}}{]} = {argmax}under{t in T union START}{ pi delim{[}{i-1, t}{]} + log P(t_{-1}delim{|}{t}{}) + log P(S_i delim{|}{t_{-1}}{})}" title="BP delim{[}{i, t_{-1}}{]} = {argmax}under{t in T union START}{ pi delim{[}{i-1, t}{]} + log P(t_{-1}delim{|}{t}{}) + log P(S_i delim{|}{t_{-1}}{})}"/><br />
i)	性能（Performance）<br />
　i.	HMM标注器对于训练非常简单（HMM taggers are very simple to train）<br />
　ii.	表现相对很好（Perform relatively well） (over 90% performance on named entities)<br />
　iii.	最大的困难是对p(单词|标记)建模（Main difficulty is modeling of p(word|tag)）</p>
<p><strong>四、	结论（Conclusions）</strong><br />
a)	标注是一个相对比较简单的任务，至少在一个监督框架下对于英语来说（Tagging is relatively easy task (at least, in a supervised framework, and for English)）<br />
b)	影响标注器性能的因素包括（Factors that impact tagger performance include）:<br />
　i.	训练集数量（The amount of training data available）<br />
　ii.	标记集（The tag set）<br />
　iii.	训练集和测试集的词汇差异（The difference in vocabulary between the training and the testing）<br />
　iv.	未登录词（Unknown words）<br />
c)	TBL和HMM框架可用于其他自然语言处理任务（TBL and HMM framework can be used for other tasks）</p>
<p>第四讲结束！<br />
第五讲：<a href="http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part">最大熵和对数线性模型</a></p>
<p>附：课程及课件pdf下载<a href="http://people.csail.mit.edu/regina/6881/"target="_blank">MIT英文网页</a>地址：<br />
　　　http://people.csail.mit.edu/regina/6881/</p>
<p>注：本文遵照麻省理工学院开放式课程<a href="http://ocw.mit.edu/OcwWeb/web/terms/terms/index.htm"target="_blank">创作共享规范</a>翻译发布，转载请注明出处“<a href="http://www.52nlp.cn">我爱自然语言处理</a>”：<a href="http://www.52nlp.cn">www.52nlp.cn</a></p>
<p>本文链接地址：<br />
<a href="http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part/">http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part/</a></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-4332174469367599";
/* 336x280, 创建于 09-2-7 */
google_ad_slot = "5707022987";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>


<p>相关文章:<ol><li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第三部分）'>MIT自然语言处理第四讲：标注（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第二部分）'>MIT自然语言处理第四讲：标注（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第四讲：标注（第一部分）'>MIT自然语言处理第四讲：标注（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-first-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第一部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-second-lesson-word-counting-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第二讲：单词计数（第四部分）'>MIT自然语言处理第二讲：单词计数（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-third-lesson-probabilistic-language-modeling-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第三讲：概率语言模型（第四部分）'>MIT自然语言处理第三讲：概率语言模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-third-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第三部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-fourth-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第四部分）</a></li>
<li><a href='http://www.52nlp.cn/mit-nlp-fifth-lesson-maximum-entropy-and-log-linear-models-second-part' rel='bookmark' title='Permanent Link: MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）'>MIT自然语言处理第五讲：最大熵和对数线性模型（第二部分）</a></li>
<li><a href='http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-5' rel='bookmark' title='Permanent Link: HMM学习最佳范例六：维特比算法5'>HMM学习最佳范例六：维特比算法5</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.52nlp.cn/mit-nlp-fourth-lesson-tagging-fourth-part/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
