Visualisierung von Topic Models

Um dem drogenspezifischen Sprachgebrauch nachzuspüren, unternahmen wir die ersten Rechercheversuche für dieses Projekt nach der Transformation des ursprünglichen Korpus in ein datenbankgerechtes Format und der erfolgreichen Einbindung in die Corpus Workbench des Dresden Center for Digital Linguistics direkt über das CWB-Webinterface. Durch die Annotation der einzelnen Userbeiträge nach den jeweils beschriebenen Drogenarten ist es der CWB möglich, drogenspezifische Subkorpora zu generieren, was uns zunächst sehr hilfreich erschien. Doch schon bald mussten wir feststellen, dass die Ergebnisse ziemlich dürftig ausfielen und nur relativ aufwändig zu produzieren waren. Bei der Suche nach Alternativen stießen wir auf das Konzept des Topic Modeling, von dem wir uns weitaus bessere Resultate versprachen: Mithilfe von Topic Models lassen sich in einer beliebigen Sammlung von Texten eine zuvor spezifizierte Anzahl von “Themen” identifizieren, die prinzipiell nichts anderes sind als eine Liste von Wörtern, die signifikant häufig in Text A vorkommen, in Text B dagegen seltener oder überhaupt nicht.

Bestünde ein Korpus nun beispielsweise aus zehn Texten über Überschwemmungen im Nildelta, zehn Texten über Neoliberalismus und zehn Texten über den Anbau von transgenem Reis in der chinesischen Jiangxi-Provinz, würden sich bei einer Suche nach drei Topics in Topic 1 Lexeme wie Ägypten, Hochwasser, Staudamm, Mittelmeed, Kairo wiederfinden, in Topic 2 wirtschaftliches Fachvokabular und in Topic 3 Wörter zu Reisanbau, Gentechnik und China und zudem vermutlich eine treffsichere Klassifikation der dreißig Texte erhalten. Spannend wird es nun, wenn wir uns nicht drei, sondern sieben oder zwölf Topics ausgeben lassen: Wir könnten Ähnlichkeiten zwischen Texten feststellen, die wir vorher überhaupt nicht vermutet hatten. So könnte eines der Topics die Lexeme Fluss, Überflutung, längste, Wasser beinhalten, die sowohl aus den Texten über Nilüberschwemmungen als auch aus Texten über den chinesischen Reisanbau extrahiert wurden, da für die maschinelle Themenbestimmung belanglos ist, ob sich das Wort auf den Nil oder den Jangtsekiang bezieht. Die Berechnung der korrespondierenden Typizität zum “Fluss-Topic” geschieht für jeden Text einzeln, sodass sich Texte aus zunächst grundverschieden scheinenden Themenbereichen in diesem Einzelaspekt sehr ähnlich oder immer noch sehr unterschiedlich sein können (man würde erwarten, dass sich hier ein paar Texte über Nildelta und Reisanbau wiederfinden, nicht aber Texte zum Neoliberalismus). Natürlich vereinfacht dieses konstruierte Beispiel den mathematischen Aspekt stark, doch wird (hoffentlich) zumindest die Idee hinter Topic Models deutlich, denn die exakte Beschreibung des dahinter liegenden statistischen Modells müsste in meinem Fall ohnehin zwangsläufig scheitern. An dieser Stelle kann und soll auch überhaupt keine keine generelle Einführung in Theorie und Praxis des Topic Modeling entworfen werden, darum sei hier für Interessierte noch auf die ausreichend vorhandenen Einführungen, Verortungen und kritischen Auseinandersetzungen verwiesen, um uns nun der praktischen Anwendung dieser Methode auf unsere Daten zu widmen.

Für die Berechnung von Topic Models musste das auf Lemmata reduzierte Gesamtkorpus in viele einzelne Subkorpora zerlegt werden, wobei jedes Subkorpus einer eindeutig klassifizierten Droge oder Drogenkombination entspricht. Dies erreichten wir durch die Umformung des Perl-Codes, den wir bereits für die Zählung der Wortanzahl und Sätzlängen gebraucht hatten. Dadurch wurde für jede Drogenklassifikation ein Subkorpus erstellt, das alle Texte enthielt, die mit der entsprechenden Kombination versehen waren. Für diese Subkorpora konnten nun mit einem Java-basierten Programmpaket namens Mallet (MAchine Learning for LanguagE Toolkit) Topic Models erstellt werden (hier findet man eine hervorragende Anleitung dazu). Mallet wurde von uns so konfiguriert, dass es aus der Analyse der fünfzig größten Subkorpora 7 Topics zu je 18 Lemmata erstellt, außerdem sollten häufig vorkommende Funktionswörter herausgefiltert werden. Die Topics gerierten sich wie folgt:

  • Topic 0: rauchen joint gras freund cannabis abend kumpel kiffen bauen weg ankommen breit nen kopf tuete etwas essen
  • Topic 1: leicht uhr wirkung fuehlen stunde nehmen essen ca uebelkeit angenehm liegen stark gefuehl tag trinken magen schlafen etwas
  • Topic 2: pilz trip sehen essen lachen gedanke baum uhr decke wald farbe muster wand denken zimmer schauen natur
  • Topic 3: mdma mg uhr droge same tanzen wirkung abend teil stunden stunde nehmen pille party gefuehl ziehen euphorie halb
  • Topic 4: trip lsd farbe gedanke mensch legen klein wald stunde leben ankommen muster substanz raum reise
  • Topic 5: dxm trip sehen mg uhr nehmen zimmer kapsel bett dph tablett tablette schlafen dhm kg schauen nah tag
  • Topic 6: salvia rauchen ziehen sehen kopf trip koerper bong sekunde lachen realitaet blatt rauch gefuehl wirkung extrakt lunge auge

Zudem wurde jedem der fünfzig Subkorpora sieben Werte zugeschrieben, welche die statistische Nähe zu einem der Topics ausdrücken, zum Beispiel hat das Ecstasy-Subkorpus eine hohe Affinität zu Topic 3 und eine niedrige zu Topic 6. Somit ist jedem Topic einerseits der spezifische Wortschatz und andererseits die Wahrscheinlichkeit des Auftretens dieses Wortschatzes in den jeweiligen Subkorpora zuschreibbar. Nachdem wir die von Mallet produzierten Werte sortiert, in eine für Gephi lesbare Struktur gebracht und die Feinjustierung des Netzwerkgraphen vorgenommen haben, konnten wir wieder eine interaktive Visualisierung erstellen, aus der sich die Relationen zwischen erstens Topics und Wortschatz und zweitens Topics und Drogen herauslesen lassen:

network topics

Die größeren Knotenpunkte stellen die sieben Topics dar, jeder von ihnen ist mit einer eigenen Farbe gekennzeichnet, mit Ausnahme von Topic 2 und Topic 4. Das liegt daran, dass die beiden Topics sich einen Teil der Wortschatzes teilen und viele Subkorpora eine ähnlich hohe Affinität zu beiden dieser Themen besitzen:

Topic 2 und 4

Generell gesprochen, finden sich bei Topic 2 und Topic 4 Wörter und Kategorien, die den Psychedelika zuzuordnen sind, wobei Texte über Magic Mushrooms eher Topic 2 und Texte über LSD eher Topic 4 zugeordnet sind. Dies ist an der Nähe der Knotenpunkte zueinander und an der (nicht besonders gut erkennbaren) Dicke der Kanten ersichtlich:

LSDMit einem Klick auf einen Knoten oder bei der Suche nach bestimmten Begriffen werden sämtliche Verbindungen aufgefächert und der Rest des Schaubilds ausgeblendet.

Um den Knotenpunkt von Topic 3 gruppieren sich die meisten Partydrogen, folgerichtig finden sich dort auch die entsprechenden Vokabeln:

Topic3

Sehr interessant ist die Positionierung von 2C-B. Laut dem ersten Google-Treffer ist das ”Wirkspektrum von 2C-B [...] sehr breit gefächert und wird von Usern zwischen dem von LSD und MDMA verortet”. Der empirische Beweis für diese Verortung ist Mallet mühelos gelungen, Tripberichte zu 2C-B befinden sich in ihrer Typizität direkt zwischen diesen beiden Themen:

2C-B

Den exponierten Platz in der Mitte des Graphen hat Topic 0 inne, es verweist vor allem auf cannabisbezogenen Wortschatz:

Topic 0Die prominente Positionierung resultiert daher, dass Cannabis oft im Mischkonsum auftritt und somit die Nodes von Drogenkategorien mit Mischkonsum ein Stückchen zu sich zieht:

Pilze und Cannabis

Für individuelle Untersuchungs- und Erkenntnisinteressen scheint diese interaktive Visualisierung nach den ersten erklärenden Explorationen also durchaus als heuristisches Hilfsmittel geeignet zu sein. Sämtliche Beziehungen lassen sich unmöglich in diesem Blogpost darstellen, also zögert nicht, sie auf eigene Faust zu erkunden!

network_topics

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>