NLP

CRF++ for NER

2017-11-08  本文已影响0人  ChiuChiu尖尖碰碰拳

CRF++

( 空格分隔): nlp


[TOC]

http://x-algo.cn/index.php/2016/02/29/crf-name-entity-recognition/#i

使用说明

安装

template

模板说明: http://www.hankcs.com/nlp/the-crf-model-format-description.html

jieba 结巴分词和词性标注:

http://www.mamicode.com/info-detail-1889910.html

训练模型

测试

评估结果

实验结果

Windows 10 , python 2.7
处理步骤:

  1. 原始语料处理
    一句一行
    *可选:去除{{time:}}等标记
  2. 打标签 BMEUNS
  3. 切分训练集和测试集
  4. 调整crf++的template
  5. 训练,调参
  6. 测试
  7. 评估

word+POS+Tag(B/M/E/U/NS)

娃哈哈 nz  B
集团  n   E
在   p   NS
黔   j   U
发展  vn  NS
近十年 l   U
,   x   NS
见证  v   NS
了   ul  NS
贵州  ns  U
发展  vn  NS
取得  v   NS
的   uj  NS
巨大  a   NS
成绩  n   NS
。   x   NS

# Unigram
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]

U23:%x[0,1]

# Bigram
B

Done!179.61 s

image.png

POS+dictionary

浙江在线绍兴 100 nr
福美来三代启停版 100 nr
搜狗 100 nr
岳飞 100 nr
搜狐 100 nr

娃   nz  B
哈   nz  I
哈   nz  I
集   n   O
团   n   O
}   x   O
}   x   O
在   p   O
{   x   O
{   x   O
l   eng O
o   eng O
c   eng O
a   eng O
t   eng O
i   eng O
o   eng O
n   eng O
:   x   O
黔   j   O
}   x   O
}   x   O
发   vn  O
展   vn  O

Done!70.12 s

image.png

分词没有添加词典

template同上

娃   nz  B
哈   nz  I
哈   nz  I
集   n   O
团   n   O
}   x   O
}   x   O
在   p   O
{   x   O
{   x   O
l   eng O
o   eng O
c   eng O
a   eng O
t   eng O
i   eng O
o   eng O
n   eng O
:   x   O
黔   j   O
}   x   O
}   x   O
发   vn  O
展   vn  O

???词性标注和前面加载了词典一样

Done!88.84 s

image.png

强行修改标签


image.png

noSeg , 词性POS

娃   POS B
哈   POS I
哈   POS I
集   POS I
团   POS I
}   POS 0
}   POS 0
在   POS 0
{   POS 0
{   POS 0
l   POS 0
o   POS 0
c   POS 0
a   POS 0
t   POS 0
i   POS 0
o   POS 0
n   POS 0
:   POS 0
黔   POS B
}   POS 0
}   POS 0
发   POS 0
展   POS 0

template同上

Done!175.85 s


image.png

noPOS+template

娃   B
哈   I
哈   I
集   I
团   I
}   0
}   0
在   0
{   0
{   0
l   0
o   0
c   0
a   0
t   0
i   0
o   0
n   0
:   0
黔   B
}   0
}   0
发   0
展   0

设置template

# Unigram
U00:%x[-2,0]
U01:%x[-1,0]
U02:%x[0,0]
U03:%x[1,0]
U04:%x[2,0]
U05:%x[-2,0]/%x[-1,0]/%x[0,0]
U06:%x[-1,0]/%x[0,0]/%x[1,0]
U07:%x[0,0]/%x[1,0]/%x[2,0]
U08:%x[-1,0]/%x[0,0]
U09:%x[0,0]/%x[1,0]
 
# Bigram
B

结果:
Done!77.47 s


image.png

总结

feature time precision recall FB1
c_noPOS-BIO 175.85s 86.46% 82.18% 84.26
c_noPOS+template-BIO 77.47s 86.73% 84.16% 85.43
c_POS(noDic)-BIO 88.84 92.08% 92.08% 92.08
c_POS+dic-BIO 70.12s 98.96% 98.73% 98.85
w_POS(noDic)-BMEUNs 179.61s 99.80% 99.52% 99.66

c_表示一字一行处理的, w表示一词一行

疑问

添加词典与否事实上结果一样,上文的结果不相同是因为强行对训练集和测试集对的BIO标签进行了修改,命名实体的完全是BI。如果自动分词,粒度较细,实体标签不一定完全正确。

n   eng 0
a   eng 0
m   eng 0
e   eng 0
:   x   0
浙   nr  B
江   nr  I
在   nr  I
线   nr  I
杭   nr  I
州   nr  I
}   x   0
}   x   0
n   eng O
a   eng O
m   eng O
e   eng O
:   x   O
浙   ns  B
江   ns  I
在   b   O
线   b   O
杭   ns  B
州   ns  I
}   x   O
}   x   O

{{location:河北省邯郸市火车站过街天桥南约100米}}的路西,十几个男子围成一团,气氛很是热烈。

{{product_name:嘻嘻MACWE书包中学生女双肩包男女背包韩版潮学院风旅行包帆布电脑包}}{{product_name:http://t.cn/8sSfk0S}}

嘻嘻{{company_name:MACWE}}书包中学生女双肩包男女背包{{location:韩}}版潮学院风旅行包帆布电脑包{{product_name:http://t.cn/8sSfk0S}}

上一篇 下一篇

猜你喜欢

热点阅读