Seite 1 von 1

Synonyme erweitern

Verfasst: Samstag 15. Februar 2020, 12:32
von OXO
Hallo,

ich möchte mit Python ein Modell zur Textklassifizierung erstellen. Mit dem NLTK gibt es schon einiges an Unterstützung.
Die Wörterbücher beinhalten ja aber keine Fachdomänen-spezifischen Begriffe, die im Stemmer oder als Synonyme zur Bereinigung verwendet werden.

Weiß jemand, wie ich Synonyme oder Wörter für den Stemmer erweitern kann, so dass verschiedene Begriffe auf nur 1 Begriff am Ende abgebildet werden, der in dieser Fach-Domäne eben dieselbe Bedeutung hat?

Re: Synonyme erweitern

Verfasst: Samstag 15. Februar 2020, 17:11
von nezzcarth
Ich kann deine Frage nicht ganz nachvollziehen. Die Idee hinter einem Stemmer ist ja gerade, dass man rein Regel-basiert Formen erzeugt, an die ausschließlich der Anspruch gestellt wird, Ähnlichkeiten möglichst korrekt abzubilden. Diese Formen besitzen aber nicht den Anspruch, sprach(wissenschaft)lich korrekt zu sein (das ist der Unterschied zum Lemmatisierer). Daher verstehe ich nicht, weshalb du dort ein Synonymlexikon benötigst.

Wenn du bereits ein Synonymlexikon hast, kannst du das und deinen Eingabetext jeweils stemmen und anschließend die Synonymersetzungen durchführen. Das geht mit ein paar Zeilen in reinem Python, ohne irgendwelche Bibliotheken.

Falls ich das falsch verstanden habe, kannst du vielleicht deine Frage noch mal etwas präzisieren.

Re: Synonyme erweitern

Verfasst: Samstag 15. Februar 2020, 19:15
von OXO
Hhhm, vielleicht ist es auch nicht so ganz richtig mit dem Stemmer.

In den Texten befinden sich einige Wörter aus einer Fachdomäne und es gibt teils für ein und denselben Begriff mehrere Ausprägungen, teils sogar auch Verwendung mit einem Begriff in Deutsch oder Englisch. Ich bin mir nicht mehr ganz sicher, aber ich dachte, auch Einzahl und Mehrzahl davon.

Jedenfalls bevor man die Texte zum Training gibt und auch später für eine Anfrage, sollten all diese Begriffe am Besten nur noch auf einen Einzigen abgebildet werden.

Ich bin mir nicht sicher, wie es strategisch besser ist: ob man vielleicht in so einem Fall nicht doch alle bekannten Formen sammelt, über Python aus einer Datei einliest und als Vorverarbeitung die entsprechenden Wörter aus dem Text auf dieses eine Wort abbildet, oder ob es Sinn macht, alles in einem Toolkit zu haben, also das nltk um Fachdomäne zu erweitern und auch die bekannten Wortformen dort irgendwie einzubringen und dann alles über die Vorverarbeitungsschritte mittels nltk zu machen?