zoukankan      html  css  js  c++  java
  • 类模型NLP 学习笔记 05 (Brown Clustering && Global Linear Models)

    时间紧张,先记一笔,后续化优与完善。

        

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

        

    == 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)

  • 相关阅读:
    openCV的imread()函数
    python 文件操作(open函数)
    opencv函数解析
    python face_reconnition库函数解析
    python—OpenCV2中 cv2.VideoCapture(),read(),waitKey()的使用
    数据结构之各排序算法
    C语言格式符
    利用函数对数组排序,是否会修改原数组
    保研夏令营证书扫描工具推荐
    一些小技巧
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3063462.html
Copyright © 2011-2022 走看看