Я хочу пометить свои пользовательские данные как теги IOB, упомянутые в sklearn-crfsuite, но я не могу пометить.Я могу извлечь начальный и конечный индексы сущности и имени сущности.
Я пробовал разбить предложение на слова и пометить «O» и «B-ORG» (пример), но не «I-ORG».
from nltk import word_tokenize, pos_tag, ne_chunk
from nltk import conlltags2tree, tree2conlltags
tree = ne_chunk(pos_tag(word_tokenize("Google LLC is an American multinational technology company.")))
iob_tags = tree2conlltags(tree)
print(iob_tags)
что я получил:
[('Google', 'NNP', 'B-PERSON')
('LLC', 'NNP', 'B-ORGANIZATION')
('is', 'VBZ', 'O')
('an', 'DT', 'O')
('American', 'JJ', 'B-GPE')
('multinational','NN', 'O')
('technology', 'NN', 'O')
('company', 'NN', 'O')
('.', '.', 'O')]
Я просто хочу пометить IOB свой пользовательский набор данных, в котором предложение содержит токены, помеченные схемой маркировки IOB (список кортежей: [(word, pos_tag), Тэги IOB)]) для обучения, используя sklearn-crfsuite
[('Google', 'NNP', 'B-ORG')
('LLC', 'NNP', 'I-ORG')
('is', 'VBZ', 'O')
('an', 'DT', 'O')
('American', 'JJ', 'B-GPE')
('multinational','NN', 'O')
('technology', 'NN', 'O')
('company', 'NN', 'O')
('.', '.', 'O')]
Как я могу пометить эти лексемы с помощью тэгов pos для желаемого результата или как я могу пометить эти слова, используяСхема маркировки IOB.