书签 分享 收藏 举报 版权申诉 / 14

一种设定CRF预测值的方法和装置.pdf

  • 上传人:大师****2
  • 文档编号:623800
  • 上传时间:2018-02-26
  • 格式:PDF
  • 页数:14
  • 大小:544.31KB
  • 摘要
    申请专利号:

    CN201410007419.X

    申请日:

    2014.01.08

    公开号:

    CN104142916A

    公开日:

    2014.11.12

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 17/27申请日:20140108|||公开

    IPC分类号:

    G06F17/27

    主分类号:

    G06F17/27

    申请人:

    腾讯科技(深圳)有限公司

    发明人:

    吴小平

    地址:

    518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

    优先权:

    专利代理机构:

    北京德琦知识产权代理有限公司 11018

    代理人:

    阎敏;宋志强

    PDF完整版下载: PDF下载
    内容摘要

    本发明提出一种设定条件随机域(CRF)预测值的方法和装置,其中方法包括:获取训练语料和特征抓取算法;修改所述训练语料和特征抓取算法,使采用修改后的训练语料和特征抓取算法所抓取的特征中包含预设值的特征;采用所述特征训练CRF预测所使用的模型;在测试语料中增加预设值的信息,将所述测试语料采用所述模型进行预测,得到满足预设值的预测结果。本发明能够达到预测结果满足预设值,同时使整体的预测结果最优。

    权利要求书

    1.  一种设定条件随机域CRF预测值的方法,其特征在于,所述方法包括:
    获取训练语料和特征抓取算法;
    修改所述训练语料和特征抓取算法,使采用修改后的训练语料和特征抓取算法所抓取的特征中包含预设值的特征;
    采用所述特征训练CRF预测所使用的模型;
    在测试语料中增加预设值的信息,将所述测试语料采用所述模型进行预测,得到满足预设值的预测结果。

    2.
      根据权利要求1所述的方法,其特征在于,当采用CRF++方式实现CRF分词时,
    所述预测语料包括文本信息列和对应的标记值列;
    所述修改训练语料的方式为:在所述训练语料中增加预设值列,所述预设值的取值为预先设定的无效值;并增加m份训练语料,每份训练语料包括文本信息列、标记值列和预设值列,标记值列和预设值列的取值相同,并且每份训练语料中标记值列和预设值列的取值分别为标记值的各个可能取值;其中,所述m为标记值的可能取值的个数;
    所述特征抓取算法采用特征模板实现;
    所述修改特征抓取算法的方式为:在所述特征模板的最后一项之后增加当前行的预设值列;并新增一行特征模块,其内容为当前行的预设值列;
    所述测试语料包括文本信息列;
    所述在测试语料中增加预设值的信息的方式为:在所述测试语料中增加预设值列;针对文本信息列中的任意一行文本信息,当不需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为预先设定的无效值;当需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为需要设定的预测值。

    3.
      一种设定条件随机域CRF预测值的装置,其特征在于,所述装置包括:
    获取模块,用于获取训练语料和特征抓取算法;
    修改模块,用于修改所述训练语料和特征抓取算法,使采用修改后的训练语料和特征抓取算法所抓取的特征中包含预设值的特征;并采用所述特征训练CRF预测所使用的模型;
    预测模块,用于在测试语料中增加预设值的信息,将所述测试语料采用所述模型进行预测,得到满足预设值的预测结果。

    4.
      根据权利要求3所述的装置,其特征在于,当采用CRF++方式实现CRF分词时,
    所述预测语料包括文本信息列和对应的标记值列;
    所述修改模块修改训练语料的方式为:在所述训练语料中增加预设值列,所述预设值的取值为预先设定的无效值;并增加m份训练语料,每份训练语料包括文本信息列、标记值列和预设值列,标记值列和预设值列的取值相同,并且每份训练语料中标记值列和预设值列的取值分别为标记值的各个可能取值;其中,所述m为标记值的可能取值的个数;
    所述特征抓取算法采用特征模板实现;
    所述修改模块修改特征抓取算法的方式为:在所述特征模板的最后一项之后增加当前行的预设值列;并新增一行特征模块,其内容为当前行的预设值列;
    所述测试语料包括文本信息列;
    所述测试模块在测试语料中增加预设值的信息的方式为:在所述测试语料中增加预设值列;针对文本信息列中的任意一行文本信息,当不需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为预先设定的无效值;当需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为需要设定的预测值。

    说明书

    一种设定CRF预测值的方法和装置
    技术领域
    本发明涉及条件随机域(CRF,Conditional Random Fields)技术领域,尤其涉及一种设定CRF预测值的方法和装置。
    背景技术
    CRF是一种判别式概率模型,是随机场的一种,常用于标注或分析序列资料,如自然语言文字或是生物序列。
    CRF算法是序列标注的主要算法,其数学公式为:
    pλ(y|x)=exp[ΣkλkFk(y,x)]Zλ(x),]]>其中,
    Zλ(x)=Σyexp[ΣkλkFk(y,x)]]]>
    其中,Fk(y,x)表示特征向量,x表示特征,y表示标记值,(y,x)表示特征标记值对,k表示特征标记值对的个数。λ=(λ1,λ2,…,λk)是模型的参数。
    如图1为现有技术中的CRF算法使用流程示意图,包括训练和预测两个部分。其中,训练的任务就是从相互独立的训练语料中估计参数λ=(λ1,λ2,…,λk)的值,训练时通过大量的训练语料和标记值利用CRF的训练算法训练出模型,首先根据特征抓取算法抓取训练语料的特征,再把特征和标记值一起送入训练算法迭代训练直到满足需求,得到训练出的模块。模型中存放的是各个Fk(y,x)对应的λk值。预测时利用和训练时同样的特征抓取算法抓取预测语料的特征,把特征和模型一起送入CRF预测算法来预测标记值,得到的标记值即为其预测值。预测值除与该项的特征有关之外,还与前一预测结果有关。例如,将CRF算法用于 分词时,预测语料中的每一个文字会得到一个相应的预测值,预测值可能有“0”和“1”两种取值,其中“0”表示该文字之后不切开,“1”表示该文字之后切开;前一个文字的预测值会影响到后一个文字的预测值。
    CRF++是一套简单的、可定制的CRF开源代码,是一种实现CRF算法的工具。
    CRF++利用特征模板来抓取训练语料和测试语料的特征,例如对“这是一个例子”这句话进行分词时,其输入训练语料中的文本信息的形式为:(每一行一个汉字)

    如果定义特征模板为:%x[0,0](其中,%x[0,0]表示当前行的第1列),采用该特征模块对每一行文本信息作特征提取,最后提取的所有特征为:“这”、“是”、“一”、“个”、“例”、“子”。
    如果定义特征模板为:%x[-1,0]/%x[0,0]/%x[1,0](其中,%x[-1,0]表示当前行的前一行的第1列,%x[1,0]:表示当前行的后一行的第1列),采用该特征模板对每一行文本信息作特征提取,最后提取的所有特征为:“F-1/这/是”、“这/是/一”、“是/一/个”、“一/个/例”、“个/例/子”、“例/子/F+1”,其中,F-1表示第一行的前一行;,F+1表示最后一行的后一行。
    也可以定义特征模板为:
    %x[-1,0]/%x[0,0]/%x[1,0]
    %x[0,0]
    则提取的所有特征为:“F-1/这/是”、“这/是/一”、“是/一/个”、“一/个/例”、“个/例/子”、“例/子/F+1”、“这”、“是”、“一”、“个”、“例”、“子”。
    可见,对同样的输入语料,其特征模板不相同则最后提取的特征也不相同,修改特征模板可方便地提取需要的特征。
    CRF++训练时,需要输入特征模板和训练语料,其中训练语料包括文本信息列和对应的标记值列。假设上面的例子为一训练语料的文本信息,其标定的分词为“这/是/一/个/例子”,每个文字对应的标记值的取值可以为“0”和“1”,其中,“0”表示不切开,“1”表示切开,则输入的训练语料为:

    上述训练语料中,第一列为文本信息列,第二列为标记值列。
    CRF++预测时,测试语料仅包括文本信息列;通过预测算法后,输出文本信息列中的每一行的预测值,其预测值与当前行的特征值以及前一行的预测值有关。
    在实际使用中,希望测试语料中文本的预测值为某一已知值而对预测值进行的干扰称为设定预测值。常因前置系统的输出或者实际运用而需要对预测的结果设定预测值。现有的设定预测值的方法一般是直接将预测值修改为需要设定的值,如图2为现有的设定预测值的方式示意图。比如,利用某一模型预测的预测值为0,而前置系统表明该处应该为1,则直接将预测结果修改为1。但是,这种直接修改某一个预测值的方式可能使得全局预测值不是最优。因为在一次CRF预测中,前一个预测值会概率上影响当前的预测值及随后的预测值,而直接修改的方式没有把这种影响计入其中,从而使修改后的预测值不是全局最优。例如对“球拍卖完了”进行分词,模型预测的结果为“球拍/卖/完了”,由前置系统已知“球”为主语,为单独的一个词,则采用直接修改后的分词为“球/拍/卖/完了”,很明显这不是整体最优的预测结果。
    发明内容
    本发明提供了一种设定CRF预测值的方法,能够将预先设定的预测值(简称预设值)作为输入参与到CRF的预测运算中,而不是在预测结束之后修改预测值,从而达到预测结果满足预设值,同时使整体的预测结果最优。
    本发明还提供了一种设定CRF预测值的装置,能够将预先设定的预测值(简称预设值)作为输入参与到CRF的预测运算中,而不是在预测结束之后修改预测值,从而达到预测结果满足预设值,同时使整体的预测结果最优。
    本发明的技术方案是这样实现的:
    一种设定条件随机域(CRF)预测值的方法,其特征在于,所述方法包括:
    获取训练语料和特征抓取算法;
    修改所述训练语料和特征抓取算法,使采用修改后的训练语料和特征抓取算法所抓取的特征中包含预设值的特征;
    采用所述特征训练CRF预测所使用的模型;
    在测试语料中增加预设值的信息,将所述测试语料采用所述模型进行预测,得到满足预设值的预测结果。
    上述方法中,当采用CRF++方式实现CRF分词时,
    所述预测语料包括文本信息列和对应的标记值列;
    所述修改训练语料的方式为:在所述训练语料中增加预设值列,所述预设值的取值为预先设定的无效值;并增加m份训练语料,每份训练语料包括文本信息列、标记值列和预设值列,标记值列和预设值列的取值相同,并且每份训练语料中标记值列和预设值列的取值分别为标记值的各个可能取值;其中,所述m为标记值的可能取值的个数;
    所述特征抓取算法采用特征模板实现;
    所述修改特征抓取算法的方式为:在所述特征模板的最后一项之后增加当前行的预设值列;并新增一行特征模块,其内容为当前行的预设值列;
    所述测试语料包括文本信息列;
    所述在测试语料中增加预设值的信息的方式为:在所述测试语料中增加预设值列;针对文本信息列中的任意一行文本信息,当不需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为预先设定的无效值;当需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为需要设定的预测值。
    一种设定条件随机域(CRF)预测值的装置,包括:
    获取模块,用于获取训练语料和特征抓取算法;
    修改模块,用于修改所述训练语料和特征抓取算法,使采用修改后的训练语料和特征抓取算法所抓取的特征中包含预设值的特征;并采用所述特征训练CRF预测所使用的模型;
    预测模块,用于在测试语料中增加预设值的信息,将所述测试语料采用所述模型进行预测,得到满足预设值的预测结果。
    上述装置中,当采用CRF++方式实现CRF分词时,
    所述预测语料包括文本信息列和对应的标记值列;
    所述修改模块修改训练语料的方式为:在所述训练语料中增加预设值列,所述预设值的取值为预先设定的无效值;并增加m份训练语料,每份训练语料包括文本信息列、标记值列和预设值列,标记值列和预设值列的取值相同,并且每份训练语料中标记值列和预设值列的取值分别为标记值的各个可能取值;其中,所述m为标记值的可能取值的个数;
    所述特征抓取算法采用特征模板实现;
    所述修改模块修改特征抓取算法的方式为:在所述特征模板的最后一项之后增加当前行的预设值列;并新增一行特征模块,其内容为当前行的预设值列;
    所述测试语料包括文本信息列;
    所述测试模块在测试语料中增加预设值的信息的方式为:在所述测试语料中增加预设值列;针对文本信息列中的任意一行文本信息,当不需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为预先设定的无效值;当需要设定该文本信息的预测结果时,将所述预设值列中该行的 预设值设置为需要设定的预测值。
    可见,本发明提出的设定CRF预测值的方法和装置,在CRF训练时,通过修改训练语料和特征抓取算法,使得采用修改后的训练语料和特征抓取算法所抓取的特征中增加了预设值的特征,并用该特征训练模块;在CRF预测时,在测试语料中增加预设值的信息,采用该模型预测测试语料,从而得到满足预设值的预测结果。由于在预测时综合了原始特征和预设值的信息,故其预测值为整体最优解。
    附图说明
    图1为现有技术中的CRF算法使用流程示意图;
    图2为现有的设定预测值的方式示意图;
    图3为本发明提出的设定CRF预测值的方法的设计思路示意图;
    图4为本发明提出的设定CRF预测值的方法实现流程图。
    具体实施方式
    本发明提出一种设定CRF预测值的方法,如图3为该方法的设计思路示意图。其基本思路是在训练和预测过程中将预先设定的预测值(简称预设值)作为输入参与CRF预测运算中,而不是在预测结束后修改预测值,从而可以达到预测结果为预测值,同时使整体的预测结果最优。
    如图4为该方法的实现流程图,包括:
    步骤401:获取训练语料和特征抓取算法;
    步骤402:修改所述训练语料和特征抓取算法,使采用修改后的训练语料和特征抓取算法所抓取的特征中包含预设值的特征;
    步骤403:采用所述特征训练CRF预测所使用的模型;
    步骤404:在测试语料中增加预设值的信息,将所述测试语料采用所述模型进行预测,得到满足预设值的预测结果。
    当采用CRF++方式实现CRF分词时,上述预测语料包括文本信息列和对应 的标记值列;
    步骤402中修改训练语料的方式具体可以为:在所述训练语料中增加预设值列,所述预设值的取值为预先设定的无效值;并增加m份训练语料,每份训练语料包括文本信息列、标记值列和预设值列,标记值列和预设值列的取值相同,并且每份训练语料中标记值列和预设值列的取值分别为标记值的各个可能取值;其中,所述m为标记值的可能取值的个数;
    上述特征抓取算法采用特征模板实现;
    步骤402中修改特征抓取算法的方式具体可以为:在所述特征模板的最后一项之后增加当前行的预设值列;并新增一行特征模块,其内容为当前行的预设值列;
    测试语料包括文本信息列;
    步骤404中在测试语料中增加预设值的信息的方式为:在所述测试语料中增加预设值列;针对文本信息列中的任意一行文本信息,当不需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为预先设定的无效值;当需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为需要设定的预测值。
    以下举具体的实施例详细说明。
    实施例一:
    本实施例以采用CRF++方式实现分词为例,介绍设定CRF预测值的一种具体实现方式。本实施例包括以下三个步骤:
    步骤一:
    根据实际系统需要预测的目标设计输入语料和特征模板,采用输入语料和特征模板训练模型,使训练得到的模型的预测准确率满足实际系统的要求。
    假定其中一句训练语料的文本为“这/是/一/个/例子”,则其输入训练语料的内容为:


    其中,第一列为文本信息列,第二列为标记值列;标记值列中的“0”表示不切开,“1”表示切开。
    假定特征模板为%x[-1,0]/%x[0,0]/%x[1,0],其意义同前。
    在下文中,将本步骤中设计的特征模板和输入语料抓取的特征记为原始特征。
    步骤二:
    修改上述训练语料和特征模板,从而使抓取的特征中加入增加预设值的特征,采用该特征重新训练模型。
    1)训练语料的修改:
    在训练语料中增加预设值列;预设值的取值范围包括标记值的所有可能取值,还包括一个预先设定的无效值。
    假定标记值的可能取值的个数为m,则预设值的取值个数为(m+1)。所有的训练语料都由原来的一份变为(m+1)份;所有的(m+1)份中,文本信息列的内容相同。每一份的预设值列各不相同,当预设值列的所有值都取预先设定的无效值时,标记值列保持不变,仍为该训练语料中文本信息的真实标记值;当预设值列的所有值都取其他预设值时,标记值列与预设值列相同。
    例如,沿用上面的例子,其标记值的取值可以为“0”和“1”,m=2;预设值的取值可以为“0”、“1”和“-1”,其中,“-1”为预先设定的无效值。训练语料由原来的1份变为3份,假定其切分仍为“这/是/一/个/例子”,则修改后的训练语料包括以下三份:
    a)、预设值取预先设定的无效值“-1”时,训练语料为:(第二列表示预设值列)


    b)、预设值取“0”时,训练语料为:

    c)、预设值取“1”时,训练语料为:

    2)特征模板的修改:
    在特征模板的最后一项之后增当前行的预设值列;同时增加一行特征模板,其内容为当前行的预设值列。假定预设值列为第n列,则在原有的每一模板项后添加内容为“/%x[0,n-1]”,增加的特征模板行为“%x[0,n-1]”。
    沿用上面的例子,原特征模板为“%x[-1,0]/%x[0,0]/%x[1,0]”,由于训练语料中预设值为第二列,则修改后的特征模板为:
    %x[-1,0]/%x[0,0]/%x[1,0]/%x[0,1]
    %x[0,1]
    采用修改后的训练语料和特征模板抓取特征后,抓取总特征将比没有预设 值时更多。以第二行“是”和倒数第二行“例”为例:
    采用步骤一中的训练语料和特征模板抓取的特征为:“这/是/一”、“个/例/子”,其中没有预设值的信息。特征与标记值一起组成的特征标记值对为:
    (这/是/一,1)、(个/例/子,0)。
    采用步骤二中修改后的训练语料和特征模板抓取的特征为:“这/是/一/-1”、“这/是/一/0”、“这/是/一/1”、“个/例/子/-1”、“个/例/子/0”、“个/例/子/1”,“-1”,“0”,“1”,其中包含预设值的信息。特征与标记值一起组成的特征标记值对为:
    (这/是/一/-1,1)、(这/是/一/0,0)、(这/是/一/1,1)、
    (个/例/子/-1,0)、(个/例/子/0,0)、(个/例/子/1,1)、
    (-1,0)、(-1,1)、(0,0)、(1、1)
    通过比较可见,当预设值取无效值时(上例为“-1”),其特征标记值对与无预设值的特征标记值对一样,预设值不影响原始特征与标记值的关系,因此其训练的模型中的参数中仍保留了原始特征训练出的模型中的参数;当预设值取有效值时(上例为“0”和“1”),无论其原始特征是什么,其标记值与预设值一样,预设值影响了标记值的结果,其训练出的模型的参数中新增了与预设值相关的模型参数。
    在原来的特征上都附加有预设值的特征,预设值的特征作为特征的一部分参与模型训练的运算中,训练出的模型参数中综合了与原始特征和预设值相关的参数。
    第三步:
    采用上述步骤二中训练的模型进行预测。对于输入的测试语料,在测试语料中增加预设值列,其形式及取值范围与训练语料中的预设值列相同。
    预设值列的具体取值根据实际的需要而定。如果希望某行预设值不影响该行的预测结果,而是由原始特征确定,其预设值就取无效值;如果希望预测值为某一特定的标记值,则其预设值就取该标记值。
    以对“球拍卖完了”作分词为例:
    a)、如果希望预设值不影响预测值,则将预设值列都设为无效值(本例中无 效值为“-1”),该测试语料为:

    每一行都根据其原始特征和前一行的输出对本行做预测,与没有预设值时的预测结果完全一样。
    b)、如果希望第一行的预设值影响预测值,则将第一行的预设值设为某一特定的标记值(本例中取“1”),则能够得到该行的预测结果为该特定的标记值;其他行的预测值都设为无效值(本例中无效值为“-1”),该测试语料为:

    第一行的预测值为预设值,其他各行均与没有预设值时一样,根据原始特征和前一行的输出对本行做预测。
    因此,采用上述步骤二训练的CRF模型预测时,综合了原始特征和预设值的信息,其预测值为整体最优解。
    需要说明的是,上述实施例是以CRF++实现分词为例进行说明的。本发明也可以应用与其他基于CRF理论的CRF工具中,并且适用于分词以外的其他应用。
    本发明还提出一种设定CRF预测值的装置,该装置包括
    获取模块,用于获取训练语料和特征抓取算法;
    修改模块,用于修改所述训练语料和特征抓取算法,使采用修改后的训练语料和特征抓取算法所抓取的特征中包含预设值的特征;并采用所述特征训练 CRF预测所使用的模型;
    预测模块,用于在测试语料中增加预设值的信息,将所述测试语料采用所述模型进行预测,得到满足预设值的预测结果。
    当采用CRF++方式实现CRF分词时,所述预测语料包括文本信息列和对应的标记值列;
    所述修改模块修改训练语料的方式为:在所述训练语料中增加预设值列,所述预设值的取值为预先设定的无效值;并增加m份训练语料,每份训练语料包括文本信息列、标记值列和预设值列,标记值列和预设值列的取值相同,并且每份训练语料中标记值列和预设值列的取值分别为标记值的各个可能取值;其中,所述m为标记值的可能取值的个数;
    所述特征抓取算法采用特征模板实现;
    所述修改模块修改特征抓取算法的方式为:在所述特征模板的最后一项之后增加当前行的预设值列;并新增一行特征模块,其内容为当前行的预设值列;
    所述测试语料包括文本信息列;
    所述测试模块在测试语料中增加预设值的信息的方式为:在所述测试语料中增加预设值列;针对文本信息列中的任意一行文本信息,当不需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为预先设定的无效值;当需要设定该文本信息的预测结果时,将所述预设值列中该行的预设值设置为需要设定的预测值。
    以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

    关 键  词:
    一种 设定 CRF 预测 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种设定CRF预测值的方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-623800.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1