Source code for orkgnlp.annotation.agriner.decoder

# -*- coding: utf-8 -*-
""" Agri-NER service decoder. """

from typing import Any, Dict, List

from overrides import overrides

from orkgnlp.common.service.base import ORKGNLPBaseDecoder


[docs] class AgriNerDecoder(ORKGNLPBaseDecoder): """ The AgriNerDecoder decodes the Agri-NER service model's output to a user-friendly one. """ CONCEPTS_MAP = { "RP": "RESEARCH_PROBLEM", "P": "PROCESS", "METH": "METHOD", "R": "RESOURCE", "S": "SOLUTION", "LOC": "LOCATION", "T": "TECHNOLOGY", }
[docs] @overrides(check_signature=False) def decode(self, model_output: List[Dict[str, Any]], **kwargs: Any) -> Any: annotations = [] seen = [] for entity in model_output: if entity["entity_group"] in seen: continue seen.append(entity["entity_group"]) annotations.append( { "concept": self.CONCEPTS_MAP[entity["entity_group"]], "entities": [ i["word"] for i in model_output if i["entity_group"] == entity["entity_group"] ], } ) return annotations