Spaces:
Running
Running
| from dataclasses import dataclass, field | |
| from span_dataclass_converters import get_ner_spans_from_annotations | |
| class PredefinedExample: | |
| text: str | |
| gt_labels: dict | |
| default_predictions: list = field(default_factory=list) | |
| # gt_spans: list | |
| # predictions: list | |
| def gt_spans(self): | |
| return sorted( | |
| get_ner_spans_from_annotations(self.gt_labels), | |
| key=lambda span: span["start"], | |
| ) | |
| def predictions(self): | |
| return [self.gt_spans] + self.default_predictions | |
| def tags(self): | |
| return list(self.gt_labels.keys()) | |
| small_example = PredefinedExample( | |
| text="The patient was diagnosed with bronchitis and was prescribed a mucolytic", | |
| gt_labels={ | |
| "Disease": [ | |
| {"start": 31, "end": 41, "label": "bronchitis"}, | |
| ], | |
| "Drug": [ | |
| {"start": 63, "end": 72, "label": "mucolytic"}, | |
| ], | |
| }, | |
| default_predictions=[ | |
| [ | |
| { | |
| "start": 26, | |
| "end": 41, | |
| "label": "Disease", | |
| "span_text": "with bronchitis", | |
| }, | |
| {"start": 61, "end": 72, "label": "Drug", "span_text": "a mucolytic"}, | |
| ], | |
| [ | |
| {"start": 31, "end": 41, "label": "Drug", "span_text": "bronchitis"}, | |
| {"start": 63, "end": 72, "label": "Drug", "span_text": "mucolytic"}, | |
| ], | |
| [ | |
| { | |
| "start": 31, | |
| "end": 72, | |
| "label": "Disease", | |
| "span_text": "bronchitis and was prescribed a mucolytic", | |
| } | |
| ], | |
| ], | |
| ) | |
| big_example = PredefinedExample( | |
| text=( | |
| "The patient was experiencing stomach pain and flu like symptoms for 3 days. " | |
| "Upon investigation, the chest xray revealed acute bronchitis disease. " | |
| "The patient was asked to take rest for a week and was prescribed a mucolytic along with paracetamol for body pains." | |
| ), | |
| gt_labels={ | |
| "Disease": [ | |
| {"start": 120, "end": 144, "label": "acute bronchitis disease"}, | |
| ], | |
| "Drug": [ | |
| {"start": 213, "end": 222, "label": "mucolytic"}, | |
| {"start": 234, "end": 245, "label": "paracetamol"}, | |
| ], | |
| "Symptoms": [ | |
| {"start": 29, "end": 41, "label": "stomach pain"}, | |
| {"start": 46, "end": 63, "label": "flu like symptoms"}, | |
| ], | |
| }, | |
| default_predictions=[ | |
| [ | |
| {"start": 29, "end": 41, "label": "Symptoms", "span_text": "stomach pain"}, | |
| {"start": 46, "end": 49, "label": "Symptoms", "span_text": "flu"}, | |
| { | |
| "start": 120, | |
| "end": 136, | |
| "label": "Disease", | |
| "span_text": "acute bronchitis", | |
| }, | |
| {"start": 213, "end": 222, "label": "Drug", "span_text": "mucolytic"}, | |
| {"start": 234, "end": 245, "label": "Drug", "span_text": "paracetamol"}, | |
| ], | |
| [ | |
| {"start": 29, "end": 41, "label": "Symptoms", "span_text": "stomach pain"}, | |
| {"start": 46, "end": 49, "label": "Disease", "span_text": "flu"}, | |
| { | |
| "start": 120, | |
| "end": 136, | |
| "label": "Disease", | |
| "span_text": "acute bronchitis", | |
| }, | |
| {"start": 213, "end": 222, "label": "Drug", "span_text": "mucolytic"}, | |
| {"start": 234, "end": 245, "label": "Drug", "span_text": "paracetamol"}, | |
| {"start": 250, "end": 260, "label": "Symptoms", "span_text": "body pains"}, | |
| ], | |
| ], | |
| ) | |
| EXAMPLES = [small_example, big_example] | |