View
1
Download
0
Category
Preview:
Citation preview
Projekt 1 Ausarbeitung
Marcel Schönebergmarcel.schoeneberg@haw-hamburg.de
Hochschule für Angewandte Wissenschaften Hamburg (HAW)Fakultät für Technik und InformatikDepartment Informatik
Zusammenfassung
Der folgende Bericht befasst sich mit den Arbeitsergebnissen von des ersten Projekts im
Masterstudium. Zunächst wird kurz eine Einführung in die Thematik samt der vom Autor
gesetzten Ziele) gegeben. Daraufhin wird ein Framwork vorgestellt, welches vom Autor
entwickelt wurde um die de�nierten Ziele zu erreichen. Anschliessend wird die vom Autor
gewählte Analysemethode samt ihrer Ergebnisse vorgestellt. Abschliessend befasst sich
das Fazit kritisch mit den Ergebnissen.
1 Einführung und Ziele
Im Umfeld der Datenverarbeitung und Analyse (z.B. Auswertung der Inhalte von sozialen
Netzwerken) treten Datenmengen auf, welche für Menschen alleine nicht zu bewerkstel-
ligen sind. Daher ist eine maschinelle Verarbeitung solcher Inhalte wünschenswert. Als
konkreter Anwendungsfall wurde die (Früh-)Erkennung von vorhandenen und aufkom-
menden Trends in sozialen Netzwerken [Sch13, siehe] gewählt.
Automatische Verfahren zur Textanalyse verstehen allerdings in aller Regel nicht die
Semantik der von Menschen getätigten Aussagen, allerdings ist dieses für viele grundlegen-
de Analysen auch zunächst nicht notwendig. Verschiedene Analysemethoden kommen mit
statistischen Ansätzen wie z.B. (vereinfacht) dem Zählen von Häu�gkeiten von Worten aus.
Diese können einen ersten Einblick in den Inhalt der zu analysierenden Daten gewähren
([Sch13, vgl.]). Ein etwas komplizierterer Ansatz besteht darin, die Daten zu clustern (und
sie damit in verschiedene Themenbereiche einzuteilen). Ein solcher Ansatz wird im Laufe
dieses Papiers näher beschrieben.
Diese Ansätze liefern eine grobe Basis für weitere Untersuchungen, vor allem der
angesprochene Clusteringansatz vermittelt im Optimalfall eine grobe Idee vom Inhalt
der Analysedaten. Allerdings sind verschiedene Verfahren mit diesem Ziel mathematisch
beliebig kompliziert, weswegen sich der Autor im Folgenden auf die praktische Anwendung
eines solchen Verfahrens konzentriert. Im günstigsten Fall sollen in der Analyse gefundene
Cluster aktuelle bzw. zukünftige Trends im Groben abdecken, so dass diese anhand von
clusterspezi�schen Schlagwörtern semantisch eingeordnet werden können.
1
2 Aufbau des Frameworks 2
Das übergeordnete Ziel ist die Erkennung und Analyse von (aufkommenden) Trends
in Texten (wie z.B. Beiträgen in sozialen Netzwerken). Diese Arbeit dient als Vorbereitung
zur Erreichung dieser Aufgabe. Hierzu muss als erstes ein Set von Testanalysedaten erstellt,
sowie eine Analyseumgebung aufgebaut und getestet werden. Darüber hinaus sollen erste
Analysen mit den beschriebenen Verfahren zeigen in wie weit die Ergebnisse hilfreich
sind. Aufbauend auf diesen Ergebnissen kann daraufhin im nächsten Projekt konkreter
auf das eigentliche Ziel hingearbeitet werden.
2 Aufbau des Frameworks
Die Ziele dieser Arbeit (Erstellung eines Datensets sowie dessen Analyse) sollen durch ein
durch den Autor entwickeltes Framework erleichtert werden. Die folgenden Abschnitte
beschreiben die Architektur, sowie die grobe Funktionsweise dieses Systems.
Abbildung 2 zeigt die grundsätzlichen Komponenten des Frameworks. Zunächst dient
’socialCrawl’ dazu ein Set von Analysedaten zu erstellen, dieses wird in einer relationalen
Datenbank verwaltet. Die Auswertung der vorliegenden Daten wird von der Analysekom-
ponente vorgenommen.
2.1 socialCrawl
Diese Komponente dient der Datenbescha�ung und ist in Java geschrieben. Die verschie-
denen Bestandteile der Komponente sind voneinander unabhängig, so das im Prinzip
verschiedene Datenquellen als Input benutzt werden können.
Die Datenbescha�ung ist in drei grundlegende Teilbereiche unterteilt, den Navigator,den Extractor, sowie den Storage. Diese bilden die verschiedenen Aspekte des (Social
Media) Crawlers ab.
Aufgrund des nicht möglichen vollen API-Zugri�s auf Twitter (der komfortable Zugri�
auf alle Daten wurde eingestellt und durch eine sehr limitierte Version ersetzt) wurde
ein anderer Ansatz gewählt. Der entwickelte Crawler greift indirekt auf die gewünsch-
ten Daten zu und nutzt hierzu den Browser, welcher durch das Selenium Framework
(http://www.seleniumhq.org/) ferngesteuert wird. Hierbei wird eine Twittersuche ge-
startet (im konkreten Fall zum Hashtag ’# Piraten’) und durch die (zeitlich geordnete)
2 Aufbau des Frameworks 3
Ergebnisliste iteriert bis ein Zieldatum erreicht wird. Diese Aufgabe der Seitennavigation
übernimmt der ’Navigator’.
Das so entstehende HTML-File hat einen fest de�nierten Aufbau, so dass mit der
Teilkomponente ’Extractor’ die gewünschten Datensätze eines Tweets anhand von HTML
und CSS-Eigenschaften (Cascading Style Sheets) extrahiert werden können. In der ge-
nutzten prototypischen Implementierung wird das HTML-File durch einen DOM-Parser
(Document Object Model) in die einzelnen Tweets zerlegt, aus diesen werden daraufhin
Daten wie Tweetautor, Datum und Inhalt extrahiert.
Die extrahierten Daten werden in einem Tweet-Objekt aggregiert und daraufhin durch
die ’Storage’-Komponente in einer MySQL Datenbank gespeichert. Abbildung 2.1 zeigt
das entsprechende Entity Relationship Model. Zu einem Tweet werden die wichtigsten
Eigenschaften (wie Autor, Datum, Inhalt und Hashtags) gespeichert. Hierbei kann ein
Tweet mehrere Hashtags (Keywords) enthalten, welche wiederum in mehreren Tweets
vorhanden sein können.
2.2 Datenset
Das Datenset welches die Grundlage der Analyse bildet ist eine Ansammlung von Tweets
des sozialen Netzwerkes Twitter. Es umfasst 27089 Datensätzen im Zeitraum vom 27.10.2011
bis zum 27.04.2014. Dieses Datenset wurde durch den entwickelten Crawler, unter Nutzung
der Twitter-Suchfunktion zum Hastag "#Piraten", von der Twitter-Website abgegri�en. Der
konkrete Suchterm bezieht sich auf die Piratenpartei Deutschland. Dieses hat den Vorteil,
dass die Analyseergebnisse mit der realen Entwicklung der Partei im Analysezeitraum (in
späteren Arbeiten) abgeglichen werden können um so eine grobe Einschätzung über den
Nutzen der Ergebnisse liefern zu können.
2.3 Analyse
Bei den folgenden Analysen wurde als technische Basis die Programmiersprache R (http://www.r-
project.org/) verwendet, diese ist speziell auf statistische Probleme zugeschnitten und
bietet durch eine Vielzahl von zusätzlichen Erweiterungen relativ gute Möglichkeiten. Die
im Folgenden hauptsächlich vom Autor verwendeten Pakete sind:
• tm1Dieses Packet bietet grundsätzliche Strukturen und Methoden zur maschinellen
Textverarbeitung (Dokumente, Korpus, Stopwordentfernung, Stemming usw.).
• topicmodels2Bietet eine Schnittstelle zur später genutzten LDA Implementierung
von David M. Blei.
1
vgl. http://cran.r-project.org/web/packages/tm/tm.pdf
2
vgl. http://cran.r-project.org/web/packages/topicmodels/topicmodels.pdf
3 Datenanalyse 4
• NLP3Ermöglicht es das später verwendete ’Natural Language Processing’ (NLP)
durchzuführen.
3 Datenanalyse
3.1 Themen erlernen mithilfe des LDA-Modells
Im folgenden Abschnitt wird ein Clusteringverfahren vorgestellt welches auf der latenten
Dirichlet Allocation [BNJ03] basiert. Dieses ist ein Basisverfahren, welches im Laufe
der Zeit um verschiedene Aspekte erweitert wurde und in verschiedenen Bibliotheken
implementiert ist (siehe z.B.http://cran.r-project.org/web/packages/topicmodels/topicmodels.pdf).
3.1.1 Modell der latenten Dirichlet Allocation
Die latente Dirichlet Allocation ist ein generatives Wahrscheinlichkeitsmodell für einen
Korpus (z.B. eine Sammlung von Textdokumenten). Die grundlegende Idee ist, dass jedes
Dokument aus einer Anzahl von Topics (auch Themen genannt) besteht (welche nach
außen nicht direkt sichtbar (d.h. latent) sind). Weiterhin ist jede Topic eine Mischung von
Wörtern anzusehen, diese bilden das Thema.
In diesem Modell sollen daher die verschiedenen Wörter (und letztendlich auch die
entsprechenden Dokumente) eines Korpus mit möglichst hoher Wahrscheinlichkeit einem
Thema zugeordnet werden. Die nun zugeordneten Themen bilden die späteren Cluster.
Basierend auf der Zuordnung von Wörtern und Dokumenten zu Themen (und damit Clu-
stern) lässt sich die Topiczusammensetzung eines Dokumentes bestimmen (beispielsweise:
20% Topic A, 70% Topic B sowie 10% Topic C). Darüber hinaus kann man anhand der
Keywords pro Cluster (z.B. die am häu�gsten benutzten Worte) Schlagwörter ermitteln
welche approximiert den Inhalt eines Topics (bzw. Clusters) wiedergegeben.
Grundlegend basiert die Themenzuordnung von LDA auf einem Lernverfahren welches
auf baiyescher Statistik fußt und den Methoden des unüberwachten Lernens zuzuordnen
ist. Weiterhin ist die Grundidee ein Bag-Of-Words Ansatz, welcher ein Dokument nur als
Ansammlung von Wörtern, allerdings ohne Semantik, ansieht.
3.1.2 Gibbs-Sampling
Nachdem die Basisidee von LDA erklärt wurde widmet sich der nächste Abschnitt der
grundlegenden Idee des Lernverfahrens welches die Topiczuordnung übernimmt.
Das Erlernen der Topicverteilung über einen Korpus ist ein Problem der bayischen Sta-
tistik. Eine Möglichkeit dieses anzugehen ist der Algorithmus des "Gibbs-Sampling"[Gri02,
vgl.]. Die Idee hinter dem Gibbs-Algorithmus ist es sich einer wahrscheinlichen Topicver-
teilung iterativ anzunähern. Hierzu wird einer ausgewählten Variable (z.B. einem Wort)
ein Wert zugewiesen, dieser basiert auf ihrer bedingten Wahrscheinlichkeit in Bezug auf
die anderen (bekannten) Wörter. Dieses Vorgehen basiert auf Markov-Ketten Monte Carlo
(MCMC) Methoden, welche Stichproben aus Wahrscheinlichkeitsverteilungen ermitteln.
3
vgl. http://cran.r-project.org/web/packages/NLP/NLP.pdf
3 Datenanalyse 5
Das Ergebnis der hierbei entstehenden Markov-Kette konvergiert nach beliebig vielen
Schritten mit der gesuchten (Topic)verteilung.
Abbildung 3.1.2 zeigt die Topicermittlung mittels Gibbs-Sampling im LDA Algorithmus
in Pseudocode.
Algorithm 1 Grundlegendes Vorgehen beim Lernen durch Gibbs Sampling
Input: Number of topics, Corpus of documents
Output: Words assigned to topics
//Initiale Topicvergabefor all<Documents in Corpus> do
for all<Words in actual Document> dotopicForWordInDocument← randomTopic
end forend for//Update der Themen aufgrund des Vorwissensfor all<Documents in Corpus> do
for all<Words in Document> dofor all <Topics> do
//Verhältnis von Wörtern des Dokumentes die Topic t zugewiesen sindProportionOfWordsAssignedToTopic← p(topic t | document d)
//Verhältnis von Zuweisungen des aktuellen Wortes an Topic t (über alle Dokumente)//Bedenke: w kann in verschiedenen Dokumenten anderen Topics zugewiesen seinProportionOfAssignmentToTopicOverallFromWord← p(word w | topic t)
end for//Neue Topic t mit Wahrscheinlichkeit p zuweisen (p =̂ Wahrscheinlichkeit von t generierte w)newTopicForWord← wordsAssignedToTopic ∗ topicsAssignedToWord
end forend for
Wie im Pseudocode zu sehen ist erhält der Algorithmus als Eingabe einen Kor-
pus, sowie die Anzahl von gewünschten Cluster/Themen. Dieses ist allerdings nur ei-
ne Zahl, sodass die gefunden Cluster später keine inhärente Semantik aufgrund des
Algorithmus besitzen. Nach der initialen zufälligen Topiczuordnung für jedes Word
in jedem Dokument des Korpus folgt der Updateschritt. Dieser berechnet die beiden
Wahrscheinlichkeiten p(topic t | document d) = count(words assigned to topic t, document)+αcount(topics assigned to document d)+K∗α so-
wie p(word w | topic t) = count(instances of word w assigned to topic t)+βcount(words assigned to topic t)+W∗β , hierbei sind α und β
Hyperparameter, welche dem Feintuning des Algorithmus dienen. Mit den berechneten
Wahrscheinlichkeiten wird dem aktuellen Wort eine neue Topicwahrscheinlichkeit zu-
gewiesen. Die entstehenden Cluster basieren letztendlich auf der Idee, dass gemeinsam
in einem Dokument vorkommende Wörter eine höhere Wahrscheinlichkeit haben einer
gemeinsamen Topic anzugehören. Der für diese Erklärung benötigte mathematische Hin-
tergrund übersteigt allerdings sowohl den Rahmen dieses Papers als auch das bis jetzt
gewonnene Verständnis des Autors.
Nach Abschluss des Algorithmus können die jeweiligen Topiczuweisungen, die Topic-
verteilung sowie ggf. Keywords pro Topic abgelesen werden.
3.2 Analysen
Die folgenden Abschnitte widmen sich verschiedenen Analysen, welche auf der Basis des
vorgestellten Algorithmus durchgeführt wurden.
3.2.1 Ziele
Ziel der Analysen ist es u.A. zu prüfen ob Äußerungen in dem sozialen Netzwerk Twitter
(zum Hashtag #Piraten) ansatzweise den von der Partei verfolgten Themen (vgl. https:
3 Datenanalyse 6
//www.piratenpartei.de/politik/themen/) entsprechen. Schlagwörter
für die Parteithemen sollten daher im Optimalfall (deutlich) in den von LDA gebildeten
Clustern hervorstechen. Ein weiterer Aspekt dem sich die Untersuchung widmet ist die
Trennschärfe der verschiedenen gefundenen Cluster. Ziel ist es herauszu�nden wie sich
die Verteilung der Topics, abhängig von der Korpusverarbeitung, verändert.
Vorverarbeitung und AnalysegrundlageDie folgenden Abschnitte beschreiben die grobe Vorverarbeitung der Daten, sowie die
Grundlagen der Analyse (Aufbau des Korpus, sowie Gewichtungsfunktionen).
Die Vorverarbeitung besteht aus mehreren Phasen und dient dazu einen einheitlicheren
Korpus zu scha�en. So dass Wörter mit selber Semantik möglichst auch syntaktisch gleich
sind und damit in der Analyse als Einheit betrachtet werden können.
• Kleinschreibung Dieser Schritt normiert alle vorkommenden Wörter auf eine
gemeinsame Schreibung, so ist ein späteres Verarbeiten nicht mehr case sensitive.
• Stopword Bereinigung Hierbei wird eine Liste von de�nierten Wörtern aus dem
Korpus entfernt, diese Wörter behindern im Allgemeinen eine weitere sinnvolle
Analyse. Beispiele für deutsche Stopwords sind z.B. Artikel und Bindewörter. Eine
vollständige Liste der in der verwendeten Stopwords ist zu �nden unter: http://snowball.tartarus.org/algorithms/german/stop.txt
• Stemming Das Stemming hat das Ziel Wörter mit selber bzw. ähnlicher Semantik
auf den gemeinsamen Wortstamm zu reduzieren. Dieses hat den Vorteil, dass Wörter
nach dem Stemming in statistischen Auswertungen zusammenfallen. Ein Beispiel
wäre das Reduzieren von Wörtern wie ’Wortes’ oder ’Wörter’ zum gemeinsamen
Stammbegri� ’Wort’.
• Gewichtung Ein weiterer Schritt der Vorverarbeitung ist die Gewichtung der ver-
schiedenen Wörter eines Korpus. Ein solcher Wert drückt z.B. aus wie wichtig
ein Wort im Gesamtzusammenhang ist oder wie häu�g ein Term vorkommt. Bei
den nachfolgenden Analysen wurden direkt und indirekt die Wichtungen Term-
frequency (TF; Vorkommen eines Terms im Dokument; ggf. normiert) und TF-IDF
(IDF; Inverse Document Frequency; tfi,j ∗ log(AnzahlderDokumenteni); allgemeine
Bedeutung eines Terms in Bezug auf den Korpus) benutzt.
Für die konkrete Analyse muss zunächst festgelegt werden wie viele Cluster (und
damit Themen) durch das LDA Verfahren gebildet werden sollen. Aufgrund der inhärenten
Kürze der einzelnen Eingangsdaten (Tweets bestehen maximal auf 140 Zeichen) ist eine
hohe Anzahl von zu bildenden Clustern/Themen eher unwahrscheinlich. Dieses würde
bei beispielsweise 100 Clustern bedeuten dass 140 Zeichen bis zu 100 Themen behandeln
können. Aus diesem Grund untersucht die Analyse nur drei Verschiedene Clusteranzahlen
(2,5 sowie 10). Ziel hierbei ist es zu untersuchen wie stark sich die Clusteranzahl auf die
Trennschärfe und Verteilung der Topics auswirkt.
Die konkreten Analysen bestehen aus zwei Teilen, zum einen den Untersuchungen auf
einem normalen Korpus (dieser hat nur die bereits dargelegte Vorverarbeitung durchlaufen).
Sowie ähnlichen Analysen auf einem Korpus welcher nur aus Nomen besteht. Darüber
hinaus wurden bei der Analyse des normalen Korpus verschiedene Gewichtungsmaße
3 Datenanalyse 7
für Worte untersucht. Die genannten drei Faktoren (Korpusaufbau, Gewichtung, sowie
Clusteranzahl) bilden den Kern der Analysen.
Des Weiteren sei noch einmal betont, dass die (semantische) Interpretation der ge-
fundenen Cluster bei dieser Analyse nicht maschinell durchgeführt wird. Diese geschieht,
aufgrund der berechneten Cluster (sowie deren Keywords) durch einen Menschen. Ein
(erfahrener) Analyst kann die Keywords in einen größeren Zusammenhang bringen und
so einem Cluster ein Label zuweisen welches ihn semantisch repräsentiert.
3.2.2 Analyse und Ergebnisse
Im Folgenden werden die durchgeführten Analysen und Ergebnisse vorgestellt. Hierbei
sollen vor allem die zwei Kernfragen beantworten werden ob 1) eine semantische Zuord-
nung der Cluster anhand der zugehörigen Keywords möglich ist 2) Wie die gefundenen
Cluster sich mit der Clusteranzahl bzw dem modi�zierten Korpus verändern.
3.2.3 Clustering eines normalen Korpus
Die folgende Analyse zeigt auf wie sich das LDA-Clustering auf einem gewöhnlichen
Korpus verhält. Dieses ist der naheliegende Ansatz, erfordert dennoch die beschriebene
Vorverarbeitung um die Daten aufzubereiten. Der erste Teil dieser Untersuchung nutzt
den gesamten Korpus (dessen Inhalt nach dem Termfrequency-Maß gewichtet wurde).
Der zweite Teil der Analyse macht sich das TF-IDF Maß zunutze. Hierbei wurden ca
10000 Worte aus dem Korpus entfernt, sodass er von 57698 Termen auf 47173 Terme
zusammenschrumpfte (jeweils angeordnet in 27079 Dokumenten). Diese Terme waren
diejenigen, welche laut TF-IDF Maß am schlechtesten bewertet waren (und sich damit
ähnlich wie Stopwords verhalten).
Als Ergebnis der Keywordanalyse der Cluster (und damit der semantischen Zuordnung
der Cluster) sind die Tabellen mit den jeweiligen 20 bedeutensten Clusterkeywords für
2,5 bzw. 10 Cluster im Anhang unter A zu �nden. Diese Ergebnisse sind zunächst recht
ernüchternd. Au�ällig ist, dass viele anscheinend nicht zusammenhängende Begri�e zu
Clustern zusammengefasst wurden (z.B. ’heut’, ’berlin’, ’uhr’ und ’morgen’; A Topic 2).
Darüber hinaus ist auch die Menge an Füllwörtern, sowie nicht aussagekräftigen Wörtern
ein Störfaktor welcher eine gute semantische Zuordnung behindert. Beispiele hierfür sind
’mal’, ’wer’, ’geht’ und ’unser’ (Cluster 1). Weiterhin scheint sich dieses Rauschen sowohl
im TF-Maß-Korpus (gekennzeichnet durch ’TermFreq’), sowie im von seltenen Wörtern
befreiten Korpus (’no sparse’ in den Tabellen) zu zeigen. Dieses deutet darauf hin, dass es
wenig bringt den Korpus von, im TF-IDF-Maß, schlecht bewerteten Worten zu befreien.
Betrachtet man nun die Clusteranzahl als letzten Faktor so zeigt sich, dass der Zweier-
cluster (A) durchaus, möglicherweise zusammenhängende, Themen abbildet (z.B. Topic
1 mit Parteinamen). Betrachtet man hierzu im Vergleich den Fünfercluster, so fällt vor
allem die zweite Topic auf (Parteinamen, ’wahl’, ’bundestagswahl’), welche durchaus als
Thema ’Bundestagswahl’ interpretiert werden könnte. Ähnliche Ergebnisse zeigt auch das
Clustering in 10 Themen, allerdings steigt hier auch das genannte Rauschen erneut an.
Zusammenfassend zeigt sich, dass das LDA Verfahren durchaus in der Lage ist sinnvolle
Cluster/Themengebiete zu bilden, allerdings ist das Rauschen ein durchaus kritischer
Faktor welcher u.a. von der Clusteranzahl mit bestimmt wird.
3 Datenanalyse 8
Die Gra�ken 3.2.3 zeigen die prozentuale Verteilung der Topics über den Korpus
(Anzahl von Dokumenten im Korpus die der Topic n zugeordnet sind). Hierbei stellen die
Untergra�ken a) - c) die Verteilung nach dem Termfrequency-Maß dar. Die Gra�ken d)
- f) basieren auf einem Korpus welcher bereinigt wurde von nur selten vorkommenden
Worten.
(a) (b) (c)
(d) (e) (f)
Fig. 1: Topicverteilung eines normalen Korpus: Termfrequency-Maß und Korpus
ohne seltene Terme (nach TF-IDF) im Vergleich (jeweils mit Topicanzahl 2,
5 und 10)
Zunächst ist es au�ällig, dass eine separate Untersuchung von normalen, sowie be-
reinigtem Korpus (Entfernung seltener Worte) auch bei dieser Untersuchung nicht loh-
nenswert scheint. Nahezu alle Topics weisen eine gleiche oder sehr ähnliche Verteilung
über den Korpus auf. Betrachtet man die Topicverteilung mit steigender Anzahl, so zeigt
sich, dass sich die weniger frequentierten Cluster bei höherer Anzahl allmählich einer
Gleichverteilung annähern. Dieses kann darauf hindeuten, dass die Trennschärfe der
Cluster abnimmt. Zu beobachten ist allerdings auch, dass die jeweils größten Cluster
sich au�älliger voneinander separieren als die folgenden kleineren. Demnach kann man
die These aufstellen, dass die größeren Cluster für LDA einfacher zu bestimmen waren,
während kleinere Cluster mehrdeutiger sind. Dieses müsste allerdings genauer untersucht
werden.
3 Datenanalyse 9
3.2.4 Clustering eines Nomen-basierten Korpus
Betrachtet man die vorherige Analyse fällt auf, dass vor allem ein Rauschen die Un-
tersuchung behindert. Dieses geht nach den Keywordtabellen A stark von bestimmten
Wortarten aus. Augenscheinlich sind die, bei dieser Analyse, nützlichsten Worte Nomen,
da diese am meisten Kontext vermitteln und somit eine semantische Einordnung erlauben.
Aus diesem Grund widmet sich der zweite Teil der Analyse einem Korpus welcher nur
aus Nomen besteht. Dieser Korpus basiert auf dem vorherigen, allerdings wurde natu-
ral language processing verwendet um die Nomen zu extrahieren. Die bereits erwähnte
Vorverarbeitung unterscheidet sich ansonsten nicht.
Die für den Korpus generierten Keywordcluster-Tabellen sind ebenfalls im Anhang zu
�nden. Diese zeigen wie erho�t weniger Rauschen und enthalten durchaus Schlagwör-
ter welche das Parteiprogramm der Piraten widerspiegeln (z.B. ’transparenz’, ’internet’,
’überwachung’, ’grundeinkommen’). Allerdings tauchen diese Begri�e nur selten in einem
gemeinsamen Cluster auf. Daher scheint es bei dieser Methode weniger sinnvoll einem
Cluster ein semantisches Label aufgrund seiner Keywords zuzuteilen. Diese Aussage ist
dabei unabhängig von der Anzahl der Cluster die gebildet werden. Im Vergleich zur ersten
Analyse hat man nun zwar ggf. eine bessere Stichwortliste zum Thema Piraten, allerdings
bilden die Cluster schlechtere Einheiten. Au�ällig ist auch, dass Begri�e welche in der
ersten Analyse auftauchten und durchaus nützlich waren (z.B. Parteinamen) nun nicht
mehr vorhanden sind. Dieses kann ggf. durch unzureichende Grammatik in Tweets erklärt
werden, so dass diese durch die NLP-Komponente nicht als Nomen erkannt wurden.
Die Gra�k 3.2.4 zeigt die Topicverteilung über dem auf Nomen basierenden Korpus.
Grundlegend zeigt sich hier ein ähnliches Bild wie in der vorherigen Analyse. Größere
Topiccluster sind stärker von kleineren abgegrenzt, während kleinere Cluster sich kaum in
der Größe unterscheiden. Au�ällig ist allerdings, dass die stärksten Cluster im Vergleich
zur ersten Analyse noch deutlicher geworden sind (die jeweils größten Cluster haben
noch einmal zwischen 3% und 5% an ’Abgrenzung’ zum nächst kleineren gewonnen).
Die Trennschärfe zwischen den Clustern hat also weiter zugenommen, so dass mehr
Dokumente den stärker ausgeprägten Themen zugeordnet werden.
(a) (b) (c)
Fig. 2: Topicverteilung eines nomenbasierter Korpus: Vergleich bei verschieden
vielen Topics
4 Fazit und zukün�ige Ziele 10
4 Fazit und zukün�ige Ziele
Die folgenden Abschnitte ziehen ein kurzes Fazit zu den Ergebnissen des in dieser Arbeit
vorgestellten Projektes.
Zunächst ist es im ersten Teil des Projekts gelungen ein brauchbares Datenset auf-
zubauen, auf welchem weitere Analysen durchgeführt werden können. Darüber hinaus
wurde durch eine erste Auswertung der Testdaten Wissen über diese gescha�en. Weiterhin
wurde durch die Arbeit mit der Analyseumgebung R ein grundlegend gutes Verständnis
für diese gewonnen, dieses wird für zukünftige Arbeiten wichtig sein. Zusammenfas-
send ist also eine grundlegende Arbeitsumgebung gescha�en worden, welche es erlaubt
weiterführende Untersuchungen durchzuführen.
Die im zweiten Teil dargelegten Analysen zeigen die Stärken des Topicclustering
durch Methoden des maschinellen Lernen anhand der latenten Dirichlet Allocation. Es
zeigt sich, dass sich auch auf einem Tweet basiertem Korpus (sehr kleine Dokumente)
durchaus thematische Cluster bilden lassen. Allerdings zeigt sich auch, dass dieses nur
eingeschränkt möglich ist. Bei den Analysen zeigte sich das Ausmaß von ’Rauschen’
welches die Untersuchungen behindert. Weiterhin zeigt sich, dass die zwei genutzten
Gewichtungsmaße für Terme (TF und TF-IDF) nahezu keinen Mehrwert liefern. Darüber
hinaus wurde gezeigt wie sich ein auf Nomen basierender Korpus auf die Analyse auswirkt
und welche Vor- und Nachteile dieses mit sich bringt. Es zeigt sich, dass der Clustering
Algorithmus weniger zusammenhängende Cluster bildet, diese dafür aber eine deutlichere
Topicverteilung liefern. Auch zeigte sich, dass es mit beiden Methoden grundsätzlich nur
mittelmäßig gut möglich ist einem Cluster anhand von Keywords ein semantisches Label
zuzuordnen. Grundlegend ist darüber hinaus auch anzumerken, dass die mathematische
Basis des Verfahrens recht komplex ist. Die Anwendung des Algorithmus ist dank diverser
vorhandener Implementierungen vergleichsweise einfach, allerdings ist es schwer (uner-
wartet schlechte) Ergebnisse zu erklären ohne den komplizierten statistischen Hintergrund
komplett zu verstehen.
Betrachtet man zukünftige Arbeiten so zeigt sich, dass linguistische Aspekte sich
durchaus vorteilhaft auf das Clustering auswirken können. Ein Aspekt der erst spät
in den Analysen aufgefallen ist, ist der Fakt, dass der Stemming Algorithmus in der
Vorverarbeitung der Daten nicht optimal funktioniert hat. Dieses wäre durchaus eine
mögliche Verbesserung in Bezug auf weitere Analysen. Ebenso könnten Kombinationen
aus Nomen und anderen Wortgruppen genauer untersucht werden, um den Nachteilen
die ein Nomen-basierter Korpus mit sich bringt entgegenzuwirken. Grundsätzlich zeigt
dieses Paper, dass maschinelles Textclustering auf Tweets durchaus Potenzial besitzt und
sinnvoll weiter untersucht werden kann.
Diese Arbeit widmete sich vor allem der Erkennung von aktuellen Trends und Themen.
Ein nächster Schritt kann die Verfolgung von Themen über die Zeit sein, denn trotz der
ernüchternden Ergebnisse dieses Projektes ist der Autor weiterhin von der Machbarkeit
der ursprünglichen Idee überzeugt. Eine potenziell nützliche Arbeit in diese Richtung ist
unter [Nik12] zu �nden.
Dennoch hat der Autor dieses Papers sich dazu entschlossen den Fokus seiner Arbeit
zu ändern und sich nicht mehr der Trenderkennung an sehr kurzen und unstrukturierten
Daten zu widmen. Zukünftige Arbeiten werden sich längeren redaktionell erstellten Texten
4 Fazit und zukün�ige Ziele 11
widmen, welche semi-strukturiert sind. Diese Texte stammen aus einem Pressearchiv eines
europäischen Zeitungsnetzwerkes. Dieses hat den Vorteil, dass die Artikel aufgrund ihrer
Länge deutlich mehr Informationen als ein Tweet enthalten. Darüber hinaus entfallen
auch große linguistische Herausforderungen, welche sich in Twitter z.B. durch die stark
komprimierte Ausdrucksweise darstellen. Ein weiterer wichtiger Aspekt welcher für die
neue Datenbasis spricht, ist die vorhandene Struktur (z.B. durch ausgewiesene Zusam-
menfassungen und Überschriften). Diese ermöglicht es im Vergleich zur Tweetsammlung
auf vollkommen andere Daten und Ansätze zurückzugreifen, da eine Überschrift oder
Zusammenfassung eine andere Sichtweise auf ein Dokument erlaubt als der eigentli-
che Artikeltext. All die genannten Vorteile führen zudem auch zu einer Veränderung
der Zielsetzung des Autors, welche nun darin besteht ein Artikelarchiv für die weitere
redaktionelle Arbeit eines Zeitschriftenverlags aufzubereiten um neue Erkenntnisse zu
ermöglichen.
Literatur
[BNJ03] Blei, David M. ; Ng, Andrew Y. ; Jordan, Michael I.: Latent Dirichlet Allocation.
In: J. Mach. Learn. Res. 3 (2003), März, 993–1022. http://dl.acm.org/citation.cfm?id=944919.944937. – ISSN 1532–4435
[Che] Chen, Edwin: Introduction to Latent Dirichlet Al-location, http://blog.echen.me/2011/08/22/introduction-to-latent-dirichlet-allocation/
[Gri02] Griffiths, Tom: Gibbs sampling in the generativemodel of Latent Dirich-let Allocation, 2002
[Nik12] Nikolov, Stanislav: Trend or No Trend: A Novel Nonparametric Method
for Classifying Time Series. (2012), 11. http://dspace.mit.edu/bitstream/handle/1721.1/85399/870304955.pdf
[Sch13] Schöneberg, Marcel: Weak Signals. (2013). http://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2013-aw1/schoeneberg/bericht.pdf
[Tan] Tang, Lei: Gibbs Sampling for LDA, http://leitang.net/presentation/LDA-Gibbs.pdf
[WTL] Wayne Tai Lee, Satpreet S.: Latent Dirichlet Allocation (LDA) for ML-IR Discussion Group, http://de.slideshare.net/WayneLee9/lda-oct3-2013
A Anhang 12
A Anhang
Tab. 1: Keywords bei 2 Topics (normaler Korpus)
Keyword # Topic 1 Topic 2TermFreq no sparse TermFreq no sparse
1 piraten piraten piraten piraten
2 mal mal berlin berlin
3 dass dass heut piratenpartei
4 mehr mehr piratenpartei heut
5 lieb lieb bitt bitt
6 partei partei via gibt
7 schon schon dank dank
8 warum warum neue neue
9 gibt via neuer neuer
10 link link uhr uhr
11 wer wer nrw nrw
12 wählen wählen unser unser
13 spd spd beim beim
14 fdp fdp morgen morgen
15 politik politik fordern fordern
16 grüne grüne artikel artikel
17 geht geht erst statt
18 macht macht statt beitrag
19 immer gut gerad pirat
20 gut immer beitrag gerad
Tab.
2:K
ey
wo
rd
sb
ei
5T
op
ics
(n
orm
aler
Ko
rp
us)
Key
word#
Topic1
Topic2
Topic3
Topic4
Topic5
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
1p
iraten
piraten
piraten
piraten
piraten
piraten
piraten
piraten
piraten
mal
2m
al
heu
tlin
kb
erlin
dass
lin
kb
erlin
lieb
heu
tp
iraten
3lieb
neu
er
wäh
len
piraten
partei
meh
rsp
dvia
bitt
piraten
partei
dass
4bitt
neu
esp
dvia
partei
fd
pfo
rd
ern
dan
kn
eu
em
eh
r
5w
er
uh
rfd
pp
olitik
waru
mw
äh
len
bu
nd
estag
beim
neu
er
partei
6d
an
kn
rw
grü
ne
artik
el
sch
on
grü
ne
jah
ru
nser
uh
rsch
on
7g
eh
tm
org
en
nrw
neu
en
gibt
cd
uerst
gerad
mo
rg
en
waru
m
8u
nser
fo
rd
ern
cd
up
olitisch
po
litik
parteien
po
litisch
wah
lk
am
pf
artik
el
gibt
9m
ach
tstatt
grü
nen
sag
tim
mer
bu
nd
estag
on
lin
wu
rd
statt
wer
10
beim
beitrag
btw
13
weg
en
gu
tbtw
13
in
terview
brau
ch
en
gerad
im
mer
11
ein
fach
pirat
afd
in
terview
parteien
grü
nen
neu
en
lesen
pirat
gu
t
12
wah
lk
am
pf
un
terstü
tzen
lan
dtag
parteitag
men
sch
en
rech
tp
arteitag
lq
fb
beitrag
mach
t
13
brau
ch
en
�n
det
weg
en
th
em
ag
an
zg
eh
tu
rh
eb
errech
tp
lak
at
deu
tsch
lan
dm
en
sch
en
14
lesen
2013
wah
ld
eu
tsch
lan
deig
en
tlich
jah
rin
tern
et
arb
eit
ko
mm
tein
fach
15
seit
ko
mm
tbu
nd
estag
sw
ah
ltran
sp
aren
zviel
afd
vo
rstan
dh
abt
th
em
aeig
en
tlich
16
lq
fb
piraten
partei
dem
ok
rati
bg
erech
tp
ro
gram
mw
elt
übrig
en
2013
viel
17
bu
vo
lan
dtag
ko
mm
en
welt
mü
ssen
bu
nd
estag
wah
lg
ew
äh
lt
brau
ch
t�
nd
et
gan
z
18
arb
eit
fran
kfu
rt
nied
ersach
sen
on
lin
sag
tw
ah
lafelia
blo
gu
nterstü
tzen
gu
te
19
press
stellen
bg
eu
rh
eb
errech
tso
llten
nied
ersach
sen
tran
sp
aren
zsteh
en
wu
rd
mü
ssen
20
to
ll
an
trag
piraten
partei
sch
mid
tlep
pw
äre
ko
mm
en
sch
mid
tlep
pvielen
fran
kfu
rt
wäre
13
A Anhang 14
Tab.
4:K
ey
wo
rd
sb
ei
10
To
pics
(n
orm
aler
Ko
rp
us)
Topic1
Topic2
Topic3
Topic4
Topic5
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
1p
iraten
mal
piraten
piraten
piraten
piraten
piraten
piraten
heu
tp
iraten
2b
erlin
piraten
mal
piraten
partei
piraten
partei
neu
er
neu
er
berlin
piraten
geh
t
3erst
lieb
lieb
via
via
nrw
nrw
heu
tlin
kn
eu
en
4h
am
bu
rg
bitt
bitt
fo
rd
ern
deu
tsch
lan
db
eitrag
fo
rd
ern
uh
rfd
perst
5sch
mid
tlep
pd
an
kw
er
deu
tsch
lan
din
terview
artik
el
beitrag
mo
rg
en
sp
dp
arteitag
6zu
rü
ck
un
ser
mach
tu
rh
eb
errech
to
nlin
gerad
artik
el
statt
grü
ne
in
terview
76p
iraten
beim
beim
welt
parteitag
un
terstü
tzen
lan
dtag
2013
uh
rbu
vo
8h
olstein
wah
lk
am
pf
ein
fach
in
tern
et
pro
gram
mw
urd
un
terstü
tzen
ko
mm
tcd
ug
ew
äh
lt
9so
llen
zeit
brau
ch
en
bran
den
bu
rg
bg
eg
uten
tag
�n
det
btw
13
vo
rstan
d
10
ag
hlesen
th
em
abrief
o�
en
kreisverban
dü
berw
ach
un
gfran
kfu
rt
statt
sch
lö
mer
11
bild
brau
ch
en
wah
lk
am
pf
nazi
bu
nd
esp
arteitag
dresd
en
weg
en
th
em
ag
rü
nen
gu
te
12
frak
tio
nlq
fb
lesen
gestern
sch
lö
mer
gru
nd
ein
ko
mm
en
blo
gp
ost
stam
mtisch
afd
bu
nd
esp
arteitag
13
zw
ei
en
dlich
lq
fb
deu
tsch
en
wah
lp
ro
gram
msach
sen
dem
otre�
en
�n
det
neh
men
14
lau
er
arb
eit
übrig
en
lan
desp
arteitag
gru
nd
ein
ko
mm
en
blo
gp
ost
prism
ham
bu
rg
ko
mm
tbp
t22
15
an
gst
habt
gern
livestream
ko
mm
en
tar
bg
eru
fen
o�
en
2013
jo
han
nesp
on
ad
16
gen
au
vielen
zeit
netz
welt
merk
el
berich
td
em
obu
nd
estag
sw
ah
lk
ritik
17
med
ien
no
ch
mal
habt
mitg
bran
den
bu
rg
kritisieren
bp
t131
ab
en
dn
ied
ersach
sen
neu
18
eu
ro
afelia
en
dlich
basi
bp
t122
ju
ng
pressem
itteilu
ng
in
fo
stam
mtisch
bp
t12
19
zu
ku
nft
lassen
mö
ch
te
altern
stream
th
ürin
gen
su
ch
en
sam
stag
tre�
en
bu
bern
d
20
halten
seid
brau
ch
ttu
tp
iraten
ch
ef
rau
s20p
iraten
so
nn
tag
um
frag
po
litisch
en
A Anhang 15
Key
word#
Topic6
Topic7
Topic8
Topic9
Topic10
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
Term
Freq
nosparse
1d
ass
piraten
piraten
piraten
piraten
dass
piraten
piraten
piraten
piraten
2sch
on
meh
rd
an
kn
eu
em
eh
rsch
on
neu
elin
kw
äh
len
waru
m
3p
artei
lan
dtag
un
ser
mach
tp
olitik
gibt
pirat
sp
dm
org
en
wer
4w
aru
md
em
ok
rati
gu
te
po
litik
geh
tim
mer
jah
rfd
pg
erad
partei
5g
ibt
tran
sp
aren
zbu
vo
pirat
parteien
gu
tseit
grü
ne
neu
en
parteien
6im
mer
weg
en
to
ll
po
litisch
bu
nd
estag
men
sch
en
po
litisch
wäh
len
wu
rd
bu
nd
estag
7g
ut
stellen
arb
eit
on
lin
besser
gan
zin
tern
et
cd
ug
ew
äh
lt
sag
t
8m
en
sch
en
geld
vielen
bay
ern
rech
tviel
tw
itter
btw
13
stellen
mü
ssen
9eig
en
tlich
6p
iraten
no
ch
mal
nein
wen
ig
eig
en
tlich
bay
ern
grü
nen
vo
rstan
dp
ro
gram
m
10
gan
zn
ew
sd
afü
rb
ek
om
men
tran
sp
aren
zp
artei
gem
ein
sam
afd
geh
en
jah
r
11
viel
sch
lesw
ig
ho
lstein
urh
eb
errech
tbild
gibt
ein
fach
fast
bu
nd
estag
sw
ah
lg
uten
so
llten
12
so
llten
zu
rü
ck
lieb
er
en
dafelia
wäre
wirk
lich
wah
lblo
gk
om
men
13
leu
tlan
dh
ätte
so
llen
ko
mm
en
wen
ig
jah
ren
nied
ersach
sen
kreisverban
dsch
mid
tlep
p
14
sag
en
gem
ein
sam
in
fo
stan
dk
lein
dem
ok
rati
sag
en
sieh
trech
td
resd
en
geh
en
15
�n
derfo
lg
mag
wer
th
em
en
übrig
en
weg
en
wäh
ler
an
trag
seh
en
16
mü
ssen
geb
en
geblo
gg
tab
en
teu
wich
tig
�n
d�
nd
en
um
frag
wah
lerk
lärt
17
rich
tig
co
ol
brem
en
�n
den
in
halt
wo
hl
dab
ei
saarlan
dn
ew
sjem
an
d
18
wäre
eu
ro
po
litisch
po
pco
rn
sag
tp
ress
netz
ltw
nd
sn
eu
tu
n
19
ech
tliq
uid
liq
uid
blo
gw
oh
lleu
tg
rü
nd
en
gro
ße
ju
ng
in
halt
20
steh
tan
trag
sich
er
kattasch
asch
reibt
dafü
rab
en
teu
cd
ucsu
kan
did
aten
po
litik
A Anhang 16
Tab. 7: Keywords bei 2 Topics (Nomenbasierter Korpus)
Keyword # Topic 1 Topic 21 piraten piraten
2 http piratenpartei
3 partei parteien
4 politik bundestag
5 uhr grünen
6 link pirat
7 artikel jahr
8 grüne leut
9 menschen demokrati
10 beitrag internet
11 thema problem
12 wwwyoutub wahlkampf
13 wahl arbeit
14 programm press
15 zeit welt
16 interview antrag
17 bundestagswahl morgen
18 transparenz recht
19 parteitag plakat
20 https medien
A Anhang 17
Tab. 8: Keywords bei 5 Topics (Nomenbasierter Korpus)
Keyword # Topic 1 Topic 2 Topic 3 Topic 4 Topic 51 piraten piraten piraten piraten piraten
2 bundestag piratenpartei http partei uhr
3 parteien programm link politik artikel
4 jahr press grüne thema grünen
5 wwwyoutub urheberrecht wahlkampf pirat problem
6 parteitag antrag bundestagswahl interview landtag
7 zeit beitrag recht internet morgen
8 kreisverband arbeit plakat transparenz leut
9 mitglied artikel tage welt stammtisch
10 grundeinkommen fraktion umfrag menschen themen
11 kritik sonntag demokrati tag kommentar
12 lieb bitt brief lieb blog
13 wähler parlament beitrag frauen vorstand
14 geld inhalt video medien jahren
15 buvo bundesparteitag piratenchef macht freiheit
16 infostand bild prozent wahl samstag
17 überwachung menschen stream land woch
18 demokrati diskuss bericht https bürger
19 menschen anträg afd fragen nrwpiraten
20 euro meinung end kandidaten dank
A Anhang 18
Tab. 9: Keywords bei 10 Topics (Nomenbasierter Korpus)
Keyword # Topic 1 Topic 2 Topic 3 Topic 4 Topic 51 piraten piraten piraten piraten piraten
2 recht piratenpartei politik uhr pirat
3 piratenpartei vorstand wwwyoutub https jahr
4 inhalt frauen http stammtisch leut
5 urheberrecht nazi internet morgen plakat
6 wahl press bundesparteitag transparenz medien
7 bild polizei artikel dank partei
8 schmidtlepp interview zeit abend parteitag
9 demo chanc video samstag abenteu
10 ideen mitglied kommentar land macht
11 wahlprogramm 6piraten prozent stream grundeinkommen
12 debatt transparenz jahren interview storm
13 johannesponad glückwunsch bürger kreisverband parlament
14 linken ide vorsitzend aktion sonntag
15 zeitung quot bericht press unterstützung
16 brief staat wähler landesparteitag bge
17 woch ziel beitrag infostand gra�k
18 kandidaten anträg wochen mitg mai
19 unterschriften piratenfrakt woch info fefe
20 antrag problem bestandsdatenauskunft frau nachrichten
Keyword # Topic 6 Topic 7 Topic 8 Topic 9 Topic 101 piraten piraten piraten piraten piraten
2 parteien partei http menschen beitrag
3 demokrati piratenpartei link lieb arbeit
4 geld landtag grüne thema wahlkampf
5 problem tag bundestagswahl programm themen
6 bundestag welt umfrag zeit fragen
7 grünen zukunft tage welt bundestag
8 frage hilf artikel basi programm
9 nrwpiraten netz wahl kritik angst
10 protest diskuss landtagswahl fraktion bitt
11 euro thüringen livestream erfolg freiheit
12 text netzpolitik afd meinung blog
13 thema parteitag wahlen wahlkampf grünen
14 petit kreisverband kommunalwahl artikel landtag
15 journalisten analys bürgerbeteiligung brunogertkramm thema
16 kinder fehler lqfb fall menschen
17 pressemitteilung 20piraten wahlkampf list rücktritt
18 bund programm jungen rassismus interview
19 liquid landesverband ponad piratenparteitag einladung
20 piratenchef piratinnen wähler gedanken teil
Recommended