Spaces:
Sleeping
Sleeping
# 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 | |