文档详情

CRF++工具包使用介绍

qiuji****ngye
实名认证
店铺
PPT
397KB
约31页
文档ID:56809593
CRF++工具包使用介绍_第1页
1/31

1,CRF++工具包使用介绍,,2,工具简介,CRF++ 是一个可用于分词/连续数据标注的简单、可定制并且开源的条件随机场(CRFs)工具 CRF++是为了通用目的设计定制 ,并将被用于自然语言信息处理 (NLP)的各个方面 ,诸如命名实体识别、信息提取和语块分析3,工具简介,工具包地址:http://chasen.org/~taku/software/CRF++/#features 工具包包括Linux环境下的源代码和Windows下的可执行程序 使用C++编写 CRF++-0.54 2010-05-15 CRF++-0.53(源码) 2009-05-06,4,工具的使用方法,1)安装 编译环境 Microsoft Visual Studio C++ 2010,5,工具的使用方法,2)使用 (2.1)训练和测试文件的格式,6,工具的使用方法,以BaseNP(基本名词短语识别)为例 训练例句如下 Confidence in the pound is widely expected to take another sharp dive if trade figures for September , due for release tomorrow , fail to show a substantial improvement from July and August 's near-record deficits . 测试例句如下 Rockwell International Corp. 's Tulsa unit said it signed a tentative agreement extending its contract with Boeing Co. to provide structural parts for Boeing 's 747 jetliners .,7,工具的使用方法,训练和测试文件必须包含多个tokens,每个token包含多个列。

token的定义可根据具体的任务,如词、词性等每个token必须写在一行,且各列之间用空格或制表格间隔 一个token的序列可构成一个sentence,sentence之间用一个空行间隔 最后一列是CRF用于训练的正确的标注形式8,工具的使用方法,BaseNP训练文件格式,9,工具的使用方法,BaseNP测试文件格式特别的,sentence间用一空行间隔例子每个token包含3列,分别为词本身、词性和BaseNP标记(B、I、O) 注意:如果每一个token的列数不一致,系统将不能正确运行10,工具的使用方法,(2.2)准备特征模板 使用该CRFs工具的用户必须自己确定特征模板 a.基本模板和宏 模板文件中的每一行代表一个template每一个template中,专门的宏%x[row,col]用于确定输入数据中的一个tokenrow用于确定与当前的token的相对行数col用于确定绝对行数11,工具的使用方法,BaseNP模板文件格式b.模板类型 U模板 B模板,12,工具的使用方法,第一种是Unigram template:第一个字符是U,这是用于描述unigram feature的模板。

当你给出一个模板“U00:%x[-2,0]“,CRF会自动的生成一个特征函数集合(func1 . funcN),如: func1 = if (output = B and feature=“U00:Tulsa“)return 1 else return 0 func2 = if (output = I and feature=“U00:Tulsa“)return 1 else return 0 func3 = if (output = O and feature=“U00:Tulsa“)return 1 else return 0 funcX1 = if (output = B and feature=“U01:’s“) return 1 else return 0 funcX2 = if (output = I and feature=“U01:’s“) return 1 else return 0 funcX3 = if (output = O and feature=“U01:’s“) return 1 else return 0 . 一个模型生成的特征函数的个数总数为L*N,其中L是输出的类别数,N是根据给定的template扩展出的unique feature的数目。

13,工具的使用方法,如已知下面的输入数据: Input: Data Rockwell NNP B International NNP I Corp. NNP I << CURRENT TOKEN 's POS B Tulsa NNP I 特征模板形式为: template expanded feature U00:%x[2,0] TulsaU01:%x[1,0] ’sU02:%x[0,0] Corp.U03:%x[-1,0] InternationalU04:%x[-2,0] RockwellU05:%x[1,0]/%x[0,0] ’s/Corp.U06:%x[0,0]/%x[-1,0] Corp./International,14,工具的使用方法,第二种类型Bigram template:第一个字符是B 使用这个模板,系统将自动产生当前输出token与前一个输出token的组合(Bigram) 产生的可区分的特征的总数是L*L*N,其中L是输出类别数,N是这个模板产生的unique features数 output = B last_output =I and feature=B 区别于Unigram中的 U05:%x[1,0]/%x[0,0] ’s/Corp. 当类别数很大的时候,这种类型会产生许多可区分的特征,这将会导致训练和测试的效率都很低下。

只使用Bigram template B这意味着前一个output token和current token将组合成bigram features15,工具的使用方法,C.使用标识符区分相对位置 若区分token的相对位置时,需要在模板中使用标识符 比如在下面的例子中,宏“%x[-2,1]”和“%x[1,1]”都代表“DT”,但是它们又是不同的“DT“ The DT B pen NN I is VB B << CURRENT TOKEN a DT B 为了区分它们,可以在模型中加入一个唯一的标识符(U01: 或 U02:),即: U01:%x[-2,1] U02:%x[1,1] 在这样的条件下,两种模板将被认为是不同的,因为他们将被扩展为”U01:DT“和”U02:DT”可以使用任何标识符,但使用数字序号区分更很有用,因只需将它们简单的与特征数相对应如果使用“词袋”属性,即不在乎相对位置的属性,可以不使用这样的标识符16,工具的使用方法,1.训练指令 /crf_learn –[可选参数] template train.data model,17,工具的使用方法,可选参数 -f, --freq=INT 使用属性的出现次数不少于INT(默认为1) -m, --maxiter=INT 设置INT为LBFGS的最大跌代次数 (默认10k) -c, --cost=FLOAT 设置FLOAT为代价参数,过大会过度拟合 (默认1.0) -e, --eta=FLOAT 设置终止标准FLOAT(默认0.0001) -C, --convert 将文本模式转为二进制模式 -t, --textmodel 为调试建立文本模型文件 -a, --algorithm=(CRF|MIRA) 选择训练算法, 默认为CRF-L2 -p, --thread=INT 线程数(默认1),利用多个CPU减少训练时间 -H, --shrinking-size=INT 设置INT为最适宜的跌代变量次数 (默认20) -v, --version 显示版本号并退出 -h, --help 显示帮助并退出,18,工具的使用方法,BaseNP训练输出iter: 跌代次数 terr: tag错误率 serr: sentence错误率 obj: 当前对象值,该值收敛于一个固定的值则停止跌代 diff: 于上次对象值的相对差异,19,工具的使用方法,2.测试指令 /crf_test -[可选参数] -m model test.data,20,工具的使用方法,BaseNP测试结果文件格式每行为一个output tag每个output tag包含4列,分别为词本身、词性、正确BaseNP标记和模型计算最可能的BaseNP标记结果。

21,工具的使用方法,可选参数 -v选项:设置verbose level(默认0)增加层次,可从CRF++获得额外的信息 层次1: 可以对每个tag使用边缘概率,对总输出使用条件概率 例: …/crf_test -v1 -m model test.data| head # 0.478113 Rockwell NNP B B/0.992465 International NNP I I/0.979089 Corp. NNP I I/0.954883 's POS B B/0.986396 Tulsa NNP I I/0.991966 . 其中,第一行的“# 0.478113“即是输出的条件概率,而且每一个输出tag各自含有一个概率,表示形式如“B/0.992465”22,工具的使用方法,层次2: 也可以对所有的其他候选求边缘概率 例: …/crf_test -v2 -m model test.data # 0.478113 Rockwell NNP B B/0.992465 B/0.992465 I/0.00144946 O/0.00608594 International NNP I I/0.979089 B/0.0105273 I/0.979089 O/0.0103833 Corp. NNP I I/0.954883 B/0.00477976 I/0.954883 O/0.040337 's POS B B/0.986396 B/0.986396 I/0.00655976 O/0.00704426 Tulsa NNP I I/0.991966 B/0.00787494 I/0.991966 O/0.00015949 unit NN I I/0.996169 B/0.00283111 I/0.996169 O/0.000999975 …,23,工具的使用方法,N-best outputs -n选项:使用这个选项将获得N-best结果,它根据CRF计算出的条件概率排序得到。

选择了N-best结果,CRF++会自动添加一行,形为“# N prob”N从0开始累加至N,prob表示output的条件概率, 依次降低 如果CRF++不能找到足够的N条路径是,它将放弃列举N-best结果24,工具的使用方法,例,N-best结果: …/crf_test -n 20 -m model test.data # 0 0.478113 Rockwell NNP B B International NNP I I Corp. NNP I I 's POS B B . # 1 0.194335 Rockwell NNP B B International NNP I I …,。

下载提示
相似文档
正为您匹配相似的精品文档