Modul: Algorithmische Silbentrennung (deutsch)
Re: Module: Silbentrennung
Klar ist das okay, RSBasic, besten Dank.
In Post 1 ist jetzt eine aktuelle Version verfügbar (1.02), die eine Wortende-Behandlung hat.
Damit wird Dein Wort "Installationseinstellungen" richtig getrennt. Deine anderen Worte muss ich dann noch testen.
Edit: RSBasic, Deine Wortliste wird jetzt korrekt getrennt. Ich habe die Datenbasis erweitert und die Beispiel alle in post 1 ein-ge-fügt.
In Post 1 ist jetzt eine aktuelle Version verfügbar (1.02), die eine Wortende-Behandlung hat.
Damit wird Dein Wort "Installationseinstellungen" richtig getrennt. Deine anderen Worte muss ich dann noch testen.
Edit: RSBasic, Deine Wortliste wird jetzt korrekt getrennt. Ich habe die Datenbasis erweitert und die Beispiel alle in post 1 ein-ge-fügt.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Re: Module: Silbentrennung
Danke für den link Kiffi, schaue ich mir an.Kiffi hat geschrieben:hierzu gäbe es auch einen PB-Wrapper: http://www.purebasic.fr/english/viewtop ... 12&t=49236 (weiß allerdings nicht, ob der auch funktioniert).NicTheQuick hat geschrieben:Eine Idee wäre auch noch das komplette deutsche Dictionary von Hunspell zu testen. Dann kannst du sicherlich auch ganz einfach die Sonderfälle automatisiert einpflegen.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Re: Module: Silbentrennung
Der Vollständigkeit halber:
Hier gibt's sowas Ähnliches.
Hier gibt's sowas Ähnliches.
- Thorsten1867
- Beiträge: 1359
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Re: Module: Silbentrennung
Habe mich vor einiger Zeit mit dem Thema beschäftigt.
Mein Ansatz basiert auf Hyphenation Pattern (Algorithmus von Frankling Mark Liang) und funktioniert sehr zuverlässig.
http://www.purebasic.fr/german/viewtopi ... entrennung
Mein Ansatz basiert auf Hyphenation Pattern (Algorithmus von Frankling Mark Liang) und funktioniert sehr zuverlässig.
http://www.purebasic.fr/german/viewtopi ... entrennung
Re: Module: Silbentrennung
Danke fürs Teilen.
Der Algorithmus funktioniert im Großen und Ganzen gut.
Hier sind aber ein paar Fehler die ich gefunden habe:
http://www.softhyphen.com/hyphenate
Den entsprechenden Code (in Python) und die dictionaries gibt es hier:
https://github.com/fortes/softhyphen
Dieser Algorithmus wird auch in OpenOffice verwendet, und wenn ich mich nicht irre
dann ist es der gleiche welcher auch von Thorsten verwendet wird.
zu guter Letzt:
https://www.youtube.com/watch?v=M7R35mhPaaI
Der Algorithmus funktioniert im Großen und Ganzen gut.
Hier sind aber ein paar Fehler die ich gefunden habe:
Hier habe ich ein online Silbentrenner gefunden:Sil|ben|tren|nung|sal|go|rith|mus anstatt Sil|ben|tren|nungs|al|go|rith|mus
Rechtsch|rei|bung anstatt Recht|schrei|bung
An|schauungskraft anstatt An|schau|ungs|kraft
Be|treuungsgeld anstatt Be|treu|ungs|geld
Bef|reiungsschlag anstatt Be|frei|ungs|schlag
Er|ge|bnis anstatt Er|geb|nis
Rö|schen anstatt Rös|chen
Rö|schen|hof wiederum wird richtig getrennt, kommt aber auch vom Eigennamen Rösch.
Falls es aber von Rose kommt wäre es aber Rös|chen|hof
Und weil das noch nicht verwirrend genug war, lautet es:
Wach|stube
oder
Wachs|tube
?
http://www.softhyphen.com/hyphenate
Den entsprechenden Code (in Python) und die dictionaries gibt es hier:
https://github.com/fortes/softhyphen
Dieser Algorithmus wird auch in OpenOffice verwendet, und wenn ich mich nicht irre
dann ist es der gleiche welcher auch von Thorsten verwendet wird.
zu guter Letzt:
https://www.youtube.com/watch?v=M7R35mhPaaI
Re: Module: Silbentrennung
Vielen Dank für Euer feedback.
Wie ich sehe kommt der von mir verwendete Algorithmus auch nicht ohne größere Vorsilben-, Ausnahme- und Endungslisten aus.
Vermutlich werde ich die Daten in externe Dateien auslagern, damit man sie bequemer pflegen kann.
Vielleicht mal zur Erklärung: Mir liegt nur der Algorithmus zu meiner Umsetzung vor. Die Qualität der Trennungen hängt aber weitestgehend von der Vollständigkeit der benötigten Vokale und konsonaten-Gruppen in den Variablen sVokale... und sKonsonaten... sowie der verwendeten Vorsilben in sVorsilben ab. Diese Daten liegen mir nicht komplett vor und die gilt es jetzt durch die fehlerhaften Trennungen zu vervollständigen.
Die zusätzlich verwendeten Ausnahme-Daten, die ganze Wortteile beschreiben, sollten dabei so wenig wie möglich Verwendung finden (das sind die Datatzeilen am Ende des Moduls). Das sollte dan nnur das letzte Mittel sein - quasi die Holzhammermethode.
Wie ich sehe kommt der von mir verwendete Algorithmus auch nicht ohne größere Vorsilben-, Ausnahme- und Endungslisten aus.
Vermutlich werde ich die Daten in externe Dateien auslagern, damit man sie bequemer pflegen kann.
Vielleicht mal zur Erklärung: Mir liegt nur der Algorithmus zu meiner Umsetzung vor. Die Qualität der Trennungen hängt aber weitestgehend von der Vollständigkeit der benötigten Vokale und konsonaten-Gruppen in den Variablen sVokale... und sKonsonaten... sowie der verwendeten Vorsilben in sVorsilben ab. Diese Daten liegen mir nicht komplett vor und die gilt es jetzt durch die fehlerhaften Trennungen zu vervollständigen.
Die zusätzlich verwendeten Ausnahme-Daten, die ganze Wortteile beschreiben, sollten dabei so wenig wie möglich Verwendung finden (das sind die Datatzeilen am Ende des Moduls). Das sollte dan nnur das letzte Mittel sein - quasi die Holzhammermethode.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Re: Module: Silbentrennung
Danke.Dadido3 hat geschrieben:Sil|ben|tren|nung|sal|go|rith|mus anstatt Sil|ben|tren|nungs|al|go|rith|mus
Rechtsch|rei|bung anstatt Recht|schrei|bung
An|schauungskraft anstatt An|schau|ungs|kraft
Be|treuungsgeld anstatt Be|treu|ungs|geld
Bef|reiungsschlag anstatt Be|frei|ungs|schlag
Er|ge|bnis anstatt Er|geb|nis
Rö|schen anstatt Rös|chen
Rö|schen|hof wiederum wird richtig getrennt, kommt aber auch vom Eigennamen Rösch.
Falls es aber von Rose kommt wäre es aber Rös|chen|hof
In der neuen Version 1.03 wurde eine Trennung an Doppelkonsonanten und Mehrfachvokalen zugefügt. Außerdem ist die Datenbasis erweitert worden, so dass alle bisherigen Beispiele aus dem Thread korrekt übersetzt werden.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Re: Module: Silbentrennung
Hallo zusammen,
ich habe nach langer Zeit mal wieder was an dem Modul gemacht.
Ein kleiner fix (eine ungenutzte Variable aus dem code entfernt) sowie die Trennungsleistung verbessert indem ich die Datenbasis erweitert und eine neue Sonderfallfunktion für ganze Wortkombinationen zugefügt habe.
Als kleines Hilfsmittel habe ich im Beispielvode des Moduls nun eine Funktion zugefügt, die (versucht) die Korrektheit des von dem Modul getrennten Wortes direkt auf http://www.duden.de zu prüfen. Da duden.de keine API dafür hat oder ich davon nichts weiß, versuche ich das Ergebnis aus dem HTPRequest heraus zu parsen. Das funktioniert vermutlich nur so lange bis duden.de den Aufbau ihrer Seite verändert - also nichts für die Ewigkeit.
Der Aufruf dafür lautet:
Im Debugfester gibt es darauf hin diese drei möglichen Ergebnisse:
Der aktuelle Code befindet sich im ersten Post dieses Threads.
Gruß Kurzer
ich habe nach langer Zeit mal wieder was an dem Modul gemacht.
Ein kleiner fix (eine ungenutzte Variable aus dem code entfernt) sowie die Trennungsleistung verbessert indem ich die Datenbasis erweitert und eine neue Sonderfallfunktion für ganze Wortkombinationen zugefügt habe.
Als kleines Hilfsmittel habe ich im Beispielvode des Moduls nun eine Funktion zugefügt, die (versucht) die Korrektheit des von dem Modul getrennten Wortes direkt auf http://www.duden.de zu prüfen. Da duden.de keine API dafür hat oder ich davon nichts weiß, versuche ich das Ergebnis aus dem HTPRequest heraus zu parsen. Das funktioniert vermutlich nur so lange bis duden.de den Aufbau ihrer Seite verändert - also nichts für die Ewigkeit.
Der Aufruf dafür lautet:
Code: Alles auswählen
Check("Überschallflugzeug")
Code: Alles auswählen
Über|schall|flug|zeug Korrekt!
oder
Über|schall|flug|zeug ist nicht im Duden vorhanden
oder
Über|schall|flug|zeug luss lt. Duden heißen: <korrekte Trennweise>
Code: Alles auswählen
;* 1.04 - 14.04.19:
;* fix Nicht benutzte Variable entfernt und Trennungsgenauigkeit verbessert (Datenbasis erweitert)
;* add SonderfallGanzesWort() hinzugefügt für nicht algorithmisch trennbare Wortkombinationen
;* z.B. für Sil|ber|ei|sen statt falsch Sil|be|rei|sen (Silbe & Reisen)
;* add Im Beispielcode des Modules wurden Funktionen zugefügt, die die Korrektheit der Trennung online
;* bei www.duden.de überprüfen.
Gruß Kurzer
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Re: Modul: Algorithmische Silbentrennung (deutsch)
Fix für Procedure AskDuden():
Code: Alles auswählen
; Status prüfen und die korrekte Trennungsschreibweise aus der duden.de webseite extrahieren und übergeben
If FindString(sResponse, "Es ist leider ein Fehler aufgetreten") = 0
If FindString(sResponse, "Von Duden empfohlene Trennung") > 0
sResponse = GetStringPart(sResponse, ~"Von Duden empfohlene Trennung</dt><dd class=\"tuple__val\">", "</dd>")
Else
sResponse = GetStringPart(sResponse, ~"Worttrennung</dt><dd class=\"tuple__val\">", "</dd>")
EndIf
ProcedureReturn sResponse
EndIf
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Re: Modul: Algorithmische Silbentrennung (deutsch)
Vielen Dank für die Anpassung Sicro.
Ich habe das Modul angepasst und den Code im ersten Posting aktualisiert.
Gruß Kurzer
Ich habe das Modul angepasst und den Code im ersten Posting aktualisiert.
Gruß Kurzer
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.