金沙国际3016网站那么后面一个词的标签就是名词

当前位置:金沙国际3016 > 金沙国际3016网站 > 金沙国际3016网站那么后面一个词的标签就是名词
作者: 金沙国际3016|来源: http://www.quzhouls.com|栏目:金沙国际3016网站

文章关键词:金沙国际3016,特征函数

  众所周知,CRF里面一个很重要的概念是特征函数。特征函数又分为状态特征函数和转移特征函数。而这两个特征函数可以统一为一种形式。

  特征函数可以理解为一种序列与标签位置关系的规定。针对序列标注任务,我可以通过特征函数来定义:对于一个序列来说,金沙国际3016网站如果前一个词的标签为动词,那么后面一个词的标签就是名词。也就是说我们定义了一个规则:动词后面跟名词,可以表示为名词——动词,而这个规则作为一个函数,要有输出,最简单的就是满足规则输出1,否则输出0。

  U模板其实在说两件事情,一件事情是确定了规则作用的窗口大小,另一件事情是确定了规则以词的什么属性作为规则依据。具体点怎么说呢?先说窗口大小,我们在前面举了动词后跟名词这条规则的例子,也就是说前一个词为动词,后一个词为名词。这里窗口大小就是2,因为每次确认规则成立与否需要在序列上比较相邻的两个词,比如:我爱自然语言处理。我们需要定义一个长度为2的窗口,检测步骤列表如下(这里以词为最小单位,和CRF++以字为最小单位区别,仅作为示例):

  同样,我们也可以定义当前词的前面第2个词为动词,当前词为名词,此时窗口大小为3。当然,你也可以定义当前词前面或后面近邻着的的若干个词,根据实际情况来定义,这些都是通过调整行偏移实现的。

  再说词属性依据。了解CRF++模板的人应该明白模板存在列偏移,根据训练数据针对的任务不同,列的数目也不同,而每一列都代表对应的属性,可以是词本身,可以是词性,可以是4tag,当然最终都要有label。列偏移就是表明我们要使用词的什么属性作为规则的依据,同样的,我们还是以上面名词——动词为例,这里选用的列属性为词性,当然,我们可以选择其他的。比如:分词任务训练集属性有两个:字,label

  其实说到这里,已经涉及到CRF++特征函数的生成了,我们要清楚,CRF++模板和CRF++特征函数的关系,我们依据CRF++模板生成CRF++特征函数,具体怎么生成呢?我们一般是这样的我们对于一个模板,我们会生成label种类数 * 依据的词/字属性的种类数个特征函数。对于上面的分词任务来说,以模板U00:%x[-2,0]为例,我们考虑当前词前面第二个词本身。一共可以生成20(4 * 5)个特征函数。上面给出了四个,金沙国际3016网站其余十六个可以用剩下四个字代替“迈”得到。

  我们可以发现,这种特征函数生成的方式是把模板生成的所有可能的特征函数都写出来了,但是对于我们输入的训练集来说,可能只符合一部分特征函数(得到值为1)。

  还有一个重要的事情没有提,就是特征函数的权重。我们要知道这么多特征函数,其对于我们模型价值是不一样的。可能我们训练完之后,某个特征函数只有一次符合,而另一个特征函数可能每次都符合(当然概率基本为0)。那么,我们有理由认为前一个特征函数对我们的模型的价值和后一个特征函数对我们模型的价值不同,如果同样是输出为1的线应该是不一样的。那么,我们有理由根据特征函数在训练过程中的表现对其重要性进行评测,金沙国际3016网站从而最终得到每个特征函数的合适的权重,然后与特征函数相乘。我们可以看出,在训练过程中权重是在不断变化的,而权重也就是CRF作为一种传统机器学习算法(还是统计学的天下啊)需要训练的参数。

  也就是说,我们要知道最终确定结果时我们会利用模型对每个可能的标记序列进行打分,分数转化成概率形式后,选择概率最大的序列。

  最后我们再讨论一下特征函数的感性上的意义,特征函数本质上是一种规则,对于训练好的模型而言,它可以看成一个规则的集合,每个规则在这个模型中的价值用权重来表示,这个价值可以理解为某个可能的输出序列满足这条规则获得的分数。每个规则都对这个可能的输出序列进行遍历评价,汇总所有分数得到总分。然后对每个可能的输出序列进行评分,最后归一化成概率形式。刚开始学习CRF的时候,我看到特征函数就会想到,这个不就是定义若干个规则吗,和机器学习有什么关系啊?再到后来我发现,定义规则只是CRF的一部分,如果你只是定义了若干个规则,同样去评价某个输出序列的话,就会产生我上面谈到的特征函数的价值无法区分的问题,很明显这个是无法达到很好的效果的。所以,我们就需要根据训练集来得到特征函数的价值,也就是CRF的权重,这个使得我们的特征函数从数据中学习到了某种知识(特征函数权重分布),这才是机器学习。

  一群歌手参加歌唱比赛,由一个机器对他们打分,评分的标准有很多个(音调,歌词,情感),评分前机器根据往年的经验,给每个标准的评分赋予权重,然后计算选手的得分,最高分者为冠军。

  CRF模型里面特征函数仅限于前后相邻的词,CRF++模板定义却不一定限于此,为什么?

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!