2017-07-13 20 views
0

目前,在spaCy中,可以使用ent_iob_属性(docs)获取令牌的IOB标签。例如: -如何在spaCy中获取令牌的BILUO标签?

>>> import spacy 
>>> nlp = spacy.load('en') 
>>> doc = nlp(u'My name is George Washington Singer, and I am an Englishman') 
>>> [i.ent_iob_ for i in doc] 
[u'O', u'O', u'O', u'B', u'I', u'I', u'O', u'O', u'O', u'O', u'O', u'B'] 

然而,训练模型时,spacy需要碧罗(docs)。有没有办法将现成的IOB标签转换成BILUO,或直接获取BILUO标签?

Spacy版本1.8

回答

0

要IOB转换为碧罗,spacy.gold有_iob_to_biluo功能。

>>> import spacy 
>>> from spacy.gold import _iob_to_biluo 
>>> nlp = spacy.load('en') 
>>> doc = nlp(u'My name is George Washington Singer, and I am an Englishman') 
>>> iobs = [i.ent_iob_ for i in doc] 
>>> iob_to_biluo(iobs) 
[u'O', u'O', u'O', u'B-', u'I-', u'L-', u'O', u'O', u'O', u'O', u'O', u'U-'] 

来源可查询here