您的位置:首页 > 其它

类模型NLP 学习笔记 05 (Brown Clustering && Global Linear Models)

2013-05-06 19:52 806 查看
时间紧张,先记一笔,后续化优与完善。

=================================================================

== all is based on the open course nlp on coursera.org week 9,week 10 lecture ==

=================================================================

这是nlp课程最后两周的内容了,觉感机器习学和nlp等方向长短常想通的,判若两人!下一步大概会系统地看大部头和paper,强增码编实现能力!

第十周的内容主要是GLMs分别在tagging和 Parsing面上的应用,我就不罗嗦了

1.Brown Clustering

1.1 Introduction

布朗聚类是一种针对汇词的聚类法方,Input是一系列的文章或者句子,Output有两种

第一种是:一系列的词组,体具多少个类看你之前的设定:



第二种是:每一个词都有一长串的二进制码,用似类霍夫曼码编的方法对每一个词停止码编



可以不言而喻的是,前缀相似度更高的词就越邻近

什么样的汇词相似呢?一个直觉的法想就是:相似的词出在现相似的置位。

更准确的说法就是:相似词的驱前词和后继词的分布相似,也就是它面前的词和面后的词现出得是相似的。

1.2 Formulation

假设我们在现有一个类分器,可以把每一个词分配到一个类面里,一共有k个类:



整个模型如下:



w1……wn是一条语料的词,w0是一个殊特的开始符号

e,q和我们之前习学的是一样的,不过是从汇词换成了类分而已

1.3 The Brown Clustering

我们在现来看整个布朗类分的模型:



可以看到最要重的货色就是类分器C,怎么量衡C的坏好呢:



其中:G是一个常数



其中:n()是在类分器C的基本下的计数的函数,计统类分在语料库中现出的数次,和之前的count似类

如何失掉C呢,课程绍介了两种法方:

法方1.

一开始我们把每一个词独自分配到一个类中,假设有|V|=n个,记着我们的目标是找到k个类分

我们停止n-k次并合,每次把两个类并合到一同,每次并合贪地心选择能最大度程加增Quality(C)的两个类

这个naive算法的复杂度是多少呢?(n-k)*n*n*n^2,大概是O(N^5),即使是能化优到三次方复杂度,对于太大的 |V| 仍然很不事实

法方2.

开始设置一个参数m,比如m=1000,我们按照汇词现出的率频对其停止排序

然后把率频最高的m个词各自分到一个类中,对于第m+1到|V|个词停止循环:

1.对前当词建新一个类,我们在现又m+1个类了

每日一道理

盈盈月光,我掬一杯最清的;落落余辉,我拥一缕最暖的;灼灼红叶,我拾一片最热的;萋萋芳草,我摘一束最灿的;漫漫人生,我要采撷世间最重的———毅力。

2.从这m+1个类中心贪选择最好的两个类并合(和法方1一个意思),在现我们剩下m个类

最后我们再做m-1词并合,就失掉了我们一开始说的一串01码编所对应的树,可以转化为响应码编

2. Global Linear Models (GLMs)

2.1 Introduction

到目前为止,我们全部的模型都是这样一个进程:把题问结构派生成一系列的组合(或者说decision),比如我们之前讨论过的基于史历的法方 (Log-linear Models),每一个decision关系到一个概率,最后的模型是把全部decision的概率乘起来,这其中有两种方法:



这里就不再胪陈了,这在之前的条记有录记的。

在现我们将进入到一种新的模型:Global Linear Models。

之前我们把总的结构分拆成一个个decision,而GLMs则是用一些feature来斟酌团体的结构,而不是孤立地分拆组合。

在现看看GLMs都是由什么成组的:

:一个feature function : f (和之前似类,但是我们还没有体具定义,这里先置搁)

:一个函数 GEN(x) :x是一个输入,GEN函数生成一系列的候选结果

:一个向量 v :和之前是一样

其实可以看到,GMLs和Log-Linear的最大别区就在于feature function的选择上,上面我们斟酌一下feature function的选择

2.2 Features

我们之前说过,
GLMs是用一些feature来斟酌团体的结构,而不是孤立地分拆组合,那么怎么才能斟酌团体的结构呢?

一个直观的懂得就是把分拆的feature组合起来就是团体了

基于这个想思,我们用更下一层的参数组合成我们要的feature function,比如:



示表方框内的结构在语法树上现出的数次,如果我们有多个这样的参数对应不同的结构,那么我们终最可以成组一个f:



除此外之,另一个较比要重的部份是GEN函数,如果对于一个输入要生成全部的候选结果,我们晓得这个集合长短常大的,一个一般的法想就是用使基于史历的模型(之前的模型)选出前多少个最好的候选谜底。

2.3 Together

最后,我们的总的货色就是:



2.4 the Perceptron Algorithm

最后一个题问,我们的v向量怎么求呢?直接上算法吧



很简单的算法,你可以看到对v停止变更的那一行公式,如果到目前为止的算法生成的结果和目标结果yi分歧,v实际上是变不的,如果不分歧,v就会朝着目标结果的方向停止变更。

除了这个Perceptron算法外之,也可以用最大似然等法方,只是复杂度会高很多

=========================================================

到此为止吧,体具的应用就不讲了,虽然觉感烂尾了

========================================================

文章结束给大家分享下程序员的一些笑话语录:

问答

Q:你是怎么区分一个内向的程序员和一个外向的程序员的? A:外向的程序员会看着你的鞋和你说话时。

Q:为什么程序员不能区分万圣节和圣诞节? A:这是因为 Oct 31 == Dec 25!(八进制的 31==十进制的 25)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: