4分钟
Bigram 特征模板
1. 给定一个Bigram 特征模板 B01:%x[0,1],它会生成 个特征函数,其中 为训练数据的行数(剔除空白行,因为空白行是sentence 的分隔符)。
每个特征函数为:
func2 = if (output = LABEL2/LABEL1 and feature="U01:xx2") return 1 else return 0
func3 = if (output = LABEL3/LABEL2 and feature="U01:xx3") return 1 else return 0
func4 = if (output = LABEL4/LABEL3 and feature="U01:xx4") return 1 else return 0
....
funcM = if (output = LABELM/LABELM_1 and feature="U01:xxM") return 1 else return 0其中:
LABEL1,...,LABELM、feature="U01:xx1",...,feature="U01:xxM"的意义与Unigram中的相同。- 在
Bigram中,特征函数中的output是当前的输出标记和前一个输出标记的联合,这也是它称作bigram的原因。 注意:它联合的是标记,而不是特征。特征的联合由宏语句来实现。
2. 上述生成的特征函数也会有大量重复。
假设标记的种类一共有 L 个,由 U01:%x[0,1] 指定的、从该行提取到的特征的种类一共有 N 个,则CRF++会按照 L 种标记,N 种特征自动生成 L x L x N 个特征函数。
3. 当标记的种类 L 较大时, Bigram 会生成非常多的特征函数,其中非常多的特征函数在样本中的返回值只有少量的1 。
这中情况下,模型的训练和测试将会非常低效。
4. 如果某一行的内容只有一个字符 B,则它表示:由当前的输出标记和前一个输出标记的联合生成的特征函数。
学员评价