Hallo Zusammen,
Angenommen, ich habe ein Template in einer Tabellenkalkulation (Gnumeric, Libre, etc.), welches durch Python/QT/irgendeineDatenbank ersetzt werden soll. Und zwar nicht durch analysieren und nachprogrammieren, sondern einlesen und die Struktur automatisch nachbilden (es gibt ca. 10 verschiedene Templates, sodass der manuelle Aufwand viel zu gross waere).
Weiterhin ist die Struktur nicht einheitlich, d.h. es gibt keine Kopfzeile, sodass in allen Zeilen die Werte in den Spalten immer gleich waeren, sondern halt unterschiedlich. Als Beispiel: in der ersten Zeile stehen in 8 Spalten Positionswerte X, Y, Z, W als Vortext in je einer Spalte, danach die jeweilgen Werte (float) in einer Spalte. In der zweiten Zeile sind diese ganzen Spalten verbunden und es steht nur ein Hinweistext drinnen. In der dritten Zeile gibt es dann eine andere Struktur, usw. usw. Das X,Y,Z,W soll als Text im Template fest drin stehen, die float Werte werden dann spaeter eingegeben. Das Ganze wiederholt sich hier und da, aber voellig unstrukturiert. Z.B. koennten jetzt 10 Zeilen X,Y,Z,W als float folgen, bevor wieder eine Textzeile kommt. Also sozusagen ein voellig 'willkuerliches' Dokument. Und jedes weitere der ca. 10 Dokumente hat wiederum zwar ein aehnliches Format, aber untereinander jeweils komplett abweichend.
Gaebe es eine Kopfzeile und waeren die Spalten in jeder Zeile gleich, so waere es einfach, dass man die Struktur per SQLAlchemy aufbaut und die spaeter eingegebenen Werte in eine Datenbank schreibet. Die Anzeige der Zeilen / Spalten per Grid in QT.
Da sich die Zeilen aber sehr unstetig wiederholen, waere dieser Ansatz ja schon nicht mehr machbar, da sowohl alle Datensaetze unterschiedlich waeren, als auch die Anzeige auf eine GUI schwer zu realisieren waere.
Gibt es dazu Ideen, oder bereits bestehende Loesungen? Koennte man z.B. die Struktur mit Objekten aufbauen, diese per pickle serialisieren und sozusagen als Template dann immer wieder laden? Trotzdem waere dann das Problem, wie man unterschiedliche Zeilen strukturiert in eine Datenbank bringt, bzw. wie man sowas dann (dynamisch?) anzeigt/editierbar macht.
Hypothetische Frage
Kannst du mal 2-3 konkrete Beispiele aufmalen, wie die Eingangs- und Ausgangsdaten aussehen könnten?
So könnte man dieses völlig hypothetische Szenario ein wenig greifbarer machen und zu Lösungen kommen.
So könnte man dieses völlig hypothetische Szenario ein wenig greifbarer machen und zu Lösungen kommen.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
- __blackjack__
- User
- Beiträge: 13998
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@mechanicalStore: Das klingt nach, kann man unstrukturierte Daten magisch strukturieren lassen, ohne manuell eingreifen zu müssen? Ich würde ja eher sagen das geht nicht. Man könnte schauen wie weit da doch Struktur drin ist und eventuell Code schreiben, der das manuelle strukturieren unterstützt, damit es einfacher/schneller/sicherer wird.
Klingt so ein bisschen nach dem üblichen Problem, das Menschen Tabellenkalkulationen missbrauchen um da aus menschlicher Sicht ”Struktur” in Daten zu bringen, die aber aus maschineller Sicht dann doch nicht wirklich strukturiert sind. Weil die Eingabe nicht geprüft wird, weil Ad Hoc ”Regeln” dazu erfunden werden, …
Klingt so ein bisschen nach dem üblichen Problem, das Menschen Tabellenkalkulationen missbrauchen um da aus menschlicher Sicht ”Struktur” in Daten zu bringen, die aber aus maschineller Sicht dann doch nicht wirklich strukturiert sind. Weil die Eingabe nicht geprüft wird, weil Ad Hoc ”Regeln” dazu erfunden werden, …
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
-
- User
- Beiträge: 172
- Registriert: Dienstag 29. Dezember 2009, 00:09
Danke fuer die Antworten. Es handelt sich nicht um mein Thema. Ein Bekannter hat gefragt, ob man statt diesen Tabellen (hatte da auch nur einen kurzen Blick drauf) mit einem "schoenen Programm" arbeiten koenne, bzw. diese dahin umwandeln koenne.
Eure Antworten habe ich ehrlich gesagt so aehnlich schon erwartet. Mir fiel dazu halt auch nichts ein. Trotzdem danke.
Eure Antworten habe ich ehrlich gesagt so aehnlich schon erwartet. Mir fiel dazu halt auch nichts ein. Trotzdem danke.
So rein hypothetisch hat dein Bekannter das gleiche Problem das jeder Data Scientist hat. Schwach strukturierte Daten in brauchbare Strukturen überführen.
Ohne manueller Aufwand wird es nicht gehen, aber 10 verschiedene Templates klingt jetzt auch nicht nach unlösbare viele Daten.
Viele Data Scientist nehmen Jupyter Notebook zum Analysieren der Daten, ob das, was für deinen Bekannten ist, hängt vom konkreten Fall ab.
Grundsätzlich, ist das vorgehen:
1) Überblick verschaffen, welche Daten gibt es, welches sind Primärdaten und was sind aggregierte Daten?
2) Was ist eine geeignete Struktur für diese Rohdaten, wie Sollen die Daten strukturiert werden?
3) Transformation der Daten in eine strukturierte Form!
Das Transformieren macht dann für jedes Template ein eigenes Script (oder Jupyter Notebook) und schon sind es nur 10 kleine Templates.
Aber der Teufel steckt im Detail und irgendwas muss ja dann noch mit den strukturierten Daten weiterarbeiten. Von daher ist so eine Frage hypothetisch schwer zu beantworten.
Ohne manueller Aufwand wird es nicht gehen, aber 10 verschiedene Templates klingt jetzt auch nicht nach unlösbare viele Daten.
Viele Data Scientist nehmen Jupyter Notebook zum Analysieren der Daten, ob das, was für deinen Bekannten ist, hängt vom konkreten Fall ab.
Grundsätzlich, ist das vorgehen:
1) Überblick verschaffen, welche Daten gibt es, welches sind Primärdaten und was sind aggregierte Daten?
2) Was ist eine geeignete Struktur für diese Rohdaten, wie Sollen die Daten strukturiert werden?
3) Transformation der Daten in eine strukturierte Form!
Das Transformieren macht dann für jedes Template ein eigenes Script (oder Jupyter Notebook) und schon sind es nur 10 kleine Templates.
Aber der Teufel steckt im Detail und irgendwas muss ja dann noch mit den strukturierten Daten weiterarbeiten. Von daher ist so eine Frage hypothetisch schwer zu beantworten.