DISCO - FAQ

1. Warum sind manche Sprachdatenpakete viel größer als andere, selbst wenn das zugrundeliegende Korpus sogar kleiner ist?
2. Warum sind die Sprachdatenpakete so groß?
3. Kann man die Sprachdatenpakete verkleinern?
4. Für meine Sprache gibt es mehrere Sprachdatenpakete. Welches soll ich nehmen?
5. Wie kommen die semantischen Ähnlichkeiten zustande?
6. Was ist der Unterschied zwischen Ähnlichkeit erster Ordnung (Option -s) und zweiter Ordnung (Option -s2)?
7. Wie gut ist die Qualität der DISCO-Ähnlichkeiten im Vergleich mit anderen Tools wie z.B. WordNet::Similarity, PMI-IR oder LSA?
8. Wie sieht es mit der Geschwindigkeit aus?
9. Kann ich aus meinem Korpus selbst ein Sprachdatenpaket erzeugen?

1. Warum sind manche Sprachdatenpakete viel größer als andere, selbst wenn das zugrundeliegende Korpus sogar kleiner ist?
Die Größe eines Sprachdatenpakets hängt von mehreren Faktoren ab. Neben dem Umfang des zugrundeliegenden Textkorpus und der Anzahl der abfragbaren Wörter kommt es vor allem auf die durchschnittliche Länge der Wortvektoren erster (Kollokationen) und zweiter Ordnung (distributionell ähnliche Wörter) an. Bei manchen Sprachdatenpaketen sind z.B. die 1.000 signifikantesten Kollokationen zu jedem Wort im Index gespeichert, bei anderen nur die 200 sigifikantesten. Die unterschiedliche Länge der einzelnen Wortvektoren ist der Hauptgrund für die unterschiedliche Größe der Sprachdatenpakete.

2. Warum sind die Sprachdatenpakete so groß?
Bei z.B. 200.000 abfragbaren Wörtern, wobei zu jedem Wort z.B. 300 Kollokationen und 1.000 distributionell ähnliche Wörter gespeichert werden müssen, müssen 200.000 * (300 + 1.000) = 260.000.000 (260 Millionen) Wortpaareinträge mit jeweils einem Signifikanz- bzw. Ähnlichkeitswert gespeichert werden. Bei solchen Datenmengen kommen sehr schnell einige Gigabyte zusammen, obwohl wir mit Lucene einen hocheffizienten und auch komprimierten Index nutzen.

3. Kann man die Sprachdatenpakete verkleinern?
Im Allgemeinen nicht. Eine Komprimierung mit Tools wie gzip verkleinert den Index nicht, da er bereits komprimiert ist. Theoretisch könnte man Indexe, die aus mehreren Dateien der Form _0.cfs, _1.cfs, _2.cfs usw. bestehen, einfach kürzen indem man die Dateien mit den höchsten Zahlen einfach löscht. Die Wörter sind nämlich nach ihrer Häufigkeit geordnet in den Dateien abgespeichert. Die Datei _0.cfs enthält die am häufigsten vorkommenden Wörter. Löscht man z.B. in einem Index mit 200.000 abfragbaren Wörtern die obere Hälfte der Dateien, können nur noch die 100.000 häufigsten Wörter abgefragt werden. Die Abfrage eines Wortes aus den oberen Dateien verursacht dann allerdings einen Java-Laufzeitfehler (Runtime Exception). Eine bessere Möglichkeit ergibt sich bei Anwendungsfällen, in denen entweder nur die Kollokationen (Wortvektoren erster Ordnung) oder nur die distributionell ähnlichen Wörter (Wortvektoren zweiter Ordnung) benötigt werden. Dann kann ein Spezial-Index erstellt werden, der nur die eine oder andere Art von Wortvektoren enthält.

4. Für meine Sprache gibt es mehrere Sprachdatenpakete. Welches soll ich nehmen?
Zunächst mal sollte das dem Sprachdatenpaket zugrundeliegende Korpus in Sachgebiet und Textsorte möglichst den Texten entsprechen, die Ihre Anwendung später verarbeiten soll. Wenn Sie es beispielsweise mit dem Sachgebiet EDV zu tun haben, ist ein Sprachdatenpaket, das auf medizinischen Texten beruht, ungeeignet. Erstens wäre nämlich das Vokabular sehr unterschiedlich: viele EDV-Fachwörter kämen im Medizin-Sprachdatenpaket gar nicht vor. Zweitens sind auch die semantischen Ähnlichkeiten stark korpusabhängig, wie das folgende Beispiel illustriert. Die unten gezeigten semantisch ähnlichen Wörter zu Maus wurden aus einem Korpus aus EDV-Zeitschriften generiert:

Maus → Tastatur Mausklick Drag Knopfdruck Doppelklick Handy Infrarot Jumper Funk SMS Modem Fernbedienung Satellit ...

Die folgenden Ähnlichkeiten zu Maus wurden dagegen aus einem Korpus aus Literatur des 19. Jahrhunderts berechnet:

Maus → Katze Ratte Mäuse Eidechse Kröte Mäuslein Schwalbe Spinne Hexe Dohle Katz Wolke Fledermaus ...

Im Zweifelsfall sind allgemeinsprachige Sprachdatenpakete, die meist mit general bezeichnet sind (z.B. de-general-20080727) eine gute Wahl. Für das Englische gibt es das Paket en-BNC-20080721, das auf dem repräsentativen British National Corpus beruht. Auch die Sprachdatenpakete auf Basis der Wikipedia decken viele Sachgebiete ab.

Ein weiteres Auswahlkriterium ist die Paketgröße. Hier gibt es teilweise deutliche Unterschiede. So ist das Paket de-general-20080727 weniger als halb so groß wie das Paket de-wikipedia-20070903. Weiteres hierzu unter Frage 1.

5. Wie kommen die semantischen Ähnlichkeiten zustande?
Die semantischen Ähnlichkeiten werden mit Hilfe statistischer Verfahren automatisch aus sehr umfangreichen elektronischen Textsammlungen (Korpora) berechnet. Dabei werden zunächst für jedes Wort diejenigen Wörter bestimmt, die signifikant häufig zusammen mit ihm vorgekommen sind. Dies ergibt eine Menge von sogenannten Kollokationen. Z.B. erhält man als Kollokationen zu Brot die Wörter Wein, Stück, Scheibe, Laib, Lohn, tägliche, Butter, essen, backen usw. In einem zweiten Schritt werden jetzt die Kollokationsmengen aller Wörter miteinander verglichen, um diejenigen Wörter zu finden, die in ähnlichen Kontexten gebraucht werden und somit semantisch ähnlich sind. Beispielsweise findet man auch bei Toast die Kollokationen Stück, Scheibe, Butter, essen, so dass sich zwischen den beiden Kollokationsmengen von Brot und Toast viele Überschneidungen ergeben. Dies ist bei den Kollokationsmengen von semantisch unähnlichen Wörtern wie Brot und Auspuff nicht der Fall.

Das in DISCO angewandte Verfahren ist in folgendem Konferenzpapier näher beschrieben:

Peter Kolb. DISCO: A Multilingual Database of Distributionally Similar Words. In Tagungsband der 9. KONVENS, Berlin, 2008.

6. Was ist der Unterschied zwischen Ähnlichkeit erster Ordnung (Option -s) und zweiter Ordnung (Option -s2)?
Die Ähnlichkeit erster Ordnung zwischen zwei Wörtern w1 und w2 wird durch Vergleich der Kollokationsmengen der beiden Wörter berechnet (siehe Frage 5). Zur Berechnung der Ähnlichkeit zweiter Ordnung werden dagegen die Mengen der semantisch ähnlichen Wörter von w1 und w2 herangezogen. Das folgende Beispiel zeigt die Kollokationsmengen von Brot und Kuchen, also Wörter, die in den ausgewerteten Texten häufig zusammen mit Brot bzw. Kuchen vorgekommen sind:

Brot → backen Butter Laib Scheibe schneiden essen knuspriges
Kuchen → backen Butter Stück Sahne essen Kaffee

Damit wird die Ähnlichkeit erster Ordnung berechnet. Es ergibt sich ein großer Ähnlichkeitswert zwischen Brot und Kuchen, da es viele Überschneidungen der beiden Kollokationsmengen gibt, nämlich die Wörter backen, Butter und essen.
Zur Bestimmung der Ähnlichkeit zweiter Ordnung werden die Mengen der semantisch ähnlichen Wörter verglichen:

Brot → Käse Brötchen Fleisch Weißbrot Kartoffeln Brote Wurst Butter Vollkornbrot Mehl Schwarzbrot Schinken Kaffee
Kuchen → Waffeln Gebäck Brötchen Plätzchen Torten Kaffee Wurst Schokolade Kekse Lebkuchen Brezeln Käse

Auch hier gibt es viele Überschneidungen.

Es hat sich gezeigt (siehe das unter Frage 5 angegebene Konferenzpapier), dass die Ähnlichkeit erster Ordnung "wählerischer" ist als die Ähnlichkeit zweiter Ordnung. Sie vergibt normalerweise einen viel kleineren Ähnlichkeitswert, und in vielen Fällen auch den Ähnlichkeitswert Null, in denen die Ähnlichkeit zweiter Ordnung einen Wert deutlich über Null vergibt. Der Grund hierfür ist, dass die Kollokationsmengen viel kleiner sind als die Mengen der semantisch ähnlichen Wörter.
An dieser Stelle ist die Unterscheidung zwischen semantischer Ähnlichkeit im engeren Sinn (engl. semantic similarity) und semantischer Verwandtheit (engl. semantic relatedness) nützlich. Z.B. sind die Wörter Arzt und Krankenhaus zwar semantisch verwandt, aber nicht ähnlich. Arzt und Doktor sind sich dagegen sehr ähnlich, es handelt sich um Synonyme. Untersuchungen haben ergeben, dass zur Modellierung von semantischer Ähnlichkeit die Ähnlichkeit erster Ordnung besser geeignet ist, zur Modellierung semantischer Verwandtheit dagegen die Ähnlichkeit zweiter Ordnung. Dies veranschaulicht auch die folgende Tabelle:

Ähnlichkeit 1. Ordnung Ähnlichkeit 2. Ordnung
Karpfen - Hecht 0.129 0.201
Karpfen - Gemüse 0.016 0.314

Nach der Ähnlichkeit erster Ordnung sind sich Karpfen und Hecht sehr viel ähnlicher als Karpfen und Gemüse, nach der Ähnlichkeit zweiter Ordnung sind sich beide Wörter sehr ähnlich, wobei sich hier der Fisch und das Gemüse noch ähnlicher sind als die beiden Fische.

Ein weiterer Unterschied zwischen den beiden Ähnlichkeitsmaßen ist, dass die Abfrage der Ähnlichkeit erster Ordnung ca. doppelt so schnell geht wie die Abfrage der Ähnlichkeit zweiter Ordnung.

7. Wie gut ist die Qualität der DISCO-Ähnlichkeiten im Vergleich mit anderen Tools wie z.B. WordNet::Similarity, PMI-IR oder LSA?
Zunächst muss zwischen Tools, die auf manuell erstellten Resourcen basieren, wie WordNet::Similarity, und korpusbasierten Tools wie PMI-IR oder LSA unterschieden werden. DISCO gehört zur zweiten Gruppe. Der Hauptunterschied zwischen beiden Gruppen ist, dass die manuell erstellten Ähnlichkeitstools zwischen den Lesarten der Wörter (z.B. hat Bank die zwei Lesarten Geldinstitut und Möbel) unterscheiden, während bei den korpusbasierten die Lesarten zusammenfallen. Ob dies ein Nachteil ist, hängt allerdings vom Anwendungsfall ab.
Nachteilig bei der ersten Gruppe ist vor allem ihre mangelnde Verfügbarkeit. Bisher existiert mit WordNet::Similarity einzig für das Englische überhaupt ein Tool.

Im unter Frage 5 angegebenen Konferenzpapier wurde die Qualität von DISCO im Vergleich mit WordNet::Similarity, PMI-IR und LSA evaluiert. Es stellte sich heraus, dass für den Anwendungsfall semantische Verwandtheit (siehe Frage 6) DISCO sogar ein besseres Ergebnis als WordNet::Similarity erzielte. Im Anwendungsfall semantische Ähnlichkeit war DISCO deutlich besser als LSA und PMI-IR.

8. Wie sieht es mit der Geschwindigkeit aus?
Auf einem Athlon 64 mit 2,4 GHz und einer SATA-Festplatte berechnet DISCO die Ähnlichkeiten erster Ordnung für ca. 50 Wortpaare pro Sekunde. Zur Berechnung der Ähnlichkeit zweiter Ordnung wird die doppelte Zeit benötigt.
Es ist möglich, ein ganzes Sprachdatenpaket ins RAM einzulesen (ausreichend Hauptspeicher vorausgesetzt). Die Abfrage-Geschwindigkeit wird dadurch erheblich gesteigert.

9. Kann ich aus meinem Korpus selbst ein Sprachdatenpaket (Wortraum) erzeugen?
Ja, dies ist mit dem DISCO Builder möglich.

top