目前正致力于一个自然语言处理项目,我需要将非结构化的参考书目部分(在研究文章末尾)转换为结构化元数据,如"年","作者","期刊","卷ID","页面"数字","标题"等
例如:输入
McCallum, A.; Nigam, K.; and Ungar, L. H. (2000). Efficient clustering of high-dimensional data sets with application to reference matching. In Knowledge Discovery and Data Mining, 169–178
Run Code Online (Sandbox Code Playgroud)
预期产量:
<Author> McCallum, A.</Author> <Author>Nigam, K.</Author> <Author>Ungar, L. H.</Author>
<Year> 2000 </Year>
<Title>Efficient clustering of high-dimensional data sets with application to reference matching <Title> and so on
Run Code Online (Sandbox Code Playgroud)
使用的工具:CRFsuite
数据集:包含12000个引用
给定行中的每个单词都被视为标记,并且对于每个标记,我得出以下特征
从上面的工具和数据集我只有63.7%的准确率."Title"的准确度非常低,"Year"和"Volume"的准确度也很低.
问题:
我是CRF ++的新手.我正在教自己查看它的手册:http: //crfpp.googlecode.com/svn/trunk/doc/index.html?source = navbar#templ
我不明白这意味着什么:
这是一个描述unigram功能的模板.当你给一个
模板"U01:%x [0,1]",CRF ++自动生成一组功能
函数(func1 ... funcN)如:
func1 = if(output = B-NP and feature ="U01:DT")返回1否则返回0
func2 = if(output = I-NP and feature ="U01:DT")返回1否则返回0
func3 = if(output = O and feature ="U01:DT")返回1否则返回0
.... funcXX = if(output = B-NP and feature ="U01:NN")返回1否则返回0
funcXY = if(output = O and feature ="U01:NN")return 1 else return 0.模板生成的要素函数数量
等于(L*N),其中L是输出的数量
为什么Unigram功能有很多行,它们是什么意思?
如何使用地名词典或词典作为CRF ++中的功能?
详细说明:假设我想在人名上做NER,并且我有一个包含常见人名的地名词典(或词典),我想用这个地名词典作为crf ++的输入,我该怎么做?
我正在使用条件随机字段包crf ++来执行命名实体识别任务.我知道如何在crf ++中表示一些常用的功能.例如,如果我们想使用Capitalization作为特征,我们可以在crf的特征模板中添加一个单独的列,指示单词是否大写.