# Imports -------------------------------------------------------------------------------------------------- # https://huggingface.co/tasks/table-question-answering from transformers import pipeline import pandas as pd import time import math import os # Small snippet to retrieve coordinates from a geojson file import requests import json #Working Directory setzen os.chdir('C:/Users/Jens_/Documents/Unterlagen/Studium Dresden/2. Semester/GIT06/GID-Project') #muss angepasst werden # GADM Deutschland Beispielpolygone -------------------------------------------------------------------- # Vorbereitung # Daten laden with open('Daten/GeoJSON/gadm41_DEU_1.json', 'r', encoding='utf-8') as json_datei: daten = json.load(json_datei) os.close('Daten/GeoJSON/gadm41_DEU_1.json') table = pd.DataFrame.from_dict(daten["features"]) # Daten in passendes Format bringen (Pandas Data-Frame) prop = table['properties'] #Properties in die Tabelle integrieren prop = pd.DataFrame(list(prop)) del table['properties'] table = pd.concat([table, prop], axis = 1) geom = table["geometry"] # Koordinatenzeilen abspeichern und durch Indexe ersetzen (Berechnungsdauer) table["geometry"] = [str(i) for i in range(table.shape[0])] print(table) # Modell tqa = pipeline(task="table-question-answering", model="google/tapas-large-finetuned-wtq") # Frage question = 'give me the geometry of england' # Berechnung t = round(time.time()) # Berechnungszeit messen i = tqa(table=table, query=question)['cells'][0] try: i = int(i) answer = geom[i] except: InterruptedError ('Falsche Spalte (Es wurde kein Index ausgegeben)') answer = 'answer: ' + i t = round(time.time())-t t = str(math.floor(t) // 3600) + "::" + str((t-(math.floor(t) // 360)*360) // 60) + "::" + str((t-(math.floor(t) // 60)*60)) # Überprüfung print(answer) table.iloc[i] print(t) # ~2 sec #Ziel der Frage, Orte der Frage # Wie kann man verschiedene BL ausgegeben bekommen (in der Frage angegeben) # Wie kann man verschiedene "Operationen" (Zwischen, alle, ect.) in der Frage erkennen