![]() |
Text bereinigen: kurze Wörter löschen
Hallo,
eine Frage: ich hab in einem Textfile einen Text (ziemlicher Buchstaben-Müll..) Ich ignoriere die ganzen Sonderzeichen wie folgt: (und schreibe den Text in ein Datenbankfeld..)
Code:
im Text kommen sehr viel Müll vor - Rohdaten von einem EXTREMEN Beispiel:
for i := 0 to text_aus_file.Count - 1 do
begin s:=text_aus_file.Strings[i]; neu:=''; for x := 0 to Length(s)-1 do begin if (s[x] in ['0'..'9','a'..'z', 'A'..'Z','ä','ö','ü','ß','Ä','Ö','Ü',' ']) then neu:=neu+s[x]; end; TEXT.Edit; TEXT.FieldByName('TEXT').AsString:=TEXT.FieldByName('TEXT').AsString+neu; TEXT.Post; end; Zitat:
Meine Frage: Wie kann ich nun Wörter (mit und ohne Zahlen) mit 1, 2, und 3 Wort-Länge auch noch löschen ... so kurze Wörter haben keine Relevanz... mich interessieren nur die Wörter und Zahlen ab 4 Stellen Länge Vielen Dank für Hinweise LiGrü Erich |
AW: Text bereinigen: kurze Wörter löschen
Sowas?
Delphi-Quellcode:
var
neu : String; s : String; bereinigt : String; begin for i := 0 to text_aus_file.Count - 1 do begin s := text_aus_file.Strings[i]; neu := ''; bereinigt := ''; for x := 1 to Length(s) do begin if (s[x] in ['0'..'9','a'..'z', 'A'..'Z','ä','ö','ü','ß','Ä','Ö','Ü',' ']) then begin neu := neu + s[x]; end; end; if length(neu) > 5 then begin bereinigt := bereinigt + neu; end; end; TEXT.Edit; TEXT.FieldByName('TEXT').AsString := bereinigt; TEXT.Post; end; |
AW: Text bereinigen: kurze Wörter löschen
Hallo nahpets,
leider nicht ... Als Beispiel Ein String: " a uui ll ooorer Automobil j re 34a Flugzeug kf Schiffssegel" sollte ergeben: "Automobil Flugzeug Schiffssegel" - also alle "kurzen Wörter" aus einem String filtern... |
AW: Text bereinigen: kurze Wörter löschen
so?
Delphi-Quellcode:
var
neu : String; s : String; bereinigt : String; begin for i := 0 to text_aus_file.Count - 1 do begin s := text_aus_file.Strings[i]; neu := ''; bereinigt := ''; for x := 1 to Length(s) do begin case s[x] of '0'..'9', 'a'..'z', 'A'..'Z', 'ä','ö','ü','ß','Ä','Ö','Ü' : neu := neu + s[x]; else if length(neu) > 6 then begin bereinigt := bereinigt + neu + ' '; neu := ''; end; end; end; TEXT.Edit; TEXT.FieldByName('TEXT').AsString := bereinigt; TEXT.Post; end; end; |
AW: Text bereinigen: kurze Wörter löschen
Zitat:
Zitat:
Da musst du wohl mit einem Wörterbuch drüberfahren und Müll aussortieren. |
AW: Text bereinigen: kurze Wörter löschen
Hmm..
die Roh-Daten, welche Du uns gezeigt hast, ist das nen CopyPaste aus z.B. dem Windows-Editor? Oder sind zwischen den Zeichen eventuell weitere (Steuer-) Zeichen, welche nur als Leerzeichen dargestellt werden? Nur mal so ne Frage.. ;) Oder kannst Du eine Original-Datei mal komplett anhängen? |
AW: Text bereinigen: kurze Wörter löschen
Das sieht aus wie die OCR vor 20 Jahren. Kannst Du uns die Quelle nennen?
Ich würde für das Wörterbuch plädieren. Gruß K-H |
AW: Text bereinigen: kurze Wörter löschen
Zitat:
Siehe " a uui ll ooorer Automobil j re 34a Flugzeug kf Schiffssegel" Mindestlänge von 4 erfüllt, aber Müll. |
AW: Text bereinigen: kurze Wörter löschen
Hallo Leute - vielen Dank für die Hinweise :-)
@p80286 Rohdaten sind aus "Tesseract OCR" - ich verwende ghostscript, um PDF´s (bestehend meist aus gescannte A4 Seiten) in TIFF umzuwandeln... - und ich verwende tesseract OCR, um TIFF´s in TXT umzuwandeln - dann lade ich mir die TXT rein ... lösche "Füllwörter" (und, wie mit bei zu..) - da habe ich eine freie Liste online gefunen und dann speichere ich mir den Rest in eine DB @HolgerX JA - die Rohdaten haben weitere Steuerzeichen (Returns und Co) - die ich durch Copy/past (als auch händisch) nicht im Posting habe @SneakyBagels. "..Problem "ooorer" hat 6 Zeichen und alles ab 4 interessiert dich doch" Ja ... Ein Wörterbuch drüberlaufen lassen wäre natürlich perfekt - aber das überschreitet meine Fähigkeiten ;-) Wie soll ich z.b: Aus "Autm0bll" ein "Automobil" machen ... Und: Es sind viele Familiennamen und Regions-namen in den Texten - die findet man nicht in einer Wörterbuchliste - und die sind eigentlich meine wichtigsten Indikatoren |
AW: Text bereinigen: kurze Wörter löschen
Dann such mal nach "Kölner Phonetik / Levensthein / Soundex" da solltest Du hier recht schnell fündig werden.
Gruß K-H Edith: ![]() Edith2: Zitat:
Und was verstehst Du unter "Regionen" ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz