Python 将带有自定义标记实体的文本输入格式化为sklearn crfsuite格式
我有一些应该用于实体识别的自定义数据,我计划使用pythonssklearncrfsuite进行相同的识别。 数据如下所示:Python 将带有自定义标记实体的文本输入格式化为sklearn crfsuite格式,python,nlp,tagging,Python,Nlp,Tagging,我有一些应该用于实体识别的自定义数据,我计划使用pythonssklearncrfsuite进行相同的识别。 数据如下所示: I O want O a O black color shoe product of O size O 9 size .. I O want O a O blue color shirt product of O brand O Arrow brand size O XL size .. I
I O
want O
a O
black color
shoe product
of O
size O
9 size
..
I O
want O
a O
blue color
shirt product
of O
brand O
Arrow brand
size O
XL size
..
I O
want O
a O
white color
khaki product-subcategory
shirt product
of O
size M
但是,我需要将格式更改为:
[('Melbourne', 'NP', 'B-LOC'),
('(', 'Fpa', 'O'),
('Australia', 'NP', 'B-LOC'),
(')', 'Fpt', 'O'),
(',', 'Fc', 'O'),
('25', 'Z', 'O'),
('may', 'NC', 'O'),
('(', 'Fpa', 'O'),
('EFE', 'NC', 'B-ORG'),
(')', 'Fpt', 'O'),
('.', 'Fp', 'O')]
按照套餐培训师的要求。
有人能帮我一下吗。
我所做的是:
list_of_lists = []
with open('./trainData.txt') as f:
for line in f:
inner_list = [elt.strip() for elt in line.split('..')]
list_of_lists.append(inner_list)
但这并没有实现我想要的,结果是:
列表
出[25]:
[['I\tO'],
['want\tO'],
['a\tO'],
['black\tcolor'],
['shoe\tproduct'],
['of\tO'],
['size\tO'],
['9\tsize'],
['', ''],
['I\tO'],
['want\tO'],
['a\tO'],
['blue\tcolor'],
['shirt\tproduct'],
['of\tO'],
['brand\tO'],
['Arrow\tbrand'],
['size\tO'],
['XL\tsize']
字段由制表符(
\t
)分隔,而不是由“”分隔。”
。所以在选项卡上拆分,而不是。”
。请注意,墨尔本示例中的元组长度为3,而您正在生成长度为2的列表。我认为必须进行两级拆分。一种是将其分成单独的句子,然后再分成单词。因此,第一个句子将生成一个带有标记的单词列表。语料库作为一个整体将是这样一个句子的列表。但问题是分词器和分句器是不一样的。