Angabe von Silbenhäufigkeiten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
xdisorder
User
Beiträge: 2
Registriert: Montag 25. Mai 2009, 01:02

Hat jemand zufällig Erfahrung mit der Erstellung eines Scriptes, welches die Anzahl von Silben beliebiger Wörter der englischen Sprache angeben kann?
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Vielleicht hilft das?
MfG
HWK
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Hyphenate.py implements Frank Liang's hyphenation algorithm (the one used in TeX) in Python.
Nicht schlecht! TeX war das erste, was mir in den Sinn kam. :)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Ich denke dies ist nicht das passende Forum für Dein Problem.
Fragen wie diese solltest Du besser in "Allgemeines" platzieren.
xdisorder
User
Beiträge: 2
Registriert: Montag 25. Mai 2009, 01:02

Zunächst vielen lieben Dank für die Antworten und bisherigen Hilfen.
Ich bin kein Profi in der Erstellung von Python-Programmen, deshalb noch eine Frage. Ist es möglich, dass man die Häufigkeiten von diversen Silben angeben lassen kann. Ich stelle mir das eher problematisch vor, weil es recht viele verschieden Silbenarten gibt, die ich ja nicht alle vorher eingeben kann, oder ist das irrelevant?

@hendriks: Verzeihe, ich war mir nicht sicher, wo ich meine Frage am besten hätte posten können. Kann man den Thread in ein anderes Forum verschieben?
Bernhard
User
Beiträge: 136
Registriert: Sonntag 15. Januar 2006, 20:31
Wohnort: Greifswald
Kontaktdaten:

xdisorder hat geschrieben:Ich stelle mir das eher problematisch vor, weil es recht viele verschieden Silbenarten gibt, die ich ja nicht alle vorher eingeben kann, oder ist das irrelevant?
Du musst doch nicht alle möglichen Silben vorher eingeben: hyphenate gibt Dir eine Liste zurück und Du zählst einfach nur die darin vorkommenden Silben. Oder habe ich Deine Frage falsch verstanden? Was genau meinst Du mit "Silbenarten"?
BlackJack

Ansonsten gäb's noch wordaxe.

Edit (Leonidas): Thread verschoben.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

wo kommen denn auf einmal die ganzen angehenden computerlinguisten her?

ich kann nur immer wieder das natural language toolkit empfehlen.

http://www.nltk.org/
http://www.kinderpornos.info
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Hier mal eine ganz simple Loesung mit Hyphenate:

Code: Alles auswählen

from hyphenate import hyphenate_word
from collections import defaultdict

text = """
Once upon a midnight dreary, while I pondered weak and weary,
Over many a quaint and curious volume of forgotten lore,
While I nodded, nearly napping, suddenly there came a tapping,
As of some one gently rapping, rapping at my chamber door.
`'Tis some visitor,' I muttered, `tapping at my chamber door -
Only this, and nothing more.'
"""

syllable_count = defaultdict(lambda: 0)
words = text.split()

for word in words:
    word = word.strip(",.!?'`")
    syllables = hyphenate_word(word)
    for syl in syllables:
        syllable_count[syl] += 1

print syllable_count
Heraus kommt:
{'and': 3, 'this': 1, 'tered': 1, 'tap': 2, 'ten': 1, 'vol': 1, '-': 1, 'some': 2, 'near': 1, 'ry': 1, 'pon': 1, 'vis': 1, 'Only': 1, 'at': 2, 'rap': 2, 'ous': 1, 'my': 2, 'cham': 2, 'ing': 1, 'cu': 1, 'As': 1, 'sud': 1, 'for': 1, 'quaint': 1, 'there': 1, 'ping': 5, 'mid': 1, 'ume': 1, 'nod': 1, 'nap': 1, 'lore': 1, 'got': 1, 'dered': 1, 'ri': 1, 'ly': 2, 'door': 2, 'mut': 1, 'I': 3, 'upon': 1, 'of': 2, 'weak': 1, 'weary': 1, 'While': 1, 'drea': 1, 'one': 1, 'gen': 1, 'Once': 1, 'a': 3, 'i': 1, 'many': 1, 'Over': 1, 'noth': 1, 'tor': 1, 'while': 1, 'Tis': 1, 'den': 1, 'night': 1, 'ber': 2, 'more': 1, 'ded': 1, 'tly': 1, 'came': 1}

Wie die Homepage sagt, findet Hyphenate nicht alle moeglichen Trennungen, das kann man hier schon sehen ("many" koennte man ja z.B. noch trennen); und wird "gently" wirklich gen-tly getrennt? Ausserdem sollte man die Methode zur Extraktion der einzelnen Woerter noch verfeinern, man muss sich ueberlegen, was mit Verkuerzungen a la "don't" etc passieren soll.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten