Angabe von Silbenhäufigkeiten
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Nicht schlecht! TeX war das erste, was mir in den Sinn kam.Hyphenate.py implements Frank Liang's hyphenation algorithm (the one used in TeX) in Python.

Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
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?
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?
-
- User
- Beiträge: 136
- Registriert: Sonntag 15. Januar 2006, 20:31
- Wohnort: Greifswald
- Kontaktdaten:
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"?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?
wo kommen denn auf einmal die ganzen angehenden computerlinguisten her?
ich kann nur immer wieder das natural language toolkit empfehlen.
http://www.nltk.org/
ich kann nur immer wieder das natural language toolkit empfehlen.
http://www.nltk.org/
http://www.kinderpornos.info
- 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:
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.
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
{'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
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei