Reguläre Ausdrücke und Umlaute in topia.termextract

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
vocoder
User
Beiträge: 13
Registriert: Samstag 2. April 2011, 00:37

Hallo,

ich bin gerade dabei einen "term extractor" auszuprobieren, mit dem man Texte automatisch taggen (Parts-Of-Speech Tagging) kann: http://pypi.python.org/pypi/topia.termextract/

Schaut euch das mal an, für englische Texte funktioniert das super. Bei deutschen Texten, gibt es aber Probleme mit Umlauten. Wie es aussieht werden aus einem Wort, das Umlaute enthält, mehrere, ungefähr so: "Geschäftsführer" -> "Gesch äftsf ührer"

Ich habe die Skripte mal untersucht und die Ursache liegt wohl in der Tagger.tokenize-Funktion in tag.py, genauer an diesem Code am Anfang der Datei:

Code: Alles auswählen

TERM_SPEC = re.compile('([^a-zA-Z]*)([a-zA-Z-\.]*[a-zA-Z])([^a-zA-Z]*[a-zA-Z]*)')
Wie kann man diesen regulären Ausdruck so ändern, dass er Umlaute korrekt unterstützt? Kann jemand helfen?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

vocoder hat geschrieben:

Code: Alles auswählen

TERM_SPEC = re.compile('([^a-zA-Z]*)([a-zA-Z-\.]*[a-zA-Z])([^a-zA-Z]*[a-zA-Z]*)')
Wie kann man diesen regulären Ausdruck so ändern, dass er Umlaute korrekt unterstützt? Kann jemand helfen?
Statt a-zA-Z würde ich ja eher \w verwenden und das IGNORECASE-Flag einsetzen. Die damit zusätzlich getroffenen Ziffern sind hier meiner Meinung anch auch nicht verkehrt. Damit kannst du direkt auch deutsche Umlaute erwischen, gesetzt den Fall du verwendest zusätzlich das LOCALE-Flag und hast das locale auch auf deutsch eingestellt.
vocoder
User
Beiträge: 13
Registriert: Samstag 2. April 2011, 00:37

Das funktioniert mit Umlauten und müsste prinzipiell auch mit Akzenten im Französischen klappen.

Danke!
Antworten