Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
silbentrennung

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
drfree
Gast





BeitragVerfasst am: 16. März 2004 9:49   Titel: silbentrennung

Hallo
ich möchte ein silbentrennungs tool schreiben, hat einer schon mal so was gemacht?!
hat einer eine ide oder ein tip?!

mfg

drfree
 

Descartes
Gast





BeitragVerfasst am: 17. März 2004 0:12   Titel: Re: silbentrennung

Was ist an dieser -- zudem recht allgemein gestellten -- Frage denn C spezifisch?

Google schon mal befragt?
http://www.google.com/search?q=silbentrennung+algorithmus

Auf anhieb habe ich dort ein paar interessante Links gefunden:

SiSiSi - Sichere sinnentsprechende Silbentrennung für die deutsche Sprache
http://www.ads.tuwien.ac.at/research/SiSiSi/

EducETH - Informatik - ETH-Lernaufgabe: Silbentrennung
http://www.educeth.ch/informatik/lernaufg/textver/trennen/info.html

und hier mal eine Beispiel-Implementierung:



Daniel Kirsch wrote:

Mein Algorithmus ist sehr klein und ich kann ihn Dir gerne schicken, allerdings ist er in OpenScript geschrieben. Sollte aber halbwegs leserlich sein:

Die Funktion wird mit
silbentrennung("trennungswort")
aufgerufen und liefert eine Liste aus Positionswerten an denen getrennt werden darf.
Die variable "verbindungen" wird verwendet, um typische Zusammenhängende Laute zu definieren. Dabei wird in kauf genommen, das es viele Ausnahmen gibt, bei denen ein entsprechendes Wort anders getrennt wird.

Zeilen mit "--" sind Kommentare, die Nummerierung in OpenScript beginnt mit 1 anstatt mit 0.
Here we go



code:

to get silbentrennung string welchesWort
local int zeichenAnzahl, i
local logical trennenErlaubt
local string z, z0, z1, v
local stack trennPositionen

zeichenAnzahl = charCount(welchesWort)
if zeichenAnzahl > 2
trennenErlaubt = false
vokale = "a,e,i,o,u,ä,ü,ö"

-- "sch" wie in "A_sche" -- "ch" wie in "Untersu_chen"
-- "ph" wie in "Ste_phan" -- "ck" wie in "Zu_cker"
-- "pf" wie "A_pfel" -- "br" wie in "Unter_brechung"
-- "pl" wie "Finanz_plan" -- "tr" wie in "An_trag"
-- "st" wie in "Auf_stehen" -- "gr" wie in "Hinter_grund"
verbindungen = "sch,ch,ph,ck,pf,br,pl,tr,st,gr"
trennungen = "-,/,\,*,#,;,.,+,=,),(,&,!,?,<,>,:, ,_,~"

step i from 2 to (zeichenAnzahl-1)
z0 = char i-1 of welchesWort
if trennenErlaubt = false and istIn(z0,vokale)
trennenErlaubt = true
end if
if trennenErlaubt
z = char i of welchesWort
z1 = char i+1 of welchesWort
v = z0 & z
if v = "ch" and i > 2 and char i-2 of welchesWort = "s"
v = "sch"
end if
if istIn(z1,vokale) and istIn(z,vokale) = false and istIn(z,trennungen) = false and istIn(z0,trennungen) = false
if istIn(v,verbindungen)
push (i-charCount(v)+1) onto trennPositionen
else
push i onto trennPositionen
end if
end if
end if
end step
end if
return trennPositionen
end silbentrennung

 

drfree
Gast





BeitragVerfasst am: 18. März 2004 14:18   Titel: Re: silbentrennung

besten dank!!

mfg drfree
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy