Предварительная обработка данных для NER scpacy с файлом рассола

#python #spacy #named-entity-recognition

Вопрос:

У меня есть файлы для обучения и тестирования рассола. Данные внутри файла pickle выглядят примерно так:

  [(['The', 'TGF', '-', 'beta', 'type', 'II', 'receptor', 'in', 'chronic', 'myeloid', 'leukemia', ':', 'analysis', 'of',
   'microsatellite', 'regions', 'and', 'gene', 'expression', '.'],
  ['O', 'B-Gene_or_gene_product', 'I-Gene_or_gene_product', 'I-Gene_or_gene_product', 'I-Gene_or_gene_product',
   'I-Gene_or_gene_product', 'I-Gene_or_gene_product', 'O', 'B-Cancer', 'I-Cancer', 'I-Cancer', 'O', 'O', 'O', 'O', 'O',
   'O', 'O', 'O', 'O']),
 (['Genomic', 'instability', 'is', 'one', 'mechanism', 'proposed', 'to', 'play', 'a', 'role', 'in', 'the', 'disease',
   'progression', 'of', 'chronic', 'myeloid', 'leukemia', '(', 'CML', ')', '.'],
  ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-Cancer', 'I-Cancer', 'I-Cancer', 'O',
   'B-Cancer', 'O', 'O'])]
 

Мне нужны данные в таком формате:

 [["Selegiline - induced postural hypotension in Parkinson ' s disease : a longitudinal study on the effects of drug withdrawal .", {'entities': [(21, 29, 'B-Cancer'), (30, 41, 'I-Cancer'), (45, 54, 'B-Cancer'), (55, 56, 'I-Cancer'), (57, 58, 'I-Cancer'), (59, 66, 'I-Cancer')]}]
 

Как использовать spacy, чтобы получить необходимый список. Мне это нужно для тренировок.