File size: 971 Bytes
6fc4565 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
from src.nlp.playground.ner import GlinerHandler
from src.utils.apis.googlemaps_api import GoogleMapsAPI
class AddressExtractor(GoogleMapsAPI):
def __init__(self):
super().__init__()
self.gliner_handler = GlinerHandler()
def extract_address(self, data):
entities = self.gliner_handler.extract_entities(data, ["STRASSE", "STADT"])
street = house_number = postal_code = city = None
for entity in entities:
if entity["label"] == "STRASSE":
if street is None:
street = entity["text"]
if entity["label"] == "STADT":
if city is None:
city = entity["text"]
address_text = " ".join([
street if street else "",
house_number if house_number else "",
postal_code if postal_code else "",
city if city else ""
])
return self.address_validation(address_text)
|