def bio_classification_report(y_gold,y_pred):
#y_gold: [[],[],[]]
#y_pred:
lb = LabelBinarizer()
y_gold_combined = lb.fit_transform(list(chain.from_iterable(y_gold)))
y_pred_combined = lb.fit_transform(list(chain.from_iterable(y_pred)))
tagset = set(lb.classes_) - {'O'}
tagset = sorted(tagset,key=lambda tag: tag.split('-',1)[::-1])
class_indices = {cls:idx for idx,cls in enumerate(lb.classes_)}
return classification_report(
y_gold_combined,
y_pred_combined,
labels=[class_indices[cls] for cls in tagset],
target_names=tagset
)
评论列表
文章目录