Nlp 通用报告格式++;:有人知道CRF模型文件中的浮点数是什么意思吗

Nlp 通用报告格式++;:有人知道CRF模型文件中的浮点数是什么意思吗,nlp,crf,crf++,Nlp,Crf,Crf++,当您使用crf的-t选项构建模型文件时,请学习: crf学习模板训练数据-t模型 然后它将生成两个模型文件,其中一个是model.txt 有人能说出浮点数的意思吗 请参见以下示例: 版本:100 成本因素:1 maxid:40 xsize:1 B 我 U00:%x[0,0] B 36 B 20 U00: 26 U00:か 18 U00:が 22 U00:こ 8 U00:た 10 U00:ち 2 U00:っ 4 U00:て 34 U00:に 12 U00:の 0 U00:よ 28 U00:ら 24

当您使用crf的-t选项构建模型文件时,请学习: crf学习模板训练数据-t模型

然后它将生成两个模型文件,其中一个是model.txt

有人能说出浮点数的意思吗

请参见以下示例:

版本:100 成本因素:1 maxid:40 xsize:1

B 我

U00:%x[0,0] B

36 B 20 U00: 26 U00:か 18 U00:が 22 U00:こ 8 U00:た 10 U00:ち 2 U00:っ 4 U00:て 34 U00:に 12 U00:の 0 U00:よ 28 U00:ら 24 U00:れ 32 U00:上 14 U00:世 16 U00:代 30 U00:地 6 U00:私

-0.3022268562246992 0.3022268562246989 -0.3629407244093161 0.3629407244093156 -0.3327259487028221 0.3327259487028215 0.3462799099537973 -0.3462799099537980 0.3452020097664334 -0.3452020097664336 -0.3218750203631590 0.3218750203631575 0.0376944272290242 -0.0376944272290280 0.3329631783491211 -0.3329631783491230 -0.3092967308014029 0.3092967308014015 0.3413769126433928 -0.3413769126433950 0.3786782765859961 -0.3786782765859980 0.5208645073272351 -0.5208645073272384 -0.3261580548802839 0.3261580548802814 -0.3615756495615902 0.3615756495615884 -0.3248593224319323 0.3248593224319312 0.3281895709166696 -0.3281895709166719 -0.3040331359589971 0.3040331359589951 0.2836939567332580 -0.2836939567332600 -0.1530917919770705 -0.1613508585854637 0.4245699543724943 -0.1101273038099901

我的理解是: 每个浮点数应对应于每个模板,例如: 第一个浮点数“-0.3022268562246992”应与“36 B”相对应。 但是为什么浮点数是模板数的两倍呢? 这些浮点数是什么意思

非常感谢,


帅华

在阅读了部分CRF++058源代码后,我知道如何理解CRF_学习输出。我将使用一些示例来解释输出

==基本的====

假设我们有以下培训数据:

我们的模板非常简单,只有一行:U00:%x[0,0]

  • 因此,本例中的特征数量为9,有: 毎, 日, 新, 聞, 社, 特, 別, 顧, 問.
  • 现在,让培训数据保持不变,在模板中添加另一项功能:
  • U00:%x[0,0]

    U00:%x[-1,0]/%x[0,0]/%x[1,0]

    现在我们在模板中有两个“特性”。因此,功能的总数 更改为18,有:

    (此功能模板包含两条规则,适用于每个单词)

  • 现在,让我们在训练数据中添加一个重复的单词,如下所示:
  • “为了这个词”毎", 它出现两次,但只被视为一个特征。 所以功能的数量仍然是18

    前进====

    现在让我们看看如何理解“model.txt”中的内容

    1) 空间线用于分隔不同的块:

    1.第一块:

    maxid取决于特征的数量和标记的数量

    以第一个训练数据为例:(9个不同的单词,两个标记=>B和I)

    id应该从0开始,0+2=2,2+2=4,…16。maxid是16

    这里,为什么步骤是2

    因为我们有两种类型的标签。实际上每个单词对应两个不同的标签,比如:

    2.第二块:

    列出培训数据中的所有标签:

    3.第三块:

    列出所有使用的模板:

    U00:%x[0,0]

    B

    4.第四块:

    特征id、模板和相应的单词:

    5.第五块:

    对于每个功能,每个标签的可能性:

    每个单词对应两种可能性

    可能性<0将被忽略

    -帅华

    毎  k   B
    日  k   I
    新  k   I  
    聞  k   I
    社  k   I
    特  k   B
    別  k   I 
    顧  k   B
    問  k   I
    
    毎, 日, 新, 聞, 社, 特, 別, 顧, 問    
     ../毎/日
    毎/日/新
    日/新/聞
    新/聞/社   
    聞/社/特
    社/特/別
    特/別/顧    
    別/顧/問    
    顧/問/..
    
    毎  k   B
    毎  k   B
    日  k   I
    新  k   I  
    聞  k   I
    社  k   I
    特  k   B
    別  k   I 
    顧  k   B
    問  k   I
    
        version: 100
        cost-factor: 1
        maxid: 670
        xsize: 1
    
    0 毎 ==> B
    1 毎 ==> I
    
    2 日 ==> B
    3 日 ==> I 
    ...
    14 問 ==> B
    15 問 ==> I
    
    B
    
    I
    
    0 U00:毎
    2 U00:日
    ...