Wörter ohne Leerzeichen erkennen

stulleman

Bekanntes Mitglied
Hallo zusammen!
Ich habe eine sehr sehr große Liste mit aneinandergereihten Buchstaben.
Ein Eintrag in dieser Liste muss ein Satz ergeben z.B. so: "halloichheißemax"
Jetzt habe ich mir überlegt wie der Computer erkennen kann wann es ein deutscher Satz ist und was nicht.
Dazu habe ich mir folgendes Verfahren ausgedacht:
Es wird geguckt ob ab 0 bis ende ein Wort ist.
In meinem Fall ja, "hallo".
Dann wird nach diesem Wort weiter geguckt bis wohin das nächste Wort geht "ich" usw.
Wenn es aufgeht, habe ich den richtigen Satz gefunden.
Nun sind aber leider nicht alle Sätze so einfach: "hoffentlichsindwirbaldda"
Hier würde er beim ersten mal "hof" entdecken, würde merken das danach kein Wort mehr gebildet werden kann also sucht er ob von Anfang an ein anderes Wort außer "hof" gebildet werden kann.
In dem Fall ja, "hoffentlich". Dann würde alles normal weiter gehen.
Leider geht es aber noch schwieriger und zwar bei dem Satz "siewareinliebesmädchen".
Nachdem er den Anfang durch hat, wird er irgendwann "lieb" erkennen. Es soll aber eigentlich "liebes" erkannt werden. Das Problem ist das er nach "lieb" "es" erkennt und denkt es wäre richtig.
Vielleicht ist der Ansatz falsch... Habt ihr eine Idee?
 
Wenn du wirklich den korrekten deutschen Satz extrahieren willst, musst du dich wohl von der Zeichenebene lösen und die Grammatik betrachten. Offensichtlich wärest du dann in der Lage zu entscheiden, dass dein letzter Satz schon ein Subjekt enthält und nach "lieb" kein Pronomen kommen kann.

Ein anderer Ansatz wäre vielleicht einfach gierig, alle (nur) orthografisch richtigen Sätze zu extrahieren. Also sowohl "Sie war ein liebes Mädchen" als auch "Sie war ein lieb es Mädchen", selbst "Sie Ware in Lieb es Mädchen". Und daran dann weiter zu analysieren.

Hast du wirklich nur die Kleinbuchstaben zur Verfügung? Also so oder so ist es eine sehr schwierige Angelegenheit, für die es sicherlich hilfreich seien könnte, Computerlinguistik ? Wikipedia studiert zu haben 😉 Woher kommen deine Daten eigentlich?
 
Ich finde den Ansatz gar nicht so schlecht einfach zu überprüfen ob es eine Möglichkeit gibt alle Buchstaben in Wörtern unterzukriegen, denn das wird wahrscheinlich sehr selten passieren.
Die Daten kommen aus einem Buch das ich konvertiere. Das heißt ich könnte das Buch auch so konvertieren das Großbuchstaben dabei sind. Das ganze kommt aus einem Verschlüsselungsprojekt.
Um die Grammatik hatte ich eigentlich die ganze Zeit versucht einen großen Bogen zu machen.
Ich hoffe immer noch auf eine einfachere Lösung 😉
 
Die Daten kommen aus einem Buch das ich konvertiere. Das heißt ich könnte das Buch auch so konvertieren das Großbuchstaben dabei sind.

Ja, also der erste Schritt wäre auf jeden Fall mit der Information über die Großbuchstaben Leerzeichen einfügen. Da gibt es natürlich auch wieder Sonderfälle, wenn ein ganzes Wort groß geschrieben sein sollte (bei ordentlichen Büchern eigentlich eher nicht?) Oder Abkürzungen ... ich nehme an Satzzeichen etc. hast du auch nicht zur Verfügung?

Aber die Leerzeichen sind nicht weg, um Speicherplatz zu sparen oder? Weil das wäre dann für das Wiedereinfügen ein hoher Preis 😉

Also ganz klar: Es gibt keine triviale, immer exakte Lösung für dein Problem, nur Annäherungen. Das ist ungefähr so wie, wenn du anstatt der Leerzeichen die Vokale weglässt. Ein Mensch kann es immernoch halbwegs lesen aber es fehlen halt Informationen, die nicht trivial wiederhergestellt werden können. Oder noch ein Beispiel: Ein Bild um 50% verkleinern und dann um 200% vergrößern, .. das Ergebnis kann nicht mit dem Ausgangsbild übereinstimmen. Auch wenn es diesem im besten Falle sehr nahe kommt.
 
Zuletzt bearbeitet:
Da gibt es natürlich auch wieder Sonderfälle, wenn ein ganzes Wort groß geschrieben sein sollte (bei ordentlichen Büchern eigentlich eher nicht?)

Das Buch heißt Effi Briest von Theodor Fontane. Denke das ist ordentlich geschrieben 😉

Aber die Leerzeichen sind nicht weg, um Speicherplatz zu sparen oder? Weil das wäre dann für das Wiedereinfügen ein hoher Preis

Nein, der Text besteht nachher nur noch aus den Buchstaben a-z(A-Z), 0-9 und Umlauten weil ab einer bestimmten Zeile ein Code erstellt wurde, der keine Leerzeichen vorher sieht. Meine Aufgabe ist es nämlich den Code zu entschlüsseln 😉

Ich hätte echt gedacht das das einfacher wird 😉
 
Die Daten kommen aus einem Buch das ich konvertiere.
Das Buch heißt Effi Briest von Theodor Fontane. Denke das ist ordentlich geschrieben
Wenn du weißt, dass die Daten aus einem "ordentlich geschriebenem" Buch stammen, was willst du denn da noch untersuchen? Aber sobald du die Leerzeichen einmalig gelöscht hast, kannst du nicht ohne weiteres Wissen die Ursprüngliche Form herstellen. Allerdings können es da auch schlauere Lösungsansätze geben, wenn du die Aufgabe genau beschreibst.
 

Zurück
Oben