Abenteuer mit Hunspell Wörterbüchern

16.04.2020, von Christian Glahn

Stemmen und Lemmatisieren sind zwei Grundtechniken zur Datenaufbereitung von unstrukturierten Texten. Diese Techniken unterstützen uns beim bestimmen des Wortstamms von Wörtern, wobei der Wortstamm sich auf die jeweilige Grundform eines Wortes bezieht. Damit das funktioniert, werden Wörterbücher (dictionaries) benötigt.

In R nimmt uns die Arbeit für beide Techniken die hunspell-Bibliothek ab. Speziell die Funktion hunspell_stem ist dabei der ideale Begleiter für die Textanalyse. Dabei kann dem folgenden Muster gefolgt werden:

library(tidyverse)
library(hunspell)

wörterbuch = "de_CH"

wortliste %>%
    mutate(stamm = hunspell_stem(wort, dict = dictionary(wörterbuch))) %>%
    mutate(stamm = lapply(stamm,nth,-1)) %>%
    unnest(stamm) %>%
    mutate(stamm = ifelse(is.na(stamm), wort, stamm))

Die hunspell-Bibliothek setzt auf der hunspell-Plattform auf, die sehr modular aufgebaut ist.

Bei der Arbeit mit den deutschen Wörterbüchern ist mir aber aufgefallen, dass die Informationen für das Lemmatisieren komplett fehlt und einige Regeln für das richtige Stemmen nicht bzw. nicht vollständig umgesetzt sind. Deshalb muss für bestimmte Analysen selbst Hand angelegt werden und das Wörterbuch an die eigenen Bedürfnisse angepasst werden.

Ein hunspell-Wörterbuch besteht aus einer Wortliste und Genratorregeln, dem sogenannten affix. Diese beiden Teile sind in zwei Dateien abgelegt. Die Wortliste endet auf .dic und das Affix endet auf .aff, wobei der Name des Wörterbuchs für beide Dateien identisch sein muss. Ein Wörterbuch ist nur dann vollständig, wenn beide Dateien im gleichen Verzeichnis gespeichert sind.

Die Regeln des Wörterbuchs müssen im Affix in einer eigenen Syntax ausgedrückt werden.

Das deutsche Perfekt und die Krux mit dem Stemmen

In den offiziellen Wörterbüchern fehlen mit derzeit die Stemmregeln für das Perfekt mit der Vorsilbe ge-. Das liesse sich wahrscheinlich mit der folgenden Prefix-Regel in der .aff-Datei des Wörterbuchs realisieren:

PFX G Y 1
PFX G ge 0

Taucht ein Wort mit dem ge- Prefix in der Wortliste auf, dann wird es als eigenständiges Wort behandelt.

Für das Verb kaufen müsste dann der Eintrag in der Wortliste wie folgt ergänzt werden:

kaufen/BDGIVXYW

Dabei ist zu beachten, dass die Buchstaben nach dem Schrägstich jeweils auf die Stemmregeln im Affix für dieses Wort verweisen.

Unregelmässige Verben

Bei unregelmässigen Verben muss der Wortstamm explizit festgelegt werden. Diese Information muss in der Wortliste, d.h. in der .dic-Datei, des Wörterbuchs festgehalten werden. Falls ein Wort in der gleichen Schreibweise mehrere Bedeutungen hat, müssen die Wortstämme auseinandergehalten werden, wie das folgende Beispiel zeigt:

bin st:sein
bist st:sein
gewesen st:sein
ist st:sein
sein 
seid st:sein
sind st:sein
war st:sein
waren
waren st:sein
warst st:sein
wart st:sein

Zusätzlich könnten mit den is: und po: Annotationen zusätzliche Hinweise zur Grammatik hinterlegt werden, die bei der Textanalyse genutzt werden können. Diese Annotationen wären dann mit der hunspell_analyze-Funktion zugänglich.

Hunspell erlaubt Hinweise über den Kontext einer Schreibweise, so dass die o.g. Information wie folgt aufgebaut sein könnte.

ich bin st:sein
du bist st:sein
gewesen st:sein
er ist st:sein
sie ist st:sein
es ist st:sein
sein 
ihr seid st:sein
wir sind st:sein
sie sind st:sein
ich war st:sein
er war st:sein
sie war st:sein

Obwohl das ein guter Hinweis wäre, finden sich diese Information in Texten nicht genau in dieser Form. Daher machen diese Hinweise keinen Sinn für deutsche Wörterbücher.

Verben mit erweiterter Grundform

Bei zusammengesetzen Verben wie z.B. “verkaufen”, “einkaufen” oder “abzahlen” liesse sich das Wörterbuch weiter vereinfachen. Allerdings würden diese Regeln ebenfalls in das Stemmen eingreifen. Das ist ggf. problematisch, wenn sich die Wortbedeutung durch das Prefix ändert und der daraus generierte Wortstamm die Analyse in die Irre führen würde. Die folgenden Regeln sind daher nur als Randnotiz zu verstehen.

Die affix-Regeln wären aber wahrscheinlich wie folgt:

PFX V Y 5
PFX V 0 ver .
PFX V 0 ab .
PFX V 0 be .
PFX V 0 ein . 
PFX V 0 über .

Alternativ liesse sich die affix Regel so formulieren, um den Fall von “eingekauft” richtig zu erkennen.

PFX V Y 7
PFX V 0 ver .
PFX V 0 ab .
PFX V 0 ein .
PFX V 0 über .
PFX V 0 einge .
PFX V 0 abge .

Besser wäre allerdings eine Lösung mit einer Regel für schwache Verben, die das eingebette -ge- richtig abbildet.

Das wäre eine interessante Aufgabe für eine Bachelorthese.

textanalyse methoden tools R

Share