目前,在 spaCy 中,可以使用ent_iob_属性 ( docs )获取令牌的 IOB 标签。例如:
>>> 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']
Run Code Online (Sandbox Code Playgroud)
但是,在训练模型时,spacy 使用 BILUO ( docs )。有没有办法将现成的IOB标签转换成BILUO,或者直接获取BILUO标签?
空间版本 1.8
要将IOB 转换为BILUO,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-']
Run Code Online (Sandbox Code Playgroud)
在 spaCy 版本“2.1.3”上测试
来源可以在这里找到。
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |