conlleval.pl是用什么r语言 eval函数写的

1941人阅读
自然语言处理(3)
词性标注(1)
中文分词工具(1)
数据挖掘(1)
CRF++ 0.58 在Windows中 运行与安装
可以选择example里的某个例子做测试,比如选chunking。将crf_learn.exe;crf_test.exe;libcrfpp.dll三个文件复制到到,含有exec.sh;template;test.data;train.data的文件夹(chunking)里。
cd进入该文件夹
c:\&F: &(直接写硬盘名字即可进入该盘)
F:\&cd CRF++0.58\example\seg
F:\CRF++0.58\example\seg&crf_learn
template train.data model&
& 训练数据
这个训练过程的时间、迭代次数等信息会输出到控制台上(感觉上是crf_learn程序的输出信息到标准输出流上了),如果想保存这些信息,我们可以将这些标准输出流到文件上,命令格式如下:
% crf_learn template_file train_filemodel_file && train_info_file
% crf_learn -f 3 -c 1.5 template_filetrain_file model_file
-a CRF-L2 or CRF-L1
规范化算法选择。默认是CRF-L2。一般来说L2算法效果要比L1算法稍微好一点,虽然L1算法中非零特征的数值要比L2中大幅度的小。
这个参数设置CRF的hyper-parameter。c的数值越大,CRF拟合训练数据的程度越高。这个参数可以调整过度拟合和不拟合之间的平衡度。这个参数可以通过交叉验证等方法寻找较优的参数。
这个参数设置特征的cut-off threshold。CRF++使用训练数据中至少NUM次出现的特征。默认值为1。当使用CRF++到大规模数据时,只出现一次的特征可能会有几百万,这个选项就会在这样的情况下起到作用。
如果电脑有多个CPU,那么那么可以通过多线程提升训练速度。NUM是线程数量。
crf_test -m model test.data &output.txt&& 测试数据
% crf_test -m model test.data
可以使用重定向,将结果保存下来
% crf_test -m model_file test_files &result_file
-v可以显示预测标签的概率值,-n可以显示不同可能序列的概率值,
conlleval.pl & output.txt&& 评估效果
.pl后缀为Perl文件,所以需要安装Perl
conlleval.pl为ts.ua.ac.be/conll2000/chunking/conlleval.txt将这个贴到txt,然后重命名为conlleval。我当时这么做的。
特别注意:output.txt在CRF++输出中空格为TAB键,需要全部替换为真正空格键。conlleval.pl识别的是空格键。
train.data和test.data的格式
每行的格式为:分词后的词词性标注 标签
中间是空格隔开;空行表示句子的边界;分词后的词和词性标注是NLPIR(原ICTCLAS)生成的结果;标签O表示不是目标值,PLACE表示目标值,若一个词被分开了,则B-PALCE为第一个词,I-PLACE为接着的词
train.data的格式
Confidence NN B-NP
in IN B-PP
the DT B-NP
pound NN I-NP
is VBZ B-VP
widely RB I-VP
expected VBN I-VP
to TO I-VP
take VB I-VP
another DT B-NP
sharp JJ I-NP
dive NN I-NP
if IN B-SBAR
trade NN B-NP
figures NNS I-NP
for IN B-PP
September NNP B-NP
即第一列和第二列都是已知的数据,第三列是要预测的标注
test.data的格式
Rockwell NNP B
International NNP I
Corp. NNP I
Tulsa NNP I
said VBD O
result.data的格式
Rockwell NNP
International NNP
signed VBD
template格式
U00:%x[-2,0]
U01:%x[-1,0]
U02:%x[0,0]
U03:%x[1,0]
U04:%x[2,0]
U05:%x[-1,0]/%x[0,0]
U06:%x[0,0]/%x[1,0]
U10:%x[-2,1]
U11:%x[-1,1]
U12:%x[0,1]
U13:%x[1,1]
U14:%x[2,1]
U15:%x[-2,1]/%x[-1,1]
U16:%x[-1,1]/%x[0,1]
U17:%x[0,1]/%x[1,1]
U18:%x[1,1]/%x[2,1]
U20:%x[-2,1]/%x[-1,1]/%x[0,1]
U21:%x[-1,1]/%x[0,1]/%x[1,1]
U22:%x[0,1]/%x[1,1]/%x[2,1]
其中Unigram/Bigram是指输出token的Unigram/Bigrams,而不是特征。
i. 其中#开头的行不起作为,为注释;
ii. 行与行之间可以有空行;
iii.Unigram的特征前使用字母U,而Bigram的特征前使用字母B。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:17658次
排名:千里之外
原创:27篇
(1)(2)(2)(1)(1)(1)(18)(1)30249人阅读
语言学研究(10)
CRF++是著名的条件随机场开源工具,也是目前综合性能最佳的CRF工具。本文简要介绍其使用方法。
一、工具包的下载:
其中有两种,一种是Linux下(带源码)的,一种是win32的,当然是在什么平台下用就下载什么版本了。
两种版本打成一个包了。
二、安装:
a)Windows版的无须安装,直接解压即可使用;
b)Linux版本的安装方法是:
i.解压到某目录下
ii.打开控制台,将当前目录切换到解压目录
iii.依次输入命令:&&&&
./configure
make install
&&&&&&&&&&&&&&&&&&&&&&&&&&& 注:需要root权限才能成功安装。
三、训练语料格式:
a)训练语料至少应具有两列,列间由空格或制表位间隔,且所有行(空行除外)必须具有相同的列数。句子间使用空行间隔。
b)一些合法的语料示例:
i.有两列特征的
ii.只有一列特征的
四、特征的选取及模板的编写:
a)特征选取的行是相对的,列是绝对的,一般选取相对行前后m行,选取n-1列(假设语料总共有n列),特征表示方法为:%x[行,列],行列的初始位置都为0。例如:
i.以前面语料为例
北 Bns B-LOC
京 Mns I-LOC
市 Ens I-LOC
假设当前行为&京&字这一行,那么特征可以这样选取:
%x[-1,0]/%x[0,0]
-1行0列与0行0列的组合
%x[0,0]/%x[1,0]
0行0列与1行0列的组合
%x[-2,1]/%x[-1,1]
-2行1列与-1行1列的组合
%x[-1,1]/%x[0,1]
-1行1列与0行1列的组合
%x[0,1]/%x[1,1]
0行1列与1行1列的组合
%x[1,1]/%x[2,1]
1行1列与2行1列的组合
%x[-2,1]/%x[-1,1]/%x[0,1]
-2行1列、-1行1列、0行1列的组合
Sw/Bns/Mns
%x[-1,1]/%x[0,1]/%x[1,1]
-1行1列、0行1列、1行1列的组合
Bns/Mns/Ens
%x[0,1]/%x[1,1]/%x[2,1]
0行1列、1行1列、2行1列的组合
Mns/Ens/Sw
b)模板制作:模板分为两类:Unigram和Bigram。
其中Unigram/Bigram是指输出token的Unigram/Bigrams,而不是特征。
c)以前面示例中的特征为特征,制作为Unigram模板如下:
U00:%x[-2,0]
U01:%x[-1,0]
U02:%x[0,0]
U03:%x[1,0]
U04:%x[2,0]
U05:%x[-2,1]
U06:%x[-1,1]
U07:%x[0,1]
U08:%x[1,1]
U09:%x[2,1]
U10:%x[-1,0]/%x[0,0]
U11:%x[0,0]/%x[1,0]
U12:%x[-2,1]/%x[-1,1]
U13:%x[-1,1]/%x[0,1]
U14:%x[0,1]/%x[1,1]
U15:%x[1,1]/%x[2,1]
U16:%x[-2,1]/%x[-1,1]/%x[0,1]
U17:%x[-1,1]/%x[0,1]/%x[1,1]
U18:%x[0,1]/%x[1,1]/%x[2,1]
i.其中#开头的行不起作为,为注释;
ii.行与行之间可以有空行;
iii.Unigram的特征前使用字母U,而Bigram的特征前使用字母B。后面的数字用于区分特征,当然这些数字不是一定要连续。
五、训练方法
a)语料的训练可以使用命令(在终端或DOS命令行中):crf_learn &模板& &训练语料& &模板文件&
其中模板和训练语料是需要事先准备好的,模板文件在训练完成后生成
1)如果提示语料格式错误,则注意检查语料的存储编码,有些编码CRF++是会读取错误的;
2)文件路径要正确,如果文件没在当前目录,那么要使用绝对路径。
b)训练中一些参数的说明:
ter:迭代次数
terr:标记错误率
serr:句字错误率
obj:当前对象的值。当这个值收敛到一个确定值的时候,训练完成
diff:与上一个对象值之间的相对差
六、解码方法
a)可以使用crf_test -m &模板文件& &测试文件1& &测试文件2& &&。
b)结果会直接输出到屏幕上面,如果想让结果保存到文件中,那么使用重定向,在上面命令后面加上一个开关&&&即可:crf_test -m &模板文件& &测试文件1& & &保存位置&。例如:crf_test -m model test.txt & result.txt
七、评测工具CoNLL 2000的用法
b)使用它是用来评分,所以要求crf_test一步使用的测试文件中本身带有答案,这样解码后生成的结果会在答案的后一列。比如原来为:
交 Bni B-ORG
通 Mni I-ORG
部 Eni I-ORG
那么解码后变成:
使 En N&& N
、 Sw N& N
交 Bni B-ORG B-ORG
通 Mni I-ORG I-ORG
部 Eni I-ORG&& I-ORG
部 Bn N&& N
CoNLL 2000将把最后一列与倒数第二列进行对比,统计出最后各类的正确率,召回率、F值等。
c)使用评测工具前要将评测文件中的所有制表位转换成空格,否则评测工具会出错。
d)评测命令为:perl conlleval.pl & &评测文件&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:913519次
积分:10986
积分:10986
排名:第1257名
原创:136篇
转载:50篇
译文:38篇
评论:622条
阅读:38505
(3)(1)(1)(2)(10)(1)(1)(1)(1)(2)(1)(1)(1)(1)(2)(1)(1)(1)(1)(3)(7)(2)(7)(16)(4)(2)(1)(4)(12)(2)(2)(2)(3)(1)(4)(8)(1)(7)(47)(8)(3)(1)(2)(6)(4)(1)(1)(1)(1)(2)(2)(18)(8)机器学习(8)
条件随机场(Conditional Random Field,CRF)在自然语言处理中有着十分广泛的应用,
而开源的CRF++避免了我们一个一个的去造轮子。我们来看一下CRF++是如何使用的。
2.CRF++的下载
原始网址:
我下的win版:
3.CRF++初步运行
win版下载后直接解压到文件夹(我解压到了H:/qy/Python/NLP),打开cmd,cd进入到NLP下的CRF++0.58文件夹,
doc文件夹:就是官方主页的内容。
example文件夹:有四个任务的训练数据、测试数据和模板文件。
crf_learn.exe:CRF++的训练程序。
libcrfpp.dll:训练程序和预测程序需要使用的静态链接库。
实际上,需要使用的就是crf_learn.exe,crf_test.exe和libcrfpp.dll,这三个文件。
可以先拿example中的某个例子,做一下测试。例如:example中chunking文件夹,其中原有4个文件:exec.sh;template;test.data;train.data。
template为特征模版;test.data为测试数据;train.data为训练数据。关于它们具体格式和内容,待会详细介绍。
可以选择example里的某个例子做测试,比如选chunking。
将crf_learn.exe;crf_test.exe;libcrfpp.dll三个文件复制到到,含有exec.sh;template;test.data;train.data的文件夹(chunking)里。
Perl解释器的安装
conlleval.pl
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:116468次
积分:3067
积分:3067
排名:第10014名
原创:171篇
转载:74篇
译文:11篇
(1)(4)(15)(7)(1)(9)(3)(25)(35)(20)(17)(12)(11)(22)(9)(20)(24)(18)(1)(1)您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
命名实体识别项目报告.doc21页
本文档一共被下载:
次 ,本文档已强制全文免费阅读,若需下载请自行甄别文档质量。
文档加载中...广告还剩秒
需要金币:100 &&
你可能关注的文档:
··········
··········
命名实体识别项目报告
日期 版本 修改内容
0.1 建立大纲,完成部分实验数据分析
0.2 完成实验数据分析部分
0.3 完成源程序说明
0.4 完成总结部分
0.5 局部文字校对与润饰 目录
1. 项目简介 4
2. 特征的选取 4
3. 数据的预处理 4
4. 序列标注工具的选择 4
5. 实验步骤及结果分析 4
分词粒度过大 8
错误分词 8
没有利用机构前后缀特征 9
模棱两可之处 9
长名称的复合机构名 10
实验十一 14
6. 总结 15
7. 附录 16
项目托管 16
源程序结构说明 16
本项目旨在练习所学的图模型来解决自然语言处理中的基本问题―命名实体识别。
特征的选取
实验中所提取的特征包括:
字的特征:这是最基本的特征。
分词特征:包含始末位置特征,用“B”表示是分词的开头,用“I”表示分词的中间或结尾;分词自身作为特征,如“中国”;分词的首尾字为特征:如“培训班”中“培”和“班”。
词性特征:一种是将整个分词的词性特征赋给附属的每个字,如“中国/ns”转换成“中/ns”和“国/ns”;另一种是在词性特征中夹带有分词的始末位置特征,如“中国/ns”转换成“中/B-ns”和“国/I-ns”。
命名实体的前后缀特征:将训练集中高频的姓氏如“张”、“王”等,机构名高频后缀字如“系”、“会”等,以及地名高频后缀字如“州”、“路”等分别赋以“PP”、“OS”和“LS”以指示可能人名前缀、机构名后缀和地名后缀。
数据的预处理
我们使用了中科院的分词器ICTCLAS30为原始数据添加了分词和词性特征列。
将训练数据的首70%(768728行)作为
正在加载中,请稍后...}

我要回帖

更多关于 r语言 eval 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信