24.11.2013 Aufrufe

Automatisiertes Priorisieren von RSS Feed Beiträgen mittels ...

Automatisiertes Priorisieren von RSS Feed Beiträgen mittels ...

Automatisiertes Priorisieren von RSS Feed Beiträgen mittels ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

1<br />

<strong>Automatisiertes</strong> <strong>Priorisieren</strong> <strong>von</strong> <strong>RSS</strong> <strong>Feed</strong> <strong>Beiträgen</strong> <strong>mittels</strong><br />

maschinellem Lernen<br />

Tobias Zeising<br />

tobias.zeising@aditu.de ▪ http://www.aditu.de<br />

Hauptseminar im Studiengang Informatik Master ▪ Hochschule München ▪ Juli 2010<br />

Zusammenfassung<br />

Um auch größere Mengen an täglich anfallende<br />

Informationen effizient verarbeiten zu können, wird<br />

in dieser Arbeit nach einer Möglichkeit zur<br />

automatisierten Priorisierung <strong>von</strong> <strong>RSS</strong> <strong>Feed</strong><br />

<strong>Beiträgen</strong> gesucht. Gezielt werden Verfahren des<br />

maschinellen Lernens auf ihre Eignung zur<br />

Klassifikation eingehender Nachrichten untersucht<br />

und näher beleuchtet. Das k-nächste-Nachbarn<br />

Verfahren, basierend auf dem simulierten Abkühlen<br />

wird vorgestellt und hinsichtlich seiner<br />

Leistungsfähigkeit mit dem naiven Bayes<br />

Klassifikator verglichen.<br />

1. Einführung<br />

1.1 Problemstellung<br />

Durch den steigenden Grad an Vernetzung, nimmt<br />

auch die Menge an Informationen, die täglich auf<br />

uns einwirkt zu. So ist es eine Herausforderung für<br />

jeden Einzelnen, sich so zu organisieren, dass<br />

wichtige Informationen, Nachrichten und<br />

Mitteilungen in den täglich anfallenden<br />

Datenbergen nicht verloren gehen. Speziell im<br />

Internet entsteht die Schwierigkeit, dass wir<br />

zahlreiche Quellen nutzen und aus den<br />

verschiedensten Inhalten wichtige Informationen<br />

beziehen.<br />

Eine Lösung um diesem Problem zu begegnen, ist<br />

die Verwendung <strong>von</strong> <strong>RSS</strong> Aggregatoren. Diese<br />

Programme tragen Informationen, über<br />

Plattformgrenzen hinweg, zusammen und<br />

sammeln diese in einem zentralen System. Hierzu<br />

verwenden <strong>RSS</strong> Aggregatoren sogenannte <strong>RSS</strong><br />

<strong>Feed</strong>s (<strong>RSS</strong> für Really Simple Syndication), die<br />

durch zahlreiche Plattformen wie Blogs, Soziale<br />

Netzwerke, Nachrichtendienste und andere Web-<br />

Applikationen zur Verfügung gestellt werden.<br />

Diese <strong>RSS</strong> <strong>Feed</strong>s werden laufend durch die Quell-<br />

Applikation aktualisiert und enthalten in<br />

strukturierter Form (als XML Datei), sämtliche<br />

aktuelle Beiträge, News oder den jeweiligen<br />

Content der Anwendung. Auf diese Weise werden<br />

dem Anwender, an einer zentralen Stelle, alle<br />

aktuellen Mitteilungen präsentiert, wobei dieser<br />

sich selbst die Quellliste zusammenstellen und<br />

seinem Interessengebiet entsprechend eine<br />

Aboliste mit <strong>RSS</strong> <strong>Feed</strong>s aufbauen kann.<br />

Diese Vorgehensweise führt aber mitunter dazu,<br />

dass sehr viele Informationen anfallen und die<br />

Sichtung der Nachrichten zu einer Geduldsprobe<br />

wird. Ein Beispiel aus der Praxis zeigt, dass bei<br />

etwa 140 abonnierten Quellen, täglich zwischen<br />

200 und 250 Nachrichten pro Tag anfallen. Es liegt<br />

also nahe, eine automatisierte Priorisierung der<br />

Informationen vorzunehmen und ausgehend vom<br />

individuellen Interesse des Benutzers, Beiträge,<br />

die <strong>von</strong> größerer Relevanz sind höher zu<br />

platzieren. Hierzu muss das System vom<br />

Anwender lernen, welche Inhalte <strong>von</strong> größerer<br />

Bedeutung und welche eher nebensächlich sind.<br />

Bei näherer Betrachtung wird schnell klar, dass es<br />

sich um ein Problem der automatisierten<br />

Klassifikation <strong>von</strong> Texten handelt.<br />

Im Rahmen dieser Arbeit soll ein Verfahren<br />

entwickelt werden, das dazu geeignet ist, vom<br />

Benutzer zu lernen und automatisch die<br />

Priorisierung vorzunehmen. Eine webbasierte<br />

Applikation für das Aggregieren der <strong>RSS</strong> <strong>Feed</strong>s<br />

liegt bereits vor und muss entsprechend der<br />

Anforderungen so modifiziert werden, dass eine<br />

automatisierte Priorisierung möglich wird.<br />

1.2 Der <strong>RSS</strong> Aggregator "rsslounge"<br />

Als Basis für diese Arbeit, wird der webbasierte<br />

<strong>RSS</strong> Aggregator "rsslounge" (Zeising, 2010)<br />

verwendet. Diese Anwendung basiert auf der<br />

Programmiersprache PHP und baut auf dem Zend<br />

Framework auf. Ein klassischer Apache Server mit<br />

installiertem PHP Modul, sowie eine MySQL<br />

Datenbank dienen als Laufzeitumgebung. Das<br />

Frontend bildet eine HTML und CSS Seite, welche<br />

<strong>mittels</strong> dem JavaScript Framework jQuery<br />

dynamische Interaktionen ermöglicht.<br />

"rsslounge" steht unter GPLv3 Lizenz und steht<br />

kostenfrei zum Download zur Verfügung.<br />

Anwender müssen sich die Applikation<br />

herunterladen und auf einem eigenen Server<br />

installieren. Er steht nicht als Dienst zur<br />

Verfügung und kann ausschließlich auf einem<br />

eigenen Server betrieben werden.<br />

Eine automatische Priorisierung <strong>mittels</strong> dem<br />

naiven Bayes Klassifikator wurde bereits vor<br />

dieser Arbeit implementiert. Dieser liefert aber


2<br />

keine zufriedenstellenden Ergebnisse, da<br />

besonders beim Auftauchen sehr gegensätzlicher<br />

Begriffe der naive Ansatz versagt. Im Rahmen<br />

dieser Arbeit soll also auch die Überlegenheit<br />

eines vektorbasierten Verfahrens nachgewiesen<br />

oder widerlegt werden.<br />

1.3 Anforderungen<br />

Da der <strong>RSS</strong> Aggregator "rsslounge" eine<br />

Applikation ist, welche zum freien Download zur<br />

Verfügung steht und die Installation auf einem<br />

individuell durch den Endanwender gewählten<br />

Server erfolgt, gibt es eine Reihe an<br />

Anforderungen, die eingehalten werden müssen:<br />

• Die Lösung muss echtzeitfähig sein. Weder der<br />

Lern-, noch der Klassifikationsprozess dürfen<br />

übermäßig viel Laufzeit in Anspruch nehmen.<br />

Da der Lernprozess durch eine<br />

Benutzerinteraktion entsteht, darf dieser<br />

maximal 500 Millisekunden in Anspruch<br />

nehmen. Der Klassifikationsprozess wird für<br />

gewöhnlich durch einen zyklisch aufgerufenen<br />

Prozess automatisch durch den Server<br />

gestartet. Hierfür herrschen weniger<br />

restriktive Laufzeitschranken, dennoch darf<br />

angesichts der möglichen Menge an Quellen<br />

der Klassifikationsprozess nicht zu lange<br />

dauern (im Bereich <strong>von</strong> Sekunden).<br />

• Da der Reader auf einem unbekannten Server<br />

installiert wird, dürfen keine Abhängigkeiten<br />

zu externen Bibliotheken und Komponenten<br />

bestehen. Eine Ausnahme bilden PHP<br />

Bibliotheken, die mit dem Programmpaket<br />

ausgeliefert werden können. Hierbei ist darauf<br />

zu achten, dass die Lizenzbestimmungen eine<br />

Weiterverteilung erlauben.<br />

• Es stehen nicht unbegrenzt Ressourcen zur<br />

Verfügung. So muss darauf geachtet werden,<br />

dass die Lösung nicht zu viel Speicher oder<br />

CPU Zeit benötigt. Die Daten für die<br />

Klassifikation sollten hierzu möglichst nicht<br />

mehr als 100 MB in Anspruch nehmen.<br />

• Der Reader wird <strong>von</strong> Benutzer der<br />

verschiedensten Nationalität verwendet. Die<br />

Lösung muss <strong>von</strong> der aktuell verwendeten<br />

Sprache unabhängig sein.<br />

• Der Lernprozess muss inkrementell erfolgen.<br />

Der Anwender soll im laufenden Betrieb die<br />

Möglichkeit haben das System zu trainieren<br />

und an seine Bedürfnisse anzupassen.<br />

• Die Bedienung des Lernprozesses muss<br />

einfach und intuitiv sein. Deshalb wird eine<br />

einfache Eingabe (Beitrag als interessant oder<br />

langweilig markieren) bevorzugt.<br />

• Das eingesetzte Verfahren muss frei <strong>von</strong><br />

Patentansprüchen sein.<br />

2. Überblick über die<br />

Textklassifikation<br />

2.1 Textklassifikation <strong>mittels</strong> maschinellem<br />

Lernen<br />

Die Klassifikation <strong>von</strong> Text umfasst das<br />

automatisierte Zuordnen <strong>von</strong> Dokumenten zu<br />

vordefinierten Klassen (Themengebieten). Es wird<br />

hierbei unterschieden zwischen der nicht<br />

exklusiven Klassifikation (ein Dokument kann<br />

mehreren Klassen zugeordnet werden) und der<br />

exklusiven Klassifikation. Eine Klassifikation setzt<br />

voraus, dass die Kategorisierung bereits vor der<br />

Zuordnung feststeht. Wird während des Prozesses<br />

der Zuordnung eine Bildung der Kategorien<br />

vorgenommen, so spricht man vom Clustering<br />

(Hoffmann, 2002).<br />

Für das vorliegende Problem ist eine automatische<br />

Klassifikation erforderlich. Ein System muss also<br />

automatisiert, ausgehend <strong>von</strong> Trainingsdaten, ein<br />

Text-Dokument in eine Kategorie einordnen. Man<br />

spricht hier <strong>von</strong> maschinellem Lernen, da neues<br />

Wissen aus Erfahrung heraus gebildet wird. Die<br />

Textklassifikation besteht bei den meisten<br />

Verfahren aus zwei Schritten: dem Lernen und<br />

dem Klassifizieren.<br />

2.2 Extraktion <strong>von</strong> Merkmalen<br />

Um ein Lernen oder Klassifizieren zu ermöglichen,<br />

müssen aus dem vorliegenden Dokument zuerst<br />

Merkmale extrahiert werden. Bei den gängigen<br />

Vorgehensweisen, die in der Literatur zu finden<br />

sind, wird ein Text in seine Einzelwörter zerlegt,<br />

wobei dessen Reihenfolge nicht weiter beachtet<br />

und verworfen wird. Man spricht deshalb auch oft<br />

<strong>von</strong> einem "bag of words"-Modell (Blankenhorn,<br />

2002, S. 19). Wie (Sebastiani, 2002, S. 11)<br />

beschreibt, ist es auch möglich Phrasen zu<br />

verwenden, wobei diese basierend auf der<br />

Grammatik oder <strong>mittels</strong> statistischer Verfahren<br />

ermittelt werden. Die Verwendung <strong>von</strong><br />

Wortgruppen ist aber problematisch, da diese eine<br />

geringere Häufigkeit haben und für eine<br />

Merkmalsreduktion nur schlecht geeignet sind. In<br />

dieser Arbeit wird dieser Ansatz deshalb nicht<br />

weiter verfolgt und das "bag of words"-Modell<br />

verwendet.<br />

Es hängt <strong>von</strong> den eingesetzten Verfahren ab, wie<br />

die einzelnen Merkmale interpretiert werden. So<br />

verarbeitet der naive Bayes Klassifikator die<br />

einzelnen Wörter direkt, während beispielsweise<br />

beim Rocchio Verfahren die Wörter eines


3<br />

Abbildung 1: Ein Merkmalsvektor wird aus einem Text gebildet. Die zwei Wörter "aller" und<br />

"Säugetiere" wurden in einem anderen Dokument extrahiert, kommen in der aktuel len Nachricht aber<br />

nicht vor. Quelle: (Blankenhorn, 2002, S. 19)<br />

Dokuments als Merkmalsvektor interpretiert<br />

werden.<br />

Die meisten weiterführenden Verfahren der<br />

Klassifikation, wie beispielsweise Support Vektor<br />

Maschinen oder der k-nächste-Nachbarn<br />

Algorithmus basieren auf Merkmalsvektoren und<br />

gehen <strong>von</strong> einem mehrdimensionalen<br />

Merkmalsraum aus. In diesem Raum werden die<br />

Vektoren als Punkte platziert. Es wird die<br />

Grundannahme gemacht, dass ähnliche<br />

Merkmalsvektoren näher beieinander liegen als<br />

solche, die sich weniger ähneln.<br />

Die Abbildung 1 zeigt, wie aus einem Dokument<br />

ein Merkmalsvektor gebildet werden kann. Die<br />

einzelnen Wörter entsprechen dabei den<br />

Dimensionen im Merkmalsraum, die Häufigkeit<br />

legt dabei die Länge der einzelnen Dimension des<br />

Vektors fest. Anstelle der Häufigkeiten werden<br />

meist Gewichte, wie die TF-IDF verwendet.<br />

Denkbar wäre es aber auch einfach binär eine 1 zu<br />

setzen, falls das entsprechende Wort im Text vor<br />

kommt, oder sonst eine 0 einzusetzen.<br />

Es ist auch möglich anwendungsspezifische<br />

Merkmale, wie beispielsweise Metadaten<br />

einfließen zu lassen und so in der Klassifikation zu<br />

berücksichtigen. Häufig wird das Dokument auch<br />

vorverarbeitet, beispielsweise Sprachkonstrukte<br />

aus HTML oder XML zuvor entfernt.<br />

2.3 Verkleinerung des Merkmalraums<br />

Besonders beim Vektormodell wächst die Anzahl<br />

der Dimensionen nach nur wenigen<br />

Lernvorgängen stark an. Zudem besteht das<br />

Problem, dass durch die Vielfalt und Semantik<br />

einer Sprache zu viele Merkmale entstehen. So<br />

werden gleichbedeutende Begriffe doppelt gelistet<br />

oder unbedeutende Wörter wie Artikel mit in den<br />

Merkmalsvektor mit aufgenommen. Um diesem<br />

Problem zu begegnen, werden verschiedene<br />

Ansätze verfolgt. George Forman schlägt in dem<br />

Buch "Computational Methods of Feature<br />

Selection" (Forman, 2007) mehrere Möglichkeiten<br />

vor:<br />

Verschmelzen <strong>von</strong> Wörtern<br />

Wörter vollständig in Kleinbuchstaben<br />

umzuwandeln ist der einfachste Weg Wörter<br />

zusammenzufassen. Darüber hinaus werden auch<br />

linguistische Verfahren, basierend auf<br />

Wörterbücher verwendet. So werden alle Wörter<br />

eines Wortstamms zusammengefasst (z.B. "cat",<br />

"cats", "catlike" usw.). Auch eine<br />

Rechtschreibkorrektur ist vor allem bei Blogs ein<br />

weiterer Weg den Merkmalsraum zu reduzieren.<br />

Auch das Verwenden <strong>von</strong> Thesaurus<br />

Datenbanken, um gleichbedeutende Wörter auf<br />

ein einzelnes Synonym abzubilden wird<br />

empfohlen. Weiterführend werden auch<br />

Datenbanken mit Abkürzungen und Akronymen<br />

verwendet, wobei dies aufgrund der großen<br />

Überschneidungen in unterschiedlichen<br />

Themengebieten nur mäßig erfolgsversprechend<br />

ist. Es gibt auch regelbasierte, linguistische<br />

Verfahren zur Merkmalsreduktion. Diese sind<br />

allerdings sprachspezifisch und führen zu einem<br />

Informationsverlust, da sie nicht so präzise sind<br />

wie Wörterbuchverfahren.<br />

Wort Phrasen<br />

Das Zusammenfassen <strong>von</strong> mehreren Wörtern zu<br />

einem Merkmal, basierend auf Wörterbüchern, ist<br />

ebenfalls ein vielversprechender Ansatz. Ein<br />

Beispiel ist "user interface", welches nur in seiner<br />

Gesamtheit seinem Sinn entspricht.<br />

n-Gramme<br />

Besonders Rechtschreibfehler oder das mehrfache<br />

Vorkommen <strong>von</strong> Wörtern eines Wortstammes<br />

sind große Probleme. n-Gramme bieten eine<br />

elegante Möglichkeit den genannten<br />

Schwierigkeiten zu begegnen und den<br />

Merkmalsraum zu begrenzen. Ein n-Gramm ist<br />

eine feste Anzahl an Zeichen, die


4<br />

Abbildung2: Es wird aus einem gegebenen Text Trigramme gebildet. Quelle: (Blankenhorn, 2002, S.<br />

43)<br />

zusammengefasst weiterverarbeitet werden. Da<br />

die Anzahl an Möglichkeiten bei n-Grammen<br />

begrenzt ist, wird der Merkmalsraum limitiert.<br />

Abbildung 2 zeigt, wie aus einem Beispieltext ein<br />

Trigramm (3-Gramm) erzeugt wird.<br />

Stopp-Wort-Elimination<br />

Es gibt zahlreiche Wörter in der Sprache, die keine<br />

Informationen in sich tragen (beispielsweise<br />

Artikel oder Bindewörter) und daher eliminiert<br />

werden können. Es gibt hier die Möglichkeit<br />

basierend auf einer Stop-Wort-Liste zu arbeiten,<br />

wodurch eine Sprachabhängigkeit entsteht.<br />

Daneben kann aber auch über die Worthäufigkeit<br />

die Relevanz eines Wortes ermittelt werden.<br />

Kommt ein Wort in allen Dokumenten vor, so hat<br />

es eine geringe Bedeutung für die Unterscheidung<br />

<strong>von</strong> Texten.<br />

Alter eines Worts<br />

Ein weiterer Ansatz ist das Altern <strong>von</strong> Wörtern.<br />

Das in dem <strong>von</strong> (Blankenhorn, 2002, S. 41ff)<br />

vorgestellte Klassifikationssystem iFile eingesetzte<br />

Verfahren, löscht Wörter aus dem Merkmalsraum,<br />

welche ein bestimmtes Alter überschritten haben.<br />

Dabei wird als Schwellwert log alter − 1 gebildet<br />

und falls die Häufigkeit des Wortes kleiner ist als<br />

der Schwellwert, so wird es gelöscht. Dies hat den<br />

Vorteil, dass Wörter, die häufig auftreten und noch<br />

nicht sehr alt sind, beibehalten werden.<br />

Merkmalsauswahl<br />

Fabrizio Sebastiani gibt in seiner Arbeit "Machine<br />

Learning in Automated Text Categorization"<br />

(Sebastiani, 2002) einen Überblick über<br />

verschiedene Verfahren zur Auswahl <strong>von</strong><br />

Merkmalen anhand ihres Informationsgehaltes.<br />

Unbedeutende Merkmale werden so ausgemustert<br />

und gelöscht.<br />

Merkmalsreduktion für rsslounge<br />

Für das vorliegende Problem eignen sich keine<br />

wörterbuchbasierte Verfahren, da der<br />

Benutzerkreis <strong>von</strong> rsslounge mehrsprachig ist. Es<br />

müsste für jede Sprache ein passendes<br />

Wörterbuch mitgeliefert werden, was einen<br />

unverhältnismäßigen Aufwand darstellen würde.<br />

Das Umwandeln aller Wörter in Kleinbuchstaben<br />

und die Verwendung <strong>von</strong> n-Grammen wird für die<br />

vorliegende Lösung in Betracht gezogen. Auch das<br />

Löschen <strong>von</strong> alten Worten wird für eine Lösung<br />

unumgänglich sein, da der Endanwender beliebig<br />

viele Beiträge klassifizieren kann und es<br />

unvermeidlich zu einer Explosion des benötigten<br />

Speicherplatzes kommen würde. Die Stopp-Wort-<br />

Elimination oder Auswahl <strong>von</strong> Merkmalen wird<br />

aufgrund der Gewichtung der Features nicht<br />

verwendet. Wörter, die in nahezu allen<br />

Dokumenten vorkommen, erhalten eine niedrige<br />

Gewichtung und gehen in die Entscheidung nur<br />

sehr schwach ein. Eine Eliminierung <strong>von</strong><br />

Merkmalen <strong>mittels</strong> Auswahl würde zudem<br />

wertvolle Rechenzeit beim Training kosten und<br />

wird deshalb nicht in Betracht gezogen.<br />

2.4 Gewichtung der einzelnen Merkmale<br />

Neben dem Verkleinern des Merkmalsraumes, ist<br />

es üblich die einzelnen Wörter zu gewichten.<br />

Dieses Gewicht legt die Bedeutung dieses<br />

Merkmals in dem vorliegenden Dokument (und<br />

damit auch Merkmalsvektor) fest. Abbildung 1<br />

zeigt, wie die Anzahl des Vorkommens als Gewicht<br />

gewählt wird. Dies ist aber denkbar schlecht,<br />

weshalb andere Verfahren zur Bestimmung der<br />

Relevanz eines Wortes verwendet werden.<br />

Die bekannteste Vorgehensweise um Wörter zu<br />

gewichten, ist das Term Frequency Inverse<br />

Document Frequency (TF-IDF) Verfahren. Diese<br />

Gewichtung geht da<strong>von</strong> aus, dass Wörter, die im<br />

aktuellen Dokument sehr häufig vorkommen, in<br />

allen anderen Dokumenten aber nur sehr selten<br />

auftauchen, das aktuelle Dokument sehr gut<br />

repräsentieren und für eine Klassifikation sehr gut<br />

geeignet sind.<br />

Die Termfrequenz ist dabei wie folgt definiert:<br />

tf w, d = w<br />

d<br />

d ist die Häufigkeit, mit der ein Wort w im<br />

Dokument d vorkommt und d ist die gesamte


5<br />

Anzahl aller Wörter in dem aktuellen Dokument d.<br />

Wörter, die also sehr oft im aktuellen Dokument<br />

vorkommen, haben also eine hohe Termfrequenz.<br />

Die inversen Dokumentfrequenz hat einen hohen<br />

Wert, wenn das Wort in möglichst wenigen<br />

anderen Dokumenten auftaucht und ist wie folgt<br />

definiert:<br />

d<br />

idf w = log<br />

df(w)<br />

Wobei d die Gesamtzahl an Dokumenten ist und<br />

df(w) die Anzahl an Dokumenten ist, welche das<br />

Wort w enthalten.<br />

Das resultierende Gesamtgewicht TF-IDF ergibt<br />

sich aus der Kombination <strong>von</strong> beiden Werten:<br />

d<br />

tfidf = tf w, d ∗ log<br />

df w<br />

Neben der TF-IDF Gewichtung gibt es noch<br />

zahlreiche andere Verfahren (siehe Abbildung 3),<br />

um die Bedeutung eines Terms zu bestimmen.<br />

Eine gängige Vorgehensweise ist die Verwendung<br />

<strong>von</strong> informationstheoretischen und statistischen<br />

Kennzahlen. So ist der Wert Information gain<br />

(Informationsgewinn) ein weit verbreitetes Maß,<br />

um die Bedeutung eines Terms zu bestimmen. Sie<br />

basiert auf der Entropie und misst, wie hoch der<br />

Informationsgehalt des jeweiligen Terms für eine<br />

Trennung ist.<br />

Die Mutual Information ist ein weiteres Gewicht,<br />

welches häufig verwendet wird. Dabei gilt "Eine<br />

größere Mutual Information steht für eine hohe<br />

statistische Abhängigkeit und damit Aussagekraft<br />

eines Merkmals" (Blankenhorn, 2002, S. 40).<br />

Soucy und Mineau (2005) führen das Maß<br />

ConfWeight ein, welches auf Konfidenz-Intervallen<br />

beruht. Es werden Intervalle für das Auftreten<br />

eines Wortes innerhalb der einzelnen Klassen<br />

festgelegt. Es wird ein Stärkemaß definiert, das<br />

angibt, wie gut dieser Term die einzelnen Klassen<br />

<strong>von</strong>einander unterscheidet und daraus ein<br />

ConfWeight gebildet. Ziel dieses Verfahrens ist es,<br />

auch die Zugehörigkeit eines Terms zu einer<br />

Kategorie in die Gewichtung mit einfließen zu<br />

lassen. Diese Gewichtung wird also für den<br />

vorliegenden Fall, der lediglich zwei Klassen kennt<br />

(interessante und langweilige Beiträge), keine<br />

Verbesserung erbringen. Eine Übersicht über<br />

gängige Gewichtungen, basierend auf statistischen<br />

Metriken gibt die Tabelle in Abbildung 3.<br />

Auch lernende Verfahren werden häufig<br />

eingesetzt um passende Gewichte zu wählen.<br />

Dabei wird mit einem linearen Klassifizierer das<br />

passende Maß für die aktuelle Datenbasis gewählt<br />

(Lan, Tan, & Low, 2006, S. 2).<br />

Für die Wahl eines passenden Gewichtes für diese<br />

Arbeit, wurde die Studie <strong>von</strong> (Lan, Tan, & Low,<br />

2006) herangezogen. Dort werden verschiedene<br />

Gewichte kombiniert (beispielsweise die Term<br />

Frequenz mit dem χ²-Maß. Es wird die Effektivität<br />

für die Verwendung bei Support Vektor<br />

Maschinen und dem k-nächste-Nachbarn Ansatz<br />

gemessen und ausgewertet.<br />

Dabei führen sie ein neues Maß, die relevance<br />

frequency ein, welche die inverse<br />

Abbildung 3: Folgende Tabelle Zeigt Funktionen, mit dessen Hilfe der Merkmalsraum reduziert wird.<br />

Quelle: (Sebastiani, 2002, S. 16)


6<br />

Dokumentfrequenz ersetzen soll. Abbildung 4<br />

zeigt beispielhaft einen gravierenden Nachteil bei<br />

der Verwendung der inversen Dokumentfrequenz.<br />

Der Term t1 und t3 separieren die beiden Klassen<br />

"interessant" und "langweilig" sehr gut,<br />

wohingegen der Term t2 nur sehr schlecht für<br />

eine Klassifizierung geeignet ist (siehe Ratio Wert,<br />

welcher anzeigt, wie ungleich/gleich die Terme in<br />

den beiden Klassen verteilt sind). Trotzdem haben<br />

alle drei Terme das gleiche Gewicht (IDF).<br />

Term<br />

Summe(int<br />

eressant,<br />

langweilig)<br />

interessant :<br />

langweilig<br />

Ratio<br />

inverse Dokumentfreq.<br />

t1 100 10 : 1 log(N/100) = 3.322<br />

t2 100 1 : 1 log(N/100) = 3.322<br />

t3 100 1 : 10 log(N/100) = 3.322<br />

Abbildung 4: Die Tabelle zeigt, dass die inverse<br />

Termfrequenz nicht geeignet ist, um die<br />

Bedeutung <strong>von</strong> Termen für eine Klassifizierung zu<br />

kennzeichnen. Quelle (frei nach): (Lan, Tan, &<br />

Low, 2006, S. 2)<br />

Die Idee <strong>von</strong> (Lan, Tan, & Low, 2006) besteht<br />

darin, gut separierende Terme mit der relevance<br />

frequency höher zu bewerten:<br />

rf = log⁡(2 + interessant<br />

langweilig )<br />

Die 2 wurde als Wert gewählt, da es sich um den<br />

Logarithmus zur Basis 2 handelt. In Kombination<br />

mit der Term Frequenz ergibt sich das neue<br />

Gewicht TF-RF. Die Abbildung 5 zeigt deutlich die<br />

Überlegenheit des TF-RF Maßes gegenüber den<br />

gängigen Gewichten. Im selektierten Verfahren<br />

wird deshalb eine Gewichtung der Terme <strong>mittels</strong><br />

dem TF-RF-Maß in Betracht gezogen und neben<br />

dem TF-IDF-Gewicht bewertet.<br />

2.5 Abstandsmaße zur<br />

Ähnlichkeitsbestimmung<br />

Die meisten Verfahren basieren auf dem<br />

Vektorraummodell. Das bedeutet, dass die<br />

Merkmale als Vektor im mehrdimensionalen<br />

Raum dargestellt werden können. Abbildung 6<br />

visualisiert dies für den 3 dimensionalen Raum.<br />

Um nun die die Ähnlichkeit der extrahierten<br />

Vektoren miteinander zu vergleichen, stehen<br />

verschiedene Abstandsmaße zur Verfügung. Ein<br />

einfaches Maß ist das Skalarprodukt:<br />

scalar x, y =<br />

n<br />

i=1<br />

x i y i<br />

Dabei besteht allerdings das Problem, dass die<br />

Merkmalsvektoren zuvor normalisiert werden<br />

müssen, da sonst durch die Linearität, die Länge<br />

des Vektors ausschlaggebend ist. Auch der<br />

euklidische Abstand kann als Abstandsmaß<br />

verwendet werden, ist aber ebenso wie das<br />

Skalarprodukt <strong>von</strong> der Länge der Vektoren<br />

abhängig.<br />

Ein gut geeignetes Maß, welches auch in der<br />

Literatur (Hoffmann, 2002) häufig angeführt wird,<br />

ist der Kosinusabstand:<br />

cos x, y =<br />

n<br />

i=1<br />

x i y i<br />

n<br />

x<br />

2 n<br />

i=1 i y<br />

2<br />

i=1 i<br />

Dieser misst den Winkel zwischen zwei Vektoren<br />

und ist unabhängig <strong>von</strong> der Länge der Vektoren.<br />

Umso näher die Richtungen der<br />

Merkmalsvektoren beieinander liegen, umso<br />

ähnlicher sind sie. Das Pseudo-Cosinus-Maß<br />

verzichtet auf die Quadrate und die Wurzeln in der<br />

Formel für den Kosinusabstand. Dadurch wird das<br />

Maß weniger stark anfällig für große Werte, wobei<br />

vorausgesetzt wird, dass es nur positive Gewichte<br />

gibt.<br />

Abbildung 5: Vergleich der verschiedenen<br />

Gewichten bei Verwendung des k -nächste-<br />

Nachbarn Verfahrens. Auf der Y -Achse ist das F1<br />

Maß aufgetragen. TF-RF erscheint als eine<br />

interessante Alternative zu dem etablierten TF -<br />

IDF Gewicht.<br />

Abbildung 6: zwei Vektoren im Merkmalsraum.<br />

Quelle: (Hoffmann, 2002)<br />

Weiterführend gibt es das Overlap-Maß, das Dice-<br />

Maß und das Jaccard-Maß. In (Hadi, Thabtah, &<br />

Abdel-jaber, 2007) werden verschiedene


7<br />

Abstandsmaße verglichen und es zeigt sich, dass<br />

das Kosinusmaß dem Dice- und Jaccard-Maß<br />

überlegen ist. Allerdings handelt es sich hier nur<br />

um sehr geringe Differenzen in der<br />

Klassifikationsgenauigkeit, so dass eine weitere<br />

Analyse alternativer Maße an dieser Stelle kaum<br />

Verbesserungsmöglichkeiten aufwerfen wird und<br />

deshalb nicht weiter verfolgt wird.<br />

3. Verfahren und Algorithmen zur<br />

Klassifizierung <strong>von</strong> Texten<br />

3.1 Übersicht Algorithmen<br />

In diesem Kapitel werden alle Algorithmen, die<br />

sich für eine Textklassifikation eignen, vorgestellt.<br />

Dabei werden sie nicht im Detail erläutert,<br />

sondern nur ein kurzer Überblick über die<br />

Funktionsweise gegeben. Ziel ist es, die Verfahren<br />

hinsichtlich ihrer Eignung für die gegebene<br />

Problemstellung zu analysieren und zu bewerten.<br />

Als endgültiges Ergebnis, soll ein Verfahren<br />

gewählt werden, welches für die Lösung dieses<br />

Problems herangezogen werden soll.<br />

Detailliertere Übersichten über die Verfahren sind<br />

in (Hoffmann, 2002), (Sebastiani, 2002) und<br />

(Blankenhorn, 2002) zu finden. Für den<br />

tiefergehenden Einstieg in die einzelnen Verfahren<br />

wird an dieser Stelle auf die zahlreich verfügbare,<br />

weiterführende Literatur verwiesen, in der die<br />

einzelnen Algorithmen ausführlich vorgestellt<br />

werden.<br />

3.2 Naive Bayes-Klassifikation<br />

Der naive Bayes Klassifikator ist der am stärksten<br />

verbreitete Klassifikationsalgorithmus und wird<br />

primär für die Spamerkennung angewendet. Er<br />

basiert auf dem berühmten Bayestheorem, das ein<br />

Umkehren <strong>von</strong> Schlussfolgerungen erlaubt:<br />

P B A ∗ P(A)<br />

P A B =<br />

P(B)<br />

Um den Bayes Klassifikator für die<br />

Textklassifikation einzusetzen, wird das<br />

Dokument in seine Einzelwörter zerlegt. Beim<br />

Lernen wird für jedes Wort ein Zählwert für die<br />

jeweilige Klasse erhöht (bzw. das neue Wort<br />

eingefügt und dem Wert 1 für die jeweilige Klasse<br />

belegt). Mit der Summe aller Lernvorgänge, für die<br />

einzelnen Kategorien, entsteht so eine<br />

Wahrscheinlichkeit für jedes Wort. Diese gibt an,<br />

wie wahrscheinlich es ist, dass das Wort in der<br />

jeweiligen Klasse auftaucht.<br />

Für die Klassifikation wird die<br />

Gesamtwahrscheinlichkeit errechnet. Dazu<br />

werden die Einzelwahrscheinlichkeiten aller<br />

Wörter miteinander multipliziert und so eine a-<br />

Priori Gesamtwahrscheinlichkeit für die einzelnen<br />

Klassen errechnet. Durch das Bayestheorem wird<br />

dann die a-Posteriori Wahrscheinlichkeit, also die<br />

Wahrscheinlichkeiten für die Zugehörigkeit des<br />

Dokumentes zu einzelnen Klassen errechnet. Die<br />

Klasse, für welche die Wahrscheinlichkeit am<br />

größten ist, wird als Zielklasse gewählt.<br />

Dieses Verfahren wurde bereits vor dem Beginn<br />

dieser Arbeit implementiert und liefert leider<br />

keine ausreichend hohe Trefferraten. Eine Analyse<br />

hat gezeigt, dass der "naive" Ansatz eine zu starke<br />

Vereinfachung ist. Beim Bilden der<br />

Gesamtwahrscheinlichkeit einer Klasse, werden<br />

einfach die Einzelwahrscheinlichkeiten der<br />

einzelnen Wörter miteinander multipliziert. Dies<br />

basiert auf der Annahme, dass die<br />

Einzelwahrscheinlichkeiten<br />

unabhängig<br />

<strong>von</strong>einander sind. Das ist aber nicht der Fall und<br />

macht sich besonders dann bemerkbar, wenn<br />

Dokumente sehr gegensätzliche Begriffe<br />

enthalten. Im Rahmen dieser Arbeit wird der<br />

naive Bayes Klassifikator zum Vergleich für das<br />

neue Verfahren herangezogen.<br />

3.3 Fisher-Methode<br />

Die Fisher-Methode (Segaran, 2008, S. 144) ist wie<br />

der Bayes Klassifikator ein probabilistisches<br />

Verfahren. Der Lernvorgang ist identisch mit dem<br />

des Bayes Klassifikators. Beim Klassifizieren<br />

werden allerdings in einem ersten Schritt die<br />

Wahrscheinlichkeiten für alle einzelnen Wörter<br />

ermittelt und normalisiert (je Klasse). Dann<br />

werden die so normalisierten<br />

Einzelwahrscheinlichkeiten multipliziert und<br />

logarithmiert. Eine Menge <strong>von</strong><br />

Einzelwahrscheinlichkeiten wird auf diese Weise<br />

zusammengesetzt.<br />

"Fisher hat gezeigt, dass das Ergebnis dieser<br />

Berechnung bei unabhängigen und zufälligen<br />

Wahrscheinlichkeiten zu einer Chi-Quadrat-<br />

Verteilung passt." (Segaran, 2008, S. 144). Daher<br />

liefert dieser Wert, eingesetzt in die inverse Chi-<br />

Quadrat-Funktion, eine Wahrscheinlichkeit dafür,<br />

dass diese zufällig zusammengesetzte Menge eine<br />

hohe Wahrscheinlichkeit hat.<br />

Trotz der Normalisierung und dem Ansatz über<br />

die Chi-Quadrat-Verteilung, welche versucht zu<br />

ermitteln, ob es reiner Zufall ist, dass diese<br />

Sammlung an Wörter eine hohe<br />

Wahrscheinlichkeit für eine Klasse hat, ist dieser<br />

Ansatz nicht vielversprechend. Die Verwendung<br />

der Chi-Quadrat-Verteilung ist ein Versuch die<br />

"Naivität" des Bayesklassifikators auszugleichen.<br />

Laut (Segaran, 2008, S. 146) ist die Qualität der<br />

Fisher-Methode mit denen des Bayesklassifikators


8<br />

vergleichbar. Ein Einsatz für die Lösung des hier<br />

vorliegenden Problems ist daher ausgeschlossen.<br />

3.4 Entscheidungsbäume<br />

Eine einfache Form <strong>von</strong> Klassifikatoren stellen die<br />

Entscheidungsbäume (siehe Abbildung 7) dar. Sie<br />

stellen in einer Baumstruktur Regeln auf, um<br />

Vektoren zu klassifizieren. Der Baum wird <strong>von</strong><br />

oben nach unten durchlaufen und es wird,<br />

basierend auf den Merkmalen, eine Serie <strong>von</strong> ifthen-else<br />

Bedingungen geprüft.<br />

Ein Entscheidungsbaum kann automatisch erstellt<br />

werden. Dazu werden die Trainingsvektoren der<br />

einzelnen Klassen gegenüber gestellt und es wird<br />

als Merkmal, nach dem als erstes getrennt wird<br />

gesucht. Dabei wird ein Merkmal gewählt, das eine<br />

besonders gute Trennschärfe liefert. So kann über<br />

die Entropie festgestellt werden, welches Merkmal<br />

sich am besten eignet um eine Datenmenge in<br />

zwei Teile aufzuteilen (vgl. Information Gain).<br />

Eine sehr ausführliche Anleitung, wie man<br />

Entscheidungsbäume erzeugen kann, ist in dem<br />

Buch "Kollektive Intelligenz" (Segaran, 2008) zu<br />

finden.<br />

Das zentrale Problem <strong>von</strong> Entscheidungsbäumen<br />

ist die Menge an Bedingungen und die Größe des<br />

Baumes. Da der Merkmalsraum sehr groß ist, sind<br />

entsprechend viele Stufen notwendig, die für eine<br />

Klassifikation dann auch durchlaufen werden<br />

müssen. Ein weiteres Problem ist das<br />

inkrementelle Lernen, denn der Baum muss nach<br />

jedem Training neu erstellt werden. Zudem<br />

werden Entscheidungsbäume als anfällig für<br />

Overfitting beschrieben, was ein zusätzliches<br />

"Pruning" notwendig macht (Wikipedia, 2010).<br />

3.5 Regelbasierter Klassifikator<br />

Beim regelbasierten Verfahren werden, mit Hilfe<br />

eines Regel-Lerners, Regeln aufgestellt, die genau<br />

festlegen wann ein Dokument zu einer Klasse<br />

gehört. Die Regeln werden in disjunktiver<br />

Normalform erstellt und sind leicht lesbar und<br />

verständlich (Blankenhorn, 2002, S. 25).<br />

Gegenüber Entscheidungsbäumen sind die<br />

Klassifikatoren kompakter und werden meist <strong>von</strong><br />

unten nach oben generiert (im Gegensatz zu<br />

Entscheidungsbäumen). Dabei wird immer nur<br />

eine einzelne Klasse betrachtet. Eine leere Regel<br />

wird so lange um neue Bedingungen ergänzt, bis<br />

sie auf möglichst viele Elemente der jeweiligen<br />

Klasse passt.<br />

Bei diesem Verfahren ist das inkrementelle Lernen<br />

ein Problem. Nach jeder Änderung müssten alle<br />

Regeln für die jeweilige Klasse neu generiert<br />

werden. Ähnlich wie beim Entscheidungsbaum<br />

wird auch die große Menge an Regeln ein Problem<br />

darstellen. Benutzer können zahlreiche<br />

Themengebiete in ihrem <strong>RSS</strong> Reader abonnieren.<br />

Regeln können dadurch sehr komplex und<br />

umfangreich werden, so dass ein Erzeugen der<br />

Regeln, wie auch ein Auswerten sehr<br />

rechenintensiv werden kann.<br />

Leider gibt es kaum Studien zur Praxistauglichkeit<br />

<strong>von</strong> regelbasierten Verfahren.<br />

3.6 Rocchio Verfahren<br />

Der Rocchio Algorithmus ist ein sehr verbreitetes<br />

Verfahren, das dafür ausgelegt ist, in Kombination<br />

mit Relevance-<strong>Feed</strong>back verwendet zu werden.<br />

Die Vorgaben des Benutzers können direkt für<br />

eine neue Anfrage weiterverarbeitet werden.<br />

Die Grundidee des Rocchio Verfahrens ist einfach:<br />

Abbildung 7 : Ein Entscheidungsbaum. Für die einzelnen Merkmale werden <strong>von</strong> oben nach<br />

unten die einzelnen Bedingungen geprüft.Quelle: (Segaran, 2008, S. 161)


9<br />

in einer Trainingsphase werden<br />

Merkmalsvektoren den jeweiligen Klassen<br />

zugeteilt. Anschließend werden die Vektoren der<br />

einzelnen Klassen gemittelt. Es entsteht ein<br />

Zentroid-Vektor für jede Klasse i:<br />

c i = {w 1i , w 2i , w 3i , … . , w ki }<br />

Wobei die einzelnen Gewichte des Zentroid-<br />

Vektors mit folgender Formel (Sebastiani, 2002, S.<br />

26) bestimmt werden können:<br />

w ki = α ∗<br />

d ∈D interessant<br />

∗<br />

w ki<br />

D interessant<br />

d ∈D langweilig<br />

− β<br />

w ki<br />

D langweilig<br />

Der Zentroid-Vektor besteht also aus den<br />

gemittelten Gewichten der Einzelvektoren der<br />

Klasse. Mit den Parameter α und β kann festgelegt<br />

werden, wie stark die einzelnen Klassen in das<br />

Ergebnis einbezogen werden.<br />

Zum Klassifizieren wird nun das Kosinusmaß<br />

zwischen den gemittelten Vektoren der jeweiligen<br />

Klassen und dem unbekannten Merkmalsvektor<br />

ermittelt. Der Vektor wird der Klasse zugeordnet<br />

zu deren Mittelwertvektor der Abstand am<br />

kleinsten ist.<br />

Dem Bayes Klassifikator und der Fisher-Methode<br />

ist das Rocchio Verfahren eindeutig vorzuziehen.<br />

Die Vektoren mit den jeweiligen Worten bleiben<br />

erhalten und besonders die zusammenhängenden<br />

Worte bleiben im Kontext erhalten. Durch die<br />

Mittelung findet aber eine Vereinfachung statt, die<br />

sich zwar positiv auf die<br />

Klassifikationsgeschwindigkeit auswirkt, aber<br />

auch eine starke Unschärfe einführt, welche das k-<br />

nächste-Nachbar Verfahren oder Support-Vektor-<br />

Maschinen nicht aufweisen. Zu diesem Ergebnis<br />

kommt auch (Sebastiani, 2002, S. 40) und<br />

beschreibt das Rocchio Verfahren gegenüber dem<br />

k-nächste Nachbar Verfahren, Support-Vektor-<br />

Maschinen und neuronalen Netzen als eindeutig<br />

unterlegen.<br />

3.7 k-nächste Nachbarn<br />

Das k-nächste Nachbarn Verfahren ist eine leicht<br />

zu verstehende und sehr verbreitete Methode der<br />

Textklassifikation. Auch dieser Klassifikator geht<br />

<strong>von</strong> Merkmalsvektoren im n-dimensionalen Raum<br />

aus. Es werden die Abstände zu allen<br />

vorklassifizierten Trainingsvektoren berechnet.<br />

Die k nächstliegenden Vektoren werden ermittelt<br />

und als Zielklasse für den unbekannten Vektor,<br />

wird die Klasse gewählt, welche die Mehrzahl der<br />

k Nachbarn angehört:<br />

y(d i ) = arg max k Sim d i , x j y(x j , c k )<br />

x j ∈kNN<br />

y(d) gibt hierbei an, zu welcher Klasse der<br />

unbekannte Vektor d gehört. x sind die k nächsten<br />

Trainingsvektoren. Sim ist eine<br />

Ähnlichkeitsfunktion (z. B. Kosinusabstand) und<br />

y(x,c) ist 1 oder 0, je nachdem ob x zu c gehört<br />

oder nicht.<br />

Dieser Algorithmus ist sehr rechenintensiv, da der<br />

Abstand zwischen dem vorliegenden Vektor und<br />

allen Vektoren der Trainingsmenge notwendig ist.<br />

Hier gibt es mehrere Methoden um die Laufzeit zu<br />

optimieren. So werden beispielsweise Bäume oder<br />

heuristische Verfahren eingesetzt.<br />

Zur Lösung des vorliegenden Problems wurde der<br />

k-nächste Nachbarn Klassifikator gewählt. Um die<br />

Laufzeit zu begrenzen, wurde ein heuristisches<br />

Verfahren mit Hilfe <strong>von</strong> Simulated Annealing<br />

realisiert (siehe 4. Kapitel).<br />

3.8 Neuronale Netze<br />

Bei der Klassifizierung <strong>mittels</strong> Neuronalen Netzen,<br />

werden menschliche Nervenzellen im Gehirn<br />

nachgebildet. Mehrere Neuronen werden<br />

hintereinander geschalten und miteinander<br />

verknüpft. Diese Neuronen haben Eingangswerte,<br />

welche im Falle der Text Klassifikation, die<br />

Gewichte der Merkmalsvektoren sind. Diese<br />

werden mit Gewichten multipliziert, miteinander<br />

verknüpft und bilden wiederum den Eingangswert<br />

für das nächste Neuron bzw. des abschließenden<br />

Ausgangs. Freiheiten bestehen bei der Wahl der<br />

Schichten und der Anzahl der Neuronen pro<br />

Schicht. Zudem wird eine nichtlineare<br />

Aktivierungsfunktion<br />

(Sigmoidfunktion)<br />

nachgeschalten.<br />

Abbildung 8: Skizze eines dreischichtigen<br />

Neuronalen Netzes (Quelle:<br />

http://www.neuronalesnetz.de )<br />

Ein Neuronales Netz wird dadurch trainiert, dass<br />

die Trainingsvektoren am Eingang angelegt<br />

werden und das Netz (die Multiplikatoren am<br />

Eingang der Neuronen) so verändert werden, dass<br />

ein gewünschter Ausgangswert angenommen<br />

wird. Ausgehend <strong>von</strong> einem Funktional als<br />

Gütekriterium kann dies beispielsweise mit dem<br />

Gradientenabstiegsverfahren erreicht werden.


10<br />

Neuronale Netze haben den gravierenden<br />

Nachteil, dass deren Lerndauer und Konvergenz<br />

nicht optimal festgelegt werden können. Das<br />

Verfahren ist nicht transparent: auch wenn ein<br />

Neuronales Netzwerk zufriedenstellende<br />

Ergebnisse liefert, ist nicht nachvollziehbar<br />

warum das so ist. Zudem ist das Training ein<br />

nicht-konvexes Problem, es ist also nicht<br />

sichergestellt, dass die optimale Konfiguration<br />

gefunden wird.<br />

Primärer Nachteil, wieso Neuronale Netze für die<br />

Lösung dieses Problems nicht weiter verfolgt<br />

werden, ist der hohe Trainingsaufwand. Der <strong>RSS</strong><br />

Reader benötigt ein Verfahren, das inkrementell<br />

lernen kann. Bei Neuronalen Netzen ist dies nur<br />

schwer möglich. Zudem ist das Training sehr<br />

aufwendig: ein nicht-konvexes<br />

Minimierungsproblem muss gelöst werden.<br />

3.9 Support Vektor Maschinen<br />

Support Vektor Maschinen sind das neueste und<br />

derzeit beliebteste Klassifikationsverfahren.<br />

Besonders bei komplexen Problemen stellen<br />

Support Vektor Maschinen einen Klassifikator dar,<br />

der eine gute Generalisierbarkeit aufweist und<br />

eine eingebaute Komplexitätsbremse besitzt.<br />

Primär wird dabei dem Problem des Overfittings<br />

begegnet. Overfitting bedeutet, dass der<br />

Klassifizierer zu genau auf die Trainingsmenge<br />

abgestimmt wird und für diese extrem hohe<br />

Trefferraten aufweist, bei neuen Werten aber<br />

nicht allgemein genug ist und versagt.<br />

Um einen Support Vektor Maschinen Klassifikator<br />

zu trainieren, wird eine Hyperebene im<br />

mehrdimensionalen Merkmalsraum berechnet,<br />

die einen maximalen Abstand zu den<br />

Trainingsvektoren aufweist. Ein Vorteil des<br />

Verfahrens ist die Tatsache, dass lediglich die<br />

Vektoren, welche der Hyperebene am nächsten<br />

liegen gespeichert werden müssen (die<br />

Supportvektoren). Für einen unbekannten Vektor<br />

wird geprüft, auf welcher Seite der Hyperebene er<br />

liegt und daraus die Klassenzugehörigkeit<br />

abgeleitet.<br />

Für nicht linear separable Klassen, bietet das<br />

Verfahren eine sogenannte Kernelfunktion an.<br />

Damit wird der Merkmalsvektor, sowie der<br />

Supportvektor in einen hochdimensionalen Raum<br />

transferiert und dort wird schließlich der Abstand<br />

(das Innenprodukt) berechnet. So lassen sich mit<br />

einem linearen Klassifikator auch nicht-lineare<br />

Klassifikationsprobleme lösen.<br />

Support Vektor Maschinen gelten in der Fachwelt<br />

als derzeit bestes Verfahren. Während nur ein<br />

Bruchteil der Trainingsdaten gespeichert werden<br />

müssen, kann der Klassifikator auch mit<br />

nichtlinearen Problemen umgehen und ist in<br />

seiner Komplexität steuerbar.<br />

Abbildung 9: Beispielhafte Darstellung einer<br />

Trennhyperebene im zweidimensionalen Raum. Die<br />

grünen Punkte sind die Supportvektoren, die<br />

gespeichert werden müssen.<br />

Für das vorliegende Problem kommt das<br />

Verfahren dennoch nicht in Betracht, da es für<br />

inkrementelles Lernen völlig ungeeignet ist. Das<br />

Trainieren ist nichts anderes als das Lösen eines<br />

quadratischen Optimierungsproblems mit<br />

linearen Nebenbedingungen. Dazu muss auf<br />

Lagrange Multiplikatoren zurückgegriffen werden.<br />

Besonders bei großen Merkmalsvektoren ist dies<br />

in der Rechenzeit sehr teuer. Das bedeutet, dass<br />

nach jedem Trainieren durch den Benutzer die<br />

Klassifikatorfunktion (also die Hyberebenen)<br />

komplett neu erstellt werden müsste.<br />

3.11 Bewertung der Algorithmen<br />

Für eine Textklassifikation gibt es eine Vielzahl an<br />

Algorithmen, die in ihren verschiedensten Formen<br />

bereits Verwendung finden und auch in der<br />

Literatur ausführlich beschrieben werden. Neben<br />

den oben genannten Verfahren gibt es auch<br />

weiterführende Techniken, die auf heuristische<br />

Algorithmen basieren (ein Beispiel sind<br />

genetische Algorithmen). Betrachtet man aber die<br />

gegebene Problemstellung mit ihren<br />

Einschränkungen, wie dem inkrementellen<br />

Lernen, oder der begrenzten Ressourcen, so ist<br />

der Einsatz vieler Methoden nicht mehr möglich.<br />

Probabilistische Algorithmen, wie der naive Bayes<br />

Klassifikator oder die Fisher Methode sind nicht<br />

geeignet, da der Ansatz, die einzelnen Wörter als<br />

unabhängig zu betrachten eine zu starke<br />

Vereinfachung ist. Selbst mit der Verbesserung<br />

durch die inverse Chi-Quadrat-Verteilung sind<br />

diese Methoden wenig aussichtsreich.<br />

Auch regelbasierte Algorithmen erscheinen<br />

ungeeignet, da die Menge an Bedingungen mit<br />

steigender Anzahl an Trainingsdaten explodieren<br />

wird. Zudem ist der Lernvorgang zu aufwendig:<br />

der Baum bzw. die Regeln müssen nach jedem<br />

Trainingsschritt neu generiert werden. Sie werden


11<br />

auch Verfahren wie dem k-nächste Nachbarn oder<br />

Support Vektor Maschinen als unterlegen<br />

beschrieben (Wikipedia, 2010). In einem<br />

Vergleich aller Algorithmen <strong>von</strong> (Sebastiani, 2002,<br />

S. 38f) schneiden diese ebenfalls sehr schlecht ab.<br />

Neuronale Netze stellen genauso wie Support<br />

Vektor Maschinen einen interessanten Ansatz dar,<br />

sind aber speziell in der Trainingsphase sehr<br />

aufwendig. Bei beiden muss ein nicht-lineares<br />

Optimierungsproblem gelöst werden. Insgesamt<br />

sind diese beiden Verfahren zu rechenintensiv im<br />

Training, da hier der Klassifikator komplett neu<br />

berechnet werden muss. Da die Lösung effizientes,<br />

inkrementelles Lernen unterstützen muss, geht<br />

auch der Vorteil der Support Vektor Maschinen,<br />

dass lediglich eine Teilmenge der<br />

Trainingsvektoren gespeichert werden muss,<br />

verloren.<br />

Für das vorliegende Problem wurde deshalb, im<br />

Rahmen dieser Arbeit, der k-nächste Nachbarn<br />

Klassifikator ausgewählt. Dieser ist exakter als der<br />

Rocchio Algorithmus, liefert gemäß der Literatur<br />

gute Ergebnisse (Baoli, Shiwen, & Quin, 2003, S. 1)<br />

und ist leicht verständlich und nachvollziehbar.<br />

Eine Studie, welche Support Vektor Maschinen mit<br />

dem k-nächste Nachbarn und Bayes Klassifikator<br />

vergleicht (Colas & Brazdil, 2006), zeigt, dass das<br />

k-nächste Nachbarn Verfahren den Support<br />

Vektor Maschinen nicht unterlegen ist. Auch<br />

(Sebastiani, 2002, S. 38f) kommt zu diesem<br />

Ergebnis und beschreibt Support Vektor<br />

Maschinen, regressionsbasierte Ansätze und k-<br />

nächste Nachbarn hinsichtlich ihrer<br />

Treffergenauigkeit als sehr ähnlich leistungsstark.<br />

Besonders bezüglich der<br />

Trainingsgeschwindigkeit liegt hier das k-nächste<br />

Nachbarn Verfahren vorne, da nicht der gesamte<br />

Klassifikator neu berechnet werden muss.<br />

Bei der Analyse des Verfahrens wird aber auch<br />

schnell klar, dass unbedingt die Klassifikation, die<br />

eine Abstandsberechnung mit allen anderen<br />

Vektoren vorsieht, beschleunigt werden muss. Da<br />

das k-nächste Nachbarn Verfahren sehr verbreitet<br />

ist, gibt es hier einige praxistaugliche Ansätze. Für<br />

diese Arbeit wurde ein heuristisches Verfahren<br />

gewählt, das auf dem simulierten Abkühlen, einer<br />

Methode aus der Optimierung basiert und etwa 10<br />

Mal schneller ist, als der gewöhnliche k-nächste<br />

Nachbarn Algorithmus (Yang, Li, Zhang, & Hu,<br />

2007). Es wurde ebenfalls der Einsatz einer<br />

Beschleunigungsmethode, basierend auf P-Trees<br />

(Rahal & Perrizo, 2004) erwogen, dieses hat sich<br />

allerdings als zu unflexibel und speicherintensiv<br />

erwiesen. Zudem besteht auf die P-Tree<br />

Technologie ein Patentanspruch.<br />

4. Realisierte Methode<br />

4.1 Vorgehensweise<br />

Wie im vorhergehenden Teilkapitel erläutert, wird<br />

das k-nächste Nachbarn Verfahren für diese Arbeit<br />

verwendet. Dabei wird für ein gegebenes<br />

Dokument ein Merkmalsvektor erzeugt und die<br />

Distanz zu allen Trainingsvektoren berechnet. Die<br />

vorgegebene Kategorie der k nächsten<br />

Trainingsvektoren, wird schließlich für die<br />

Klassifikation herangezogen. Bei der klassischen<br />

Klassifikation wird die Kategorie gewählt, zu der<br />

die meisten k nächsten Nachbarn zugehörig sind.<br />

Da dieses Vorgehen sehr rechenintensiv ist, wurde<br />

in dieser Arbeit ein optimiertes, heuristisches<br />

Verfahren, basierend auf das simulierte Abkühlen<br />

gewählt (Yang, Li, Zhang, & Hu, 2007).<br />

4.2 Merkmalsextraktion und<br />

Vorverarbeitung<br />

Bevor der Klassifikator angewendet werden kann,<br />

muss, wie im zweiten Kapitel genauer erläutert,<br />

der Merkmalsvektor gebildet werden. Dazu<br />

werden folgende Schritte durchlaufen:<br />

1. sämtliche HTML Tags werden entfernt<br />

2. alle Buchstaben werden in<br />

Kleinbuchstaben umgewandelt<br />

3. alle Sonderzeichen, mit Ausnahme des<br />

Bindestrichs '-' und des Leerzeichens,<br />

werden entfernt<br />

4. der Text wird in seine Einzelwörter<br />

zerlegt (Trennzeichen ist das<br />

Leerzeichen)<br />

5. die Häufigkeit jedes Wortes wird gezählt<br />

6. ein Gewicht wird ermittelt (z.B. TF IDF)<br />

Eine Stopp-Wort-Liste wurde nicht angelegt, da<br />

bedeutungslose Worte, wie beispielsweise Artikel,<br />

zuverlässig durch eine geringere Gewichtung<br />

erkannt werden können.<br />

Auch eine weitere Verarbeitung, z.B. die<br />

Rückbildung der einzelnen Worte auf den<br />

Wortstamm, wurde nicht realisiert, da hierfür<br />

Wörterbücher oder sprachenspezifische Regeln<br />

aufgestellt werden müssen.<br />

Um nun effizient auf die Merkmalsvektoren<br />

zugreifen zu können, führt (Yang, Li, Zhang, & Hu,<br />

2007, S. 2f) eine neue Speicherstruktur ein. So gibt<br />

es eine Liste die alle Dokumente enthält. Jedes<br />

Dokument in dieser Liste besitzt einen Zeiger auf<br />

eine verkettete Liste, die sämtliche Wörter des<br />

Dokumentes enthält, wobei diese absteigend nach<br />

Gewicht sortiert sind (vgl. Abbildung 10).


12<br />

Abbildung 10: Die Speicherstruktur für die Dokumente und die jeweiligen Worte,<br />

absteigend sortiert nach deren Gewicht.<br />

Abbildung 11: Das inverse Array enthält für jedes Wort sämtliche Dokumente, in denen<br />

dieses enthalten ist, sowie das Gewicht in dem jeweiligen Dokument.<br />

Eine zweite Liste enthält sämtliche Wörter, die<br />

jeweils einen Zeiger auf eine weitere verkettete<br />

Liste besitzen. Diese enthält alle Dokumente, die<br />

dieses Wort enthalten, sowie das Gewicht, das<br />

dieses Wort in dem jeweiligen Dokument besitzt.<br />

Auch diese Liste ist absteigend nach Gewicht<br />

sortiert (vgl. Abbildung 11). Auf diese Weise kann<br />

schnell auf die Dokumente, die ein Wort enthalten,<br />

zugegriffen werden.<br />

4.3 Einführung Simulated Annealing<br />

Simulated Annealing (deutsch "simuliertes<br />

Abkühlen") ist ein heuristisches Verfahren der<br />

Optimierung, das versucht approximativ ein<br />

globales Minimum zu finden. Hier wird das<br />

Problem mit dem physikalischen Vorgang des<br />

Abkühlens gleichgesetzt. Die Systemkonfiguration<br />

wird <strong>mittels</strong> verschiedener Parameter<br />

beschrieben. Ein Generator erzeugt einen<br />

zufälligen Wechsel der Konfigurationsparameter.<br />

Eine Zielfunktion misst die Energie und soll<br />

minimiert werden.<br />

Ausgehend <strong>von</strong> einer initialen Konfiguration<br />

(initiale Temperatur) wird eine neue<br />

Konfiguration gewählt. führt diese zu einer<br />

Verbesserung (Abkühlung), so wird diese<br />

Konfiguration gespeichert. Ist die neue<br />

Konfiguration schlechter, so wird diese trotzdem<br />

akzeptiert, mit der Suche fortgefahren und eine<br />

neue Konfiguration gewählt, auch wenn dadurch<br />

die Zielfunktion verschlechtert wird (d.h. einen<br />

höheren Wert annimmt, als das zuvor ermittelte<br />

Minimum). Auf diese Weise soll dafür gesorgt<br />

werden, dass bei der Suche nach der optimalen<br />

Konfiguration nicht bereits bei lokalen Minimas<br />

abgebrochen wird. So wird, um das globale<br />

Minimum zu finden, auch kurzzeitig eine<br />

Verschlechterung in Kauf genommen.<br />

Ein Abbruchkriterium legt fest, wann abgebrochen<br />

und die aktuelle Lösung als die optimale<br />

angesehen wird. Meist ist der Generator so<br />

gestaltet, das je länger der Prozess läuft, die<br />

Wahrscheinlichkeit für eine große Veränderung<br />

der Parameter sinkt und gleichzeitig die<br />

Wahrscheinlichkeit für einen Abbruch steigt.<br />

4.4 Training des Klassifikators<br />

Das Training gestaltet sich als sehr einfach und<br />

schnell: die Merkmale des vorgegebenen<br />

Dokuments werden extrahiert (siehe Kapitel 4.2),<br />

gewichtet und in die Speicherstrukturen abgelegt.<br />

So wird das neue Dokument in die Liste eingefügt,<br />

die Wörter absteigend sortiert in die verkettete<br />

Liste des neuen Dokumentes eingehängt<br />

(absteigend sortiert nach Gewicht) und für jedes<br />

Wort in die inverse Liste das Dokument, mit dem<br />

jeweiligen Gewicht einsortiert.<br />

Innerhalb dieser Arbeit wird hierfür eine<br />

relationale Datenbank verwendet. Abbildung 12<br />

Abbildung 12: Das UML Diagramm der Datenbankstruktur für e in relationales<br />

Datenbanksystem.


13<br />

zeigt ein UML Diagramm und verdeutlich die<br />

Struktur.<br />

4.5 Klassifikation<br />

Der Prozess der Klassifikation ist nun nach dem<br />

simulated Annealing Ansatz aufgebaut und<br />

besteht aus den folgenden Schritten:<br />

1. die Merkmale des unbekannten, zu<br />

klassifizierenden Dokuments, werden<br />

extrahiert (Ergebnis: Liste mit allen<br />

Wörtern und den jeweiligen Gewicht)<br />

2. eine Ergebnis-Kandidatenmenge mit k<br />

leeren Plätzen wird initialisiert<br />

3. die Variable markov wird mit k<br />

initialisiert<br />

Nun wird folgender Vorgang so lange wiederholt,<br />

bis das Ergebnisset nicht mehr verändert wird:<br />

1. das am höchsten bewertete Wort des<br />

unbekannten, zu klassifizierenden<br />

Dokuments wird entnommen<br />

2. es werden die markov ersten Dokumente<br />

aus der inversen Wortliste entnommen<br />

und in ein temporäres Ergebnisset<br />

abgelegt<br />

3. die Kosinusdistanz zwischen dem Vektor<br />

des unbekannten Dokuments und jedem<br />

Dokument im temporären Ergebnisset<br />

wird berechnet.<br />

4. Alle Dokumente in der Ergebnis-<br />

Kandidatenmenge, die weiter entfernt<br />

sind, als Dokumente im temporären<br />

Ergebnissets, werden durch diese ersetzt.<br />

5. Die Variable markov wird mit folgendem<br />

Wert neu gesetzt, wobei n die Anzahl an<br />

Dokumente ist, die vom temporären<br />

Ergebnisset in den aktuellen Ergebnisset<br />

verschoben wurde:<br />

markov = lg n ∗ 10 + 0.1 ∗ k<br />

k<br />

6. Fand keine Ersetzung statt, so wird<br />

dieser Vorgang abgebrochen.<br />

Am Ende enthält die Ergebnis-Kandidatenmenge<br />

die k nächsten Nachbarn.<br />

5. Analyse<br />

5.1 Testumfeld<br />

Für gewöhnlich wird für die Analyse <strong>von</strong><br />

Textklassifikationsalgorithmen auf fertige Text-<br />

Korpuse zurückgegriffen. Verbreitet ist der<br />

Reuters Korpora, aber auch auf die chinesische<br />

Sprache ausgelegte Datenbanken, mit<br />

verschiedenen Texten werden verwendet. In<br />

dieser Arbeit soll aber explizit die<br />

Leistungsfähigkeit für <strong>RSS</strong> <strong>Feed</strong>s und damit<br />

Inhalte <strong>von</strong> Webseiten analysiert werden. Daher<br />

wurden in dieser Arbeit zwei Sätze an Daten<br />

erhoben, die möglichst genau der realen<br />

Datenmenge entsprechen.<br />

Ein erster Datensatz besteht aus 1100<br />

vollständigen, deutschsprachigen Newsartikel der<br />

Webseite zeit.de (Zeit, 2010) und wurde im<br />

Zeitraum vom 21.04.2010 bis zum 22.05.2010<br />

erfasst. Die Ressorts Politik und Wirtschaft, mit<br />

zusammen 549 Dokumenten, wurden als<br />

interessant bewertet, die verbleibenden Ressorts,<br />

mit insgesamt 621 Dokumenten, als uninteressant<br />

vorklassifiziert. Die durchschnittliche Textlänge<br />

liegt bei ca. 10000 Zeichen, wobei einzelne<br />

Dokumente eine ähnliche Zeichenmenge<br />

aufweisen. Diese erste Menge stellt einen ersten,<br />

einfachen Testfall dar, mit dem grundsätzlich die<br />

Funktionalität der Implementierung<br />

nachgewiesen werden soll.<br />

Eine zweite Datenmenge (im Weiteren als "real"<br />

bezeichnet) besteht aus deutschsprachigen, mit<br />

rsslounge eingelesenen <strong>Feed</strong>einträgen, die aus elf<br />

<strong>RSS</strong> <strong>Feed</strong>s entstammen. Diese <strong>Feed</strong>s decken<br />

inhaltlich die Themen IT News, Schlagzeilen und<br />

Webentwicklung ab und wurden entsprechend<br />

der festen Interessenlage eines Probanden<br />

vorklassifiziert (als interessant und<br />

uninteressant). Insgesamt wurden 2100 reale<br />

<strong>Feed</strong>-Einträge verwendet, die im Zeitraum vom<br />

31.03.2010 und dem 22.04.2010 erfasst wurden.<br />

Diese Datenmenge stellt den realen<br />

Anwendungsfall dar und soll als Grundlage dafür<br />

dienen, wie gut sich der<br />

Klassifikationsalgorithmus im realen Umfeld<br />

bewährt.<br />

Es gibt zwei Kategorien: interessant oder<br />

uninteressant. Jedes Dokument kann eindeutig<br />

einer der beiden Kategorien zugeordnet werden.<br />

Die Implementierung erfolgte in PHP, für den<br />

Bayes-Klassifikator wurde die OpenSource<br />

Bibliothek b8 (Leupold, 2010) verwendet.<br />

5.2 Messwerte<br />

Für eine Auswertung der Leistungsfähigkeit der<br />

vorhandenen Klassifikatoren, wurden die zwei<br />

Werte precision (Genauigkeit) und recall<br />

(Trefferquote) aus dem Bereich des Information<br />

Retrievals verwendet. Die "Genauigkeit ist die<br />

Wahrscheinlichkeit, mit der ein gefundenes<br />

Dokument relevant ist" (Wikipedia.org, 2010). Die<br />

"Trefferquote ist die Wahrscheinlichkeit, mit der<br />

ein relevantes Dokument gefunden wird"<br />

(Wikipedia.org, 2010). Beide Maße können Werte


14<br />

Abbildung 13: F1 Score Wert für die zeit.de Datenmenge<br />

Abbildung 14: F1 Score Wert für die real Datenmenge<br />

zwischen 0 und 1 (bzw. 0% und 100%) annehmen<br />

und hängen <strong>von</strong>einander ab. Neben der<br />

Genauigkeit und der Trefferquote findet man in<br />

der Literatur daher auch sehr oft das F-Maß,<br />

welches beide Werte miteinander kombiniert. In<br />

dieser Arbeit wird das F1 Maß ermittelt. Die<br />

Maßzahlen können über folgende Formeln<br />

bestimmt werden:<br />

precision =<br />

recall =<br />

relevant ∩ gefunden<br />

gefunden<br />

relevant ∩ gefunden<br />

relevant<br />

2 ∗ precision ∗ recall<br />

F1 =<br />

precision + recall<br />

5.3 Auswertung<br />

Für ein Training der Klassifikatoren wurde eine<br />

unterschiedliche Anzahl an Dokumenten<br />

verwendet. Anschließend wurden je Testlauf 100<br />

Dokumente klassifiziert und daraus die Messwerte<br />

ermittelt.<br />

Abbildung 13 und 14 zeigen die F1 Scorewerte für<br />

die beiden Datenmengen. Auf der x-Achse ist die<br />

Anzahl der Dokumente der Lernmenge<br />

aufgetragen. Die Grafiken enthalten das Ergebnis<br />

des naiven Bayes Klassifikators und das Ergebnis<br />

des k-nächste-Nachbarn Klassifikators, basierend<br />

auf simuliertem Abkühlen unter Verwendung der<br />

8 nächsten Nachbarn. Einmal wurden die<br />

Dokumente unverändert in den Klassifikator<br />

eingegeben (rote Linie). Ein weiteres Mal wurden<br />

alle Dokumente auf 500 und 300 Zeichen gekürzt<br />

(grüne und lila Linie).


15<br />

Abbildung 13 zeigt, dass beide Klassifikatoren mit<br />

einer steigenden Anzahl an Trainingsdaten besser<br />

werden. Die Überlegenheit des Bayes<br />

Klassifikators ist, besonders bei kleinen<br />

Datenmengen, deutlich sichtbar. Eine Reduktion<br />

der Textlänge führt hier zu einer Verschlechterung<br />

der Klassifizierungsleistung, was aus dem<br />

reduzierten Informationsgehalt folgert. Besonders<br />

der Bayes Klassifikator bringt hier gute<br />

Trefferraten, da die Themengebiete der<br />

zugrundeliegenden Datenmenge klar <strong>von</strong>einander<br />

getrennt sind (Politik und Wirtschaft besitzt eine<br />

andere Wortmenge als die restlichen Ressorts wie<br />

Sport oder Wissen). Die Unterlegenheit des k-<br />

nächste-Nachbarn Verfahren ist in der kleinen<br />

Trainingsmenge begründet. Dies deckt sich mit<br />

den Beobachtungen verschiedener Paper, die für<br />

das k-nächste-Nachbarn Verfahren, basierend auf<br />

verschiedene Text-Korpuse, ähnliche<br />

Ergebniswerte aufweisen (Lan, Tan, & Low, 2006,<br />

S. 4f.), (Colas & Brazdil, 2006, S. 7).<br />

Wird eine Datenbasis herangezogen, die eine reale<br />

Klassifikation durch einen Benutzer<br />

wiederspiegelt, so ändert sich dieses klare Bild,<br />

wie Abbildung 14 aufzeigt. Während sich der<br />

Bayes Klassifikator mit steigender Anzahl an<br />

Trainingsdokumenten verbessert und einer<br />

Treffergenauigkeit <strong>von</strong> 80% annähert, weißt der<br />

k-nächste-Nachbarn Klassifikator eine konstant<br />

niedrige Erfolgsquote auf, die etwa bei 50%<br />

anzusiedeln ist und auch bei einer Erhöhung der<br />

Lernmenge nicht ansteigt. Für diesen Effekt gibt es<br />

eine klare Ursache, die eine Analyse der<br />

Debugausgaben der Implementierung offenbart.<br />

Aufgrund der kurzen durchschnittlichen Länge<br />

<strong>von</strong> (im Mittel) 1000 Zeichen der Dokumente wird<br />

ein Vergleich zweier Vektoren nur über sehr<br />

wenige Worte durchgeführt. Zwei Vektoren haben<br />

im Durchschnitt lediglich drei Wörter gemeinsam.<br />

Die Entscheidung, wie nahe also ein Vektor an<br />

dem unbekannten, zu klassifizierenden Vektor<br />

liegt (errechnet über die Kosinusdistanz), basiert<br />

also auf ein bis drei Worte. Auch wenn diese im<br />

Kontext auftauchen (also gegenüber dem naiven<br />

Bayes Verfahren hier mehr Informationen<br />

enthalten), reicht diese Menge nicht aus, um eine<br />

Aussage darüber zu treffen, ob dieser Vektor dem<br />

unbekannten Vektor ähnlich ist oder nicht. Auch<br />

bei einer steigenden Trainingsmenge wird dieses<br />

Problem nicht gelöst, da die Bewertungsgrundlage<br />

für die Ähnlichkeit zu schwach ist und sich die<br />

Menge an falschen Möglichkeiten nur erhöht.<br />

Diese Erkenntnis wiegt schwer, denn sie besagt,<br />

dass auch alle anderen vektorbasierten Verfahren,<br />

die in dieser Arbeit aufgezeigt werden (wie<br />

beispielsweise Support Vektor Maschinen) für<br />

eine Klassifikation nicht in Frage kommen. Auch<br />

hier findet ein Vergleich zweier Vektoren über die<br />

Einzelwörter statt und auch hier wäre die<br />

Schnittmenge für eine verlässliche Aussage zu<br />

klein.<br />

Weiterführende Versuche haben gezeigt, dass<br />

auch die Anzahl der nächsten Nachbarn, also eine<br />

Veränderung des k, keine Verbesserung<br />

herbeiführt und auch kein herausragend stabiler<br />

Wert angegeben werden kann, der auffallend gute<br />

Ergebnisse liefert.<br />

Abbildung 14 zeigt auch ein zweites Phänomen,<br />

dass ein großes Problem darstellt: wird die<br />

Textlänge auf 500 Zeichen limitiert, so verbessert<br />

sich die Erkennungsleistung signifikant auf ca.<br />

65%. Ein Vergleich mit dem Datenbestand aus<br />

Abbildung 13 (das diesen Effekt nicht aufweist)<br />

und einer Analyse der Datenmenge zeigt, dass dies<br />

durch die stark variierende Textlänge<br />

hervorgerufen wird.<br />

max Textlänge kein Limit 500<br />

korrekt<br />

interessant<br />

17 15<br />

falsch interessant 12 14<br />

korrekt<br />

langweilig<br />

34 62<br />

falsch<br />

langweilig<br />

37 9<br />

Textlänge<br />

Traininmenge<br />

interessant<br />

Textlänge<br />

Traininmenge<br />

langweilige<br />

1354 368<br />

752 335<br />

Abbildung 15: Die Tabelle zeigt die Anzahl<br />

korrekt und falsch klassifizierter Elemente,<br />

abhängig <strong>von</strong> der maximal möglichen Textlänge.<br />

Die Werte wurden bei einer Trainingsmenge <strong>von</strong><br />

1000 Dokumente und mit k=8 ermittelt<br />

Die Tabelle in Abbildung 15 zeigt exemplarisch für<br />

1000 Dokumente als Trainingsmenge, wie groß<br />

der Einfluss der Textlänge ist. Ohne eine<br />

Limitierung der Textlänge werden 37 Dokumente,<br />

die eigentlich uninteressant sind, als interessant<br />

eingestuft. Wird hingegen die Textlänge auf 500<br />

Zeichen begrenzt (also lediglich die ersten 500<br />

Zeichen verwendet), so sinkt diese Anzahl an<br />

fälschlicherweise als interessant eingruppierten<br />

Dokumenten auf 9. Dieses Verhalten ist für<br />

mehrere Konfigurationen rekonstruierbar.<br />

Die Ursache hierfür liegt in dem Ungleichgewicht<br />

der Merkmale. Der unbekannte Merkmalsvektor<br />

wird nur mit einem Trainingsvektor verglichen,<br />

wenn dieser mindestens ein Wort mit diesem<br />

gemeinsam hat, also überhaupt eine Schnittmenge<br />

vorhanden ist. Ansonsten ist die Distanz 0 (vgl. die<br />

Formel für das Kosinusmaß). Ein Vergleich macht<br />

hier auch intuitiv keinen Sinn, denn beide<br />

Vektoren haben ja nichts gemeinsam. Haben nun<br />

interessante Texte höhere Textlängen, so erhöht


16<br />

Abbildung 16: Anteil korrekt klassifizierter Dokumente für eine Trainingsmenge<br />

<strong>von</strong> 500 und 1000 Dokumenten für die Datenmenge "real"<br />

sich die Wahrscheinlichkeit, dass zwischen einem<br />

neuen, unbekannten Vektor und einem aus der<br />

Menge der interessanten Trainingsvektoren<br />

stammender Merkmalsvektor, eine Schnittmenge<br />

besteht, also beide Vektoren gleiche Wörter<br />

enthalten. Der unbekannte Vektor wird also mit<br />

mehr Trainingsvektoren der interessanten Menge<br />

verglichen (hier ist die Textlänge doppelt so hoch,<br />

wie bei uninteressanten Trainingsvektoren),<br />

womit auch die Wahrscheinlichkeit steigt, das ein<br />

solcher in die Menge der k nächsten Nachbarn<br />

kommt. Resultierend daraus werden unbekannte<br />

Vektoren verstärkt als interessant klassifiziert.<br />

Erst wenn durch eine künstliche Kürzung der<br />

Texte gleiche Textlängen erzeugt werden, gleicht<br />

sich dieser Effekt aus.<br />

Die erste Datenmenge (zeit.de) besteht aus etwa<br />

gleich langen Texten, daher tritt hier dieser Effekt<br />

nicht auf. Da aber <strong>RSS</strong> <strong>Feed</strong>s stark variierende<br />

Textlängen aufweisen (so enthält beispielsweise<br />

ein Download-<strong>Feed</strong> oft nur den Namen der<br />

Anwendung, ein <strong>Feed</strong> mit detaillierten<br />

Informationen oft weit mehr als 10000 Zeichen)<br />

und im Vorfeld nicht gewährt ist, dass diese<br />

Längen über beide Kategorien gleichverteilt sind,<br />

ist für dieses Problem unbedingt eine Lösung<br />

erforderlich.<br />

Sämtliche hier klassifizierten Dokumente wurden<br />

<strong>mittels</strong> der TF-IDF Gewichtung verarbeitet. Im<br />

Rahmen dieser Arbeit wurde aber auch das TF-RF<br />

Maß in Erwägung gezogen (vgl. 2.4 Gewichtung<br />

der einzelnen Merkmale) und ausgewertet.<br />

Abbildung 16 stellt den Anteil der korrekt<br />

klassifizierten Dokumente für die verschiedenen<br />

Klassifikationsalgorithmen dar. Ein deutlicher<br />

Abfall der Erkennungsleistung ist bei der<br />

Verwendung der TF-RF Gewichtung sichtbar und<br />

auch hier offenbart sich die Ursache bei einer<br />

Analyse der Debug-Ausgaben der<br />

Implementierung. Das TF-RF Maß ist zwar<br />

sensibel für Ungleichgewichte, repräsentiert aber<br />

kaum die Häufigkeit des Auftauchens eines<br />

Wortes. Das bedeutet, dass die Stop Wörter, also<br />

häufig auftretende und wenig aussagekräftige<br />

Worte, wie beispielsweise Artikel, kein signifikant<br />

niedrigeres Gewicht bekommen als seltene Worte.<br />

Daher haben diese Worte einen großen Einfluss<br />

auf die Bestimmung der Ähnlichkeit. Dieses<br />

Problem lässt sich auch im Paper, das dieses<br />

Gewicht einführt, zwischen den Zeilen<br />

herauslesen: "Stop words, punctuation and<br />

numbers were removed…" (Lan, Tan, & Low,<br />

2006, S. 3). Für dieses Projekt kommen allerdings,<br />

aus Gründen der Sprachenunabhängigkeit keine<br />

Wörterlisten in Frage. Daher wurde das TF-RF<br />

Gewicht nicht weiter verfolgt.<br />

Hinsichtlich der Verarbeitungsgeschwindigkeit<br />

hat sich das k-nächste-Nachbarn Verfahren,<br />

basierend auf dem simulierten Abkühlen als<br />

praxistauglich herausgestellt. Für die<br />

Klassifikation lag die Rechenzeit (ausgehen <strong>von</strong> 8<br />

nächsten Nachbarn und 1000 Trainingsdaten)<br />

unter 500 Millisekunden und damit in einem<br />

vertretbaren Bereich.<br />

6. Ergebnis<br />

In dieser Arbeit wurden die verschiedenen<br />

Möglichkeiten einer Textklassifikation erläutert<br />

und vorgestellt. Nach den vorliegenden<br />

Informationen wurde das geeignetste Verfahren,<br />

die Klassifikation über ein optimiertes k-nächste-<br />

Nachbarn-Verfahren, <strong>mittels</strong> simulierten<br />

Abkühlens implementiert und mit dem naiven<br />

Bayes Klassifikator verglichen. In diesem Zuge


17<br />

wurde die in (Lan, Tan, & Low, 2006) vorgestellte,<br />

neue Gewichtungsmethode, term frequenz<br />

relevance feedback (TF-RF) vorgestellt und in der<br />

Praxis erprobt.<br />

Ein praktischer Test mit zwei Datenmengen (einer<br />

vereinfachten Testmenge und einer zweiten,<br />

praxisnahen Beispielmenge) hat gezeigt, dass der<br />

k-nächste-Nachbarn Klassifikator, aufgrund der<br />

geringen Lernmenge, der kurzen Textinhalte <strong>von</strong><br />

<strong>RSS</strong> <strong>Feed</strong>s und der stark variierenden Textlängen<br />

für das vorliegende Problem nicht geeignet ist.<br />

Ebenso zeigt diese Arbeit, dass sämtliche<br />

Verfahren, die auf dem Vektorraummodell<br />

basieren, für eine Lösung dieses Problems<br />

ungeeignet sind, da die Schnittmengen zwischen<br />

den Vektoren keinen verlässlichen Vergleich<br />

erlauben.<br />

Das TF-RF Gewicht ist ausschließlich in<br />

Kombination mit einer Stop Wort Elimination<br />

sinnvoll. Eine Verbesserung der<br />

Erkennungsleistung durch das TF-RF Gewichtung<br />

konnte daher nicht nachgewiesen, aber auch nicht<br />

widerlegt werden.<br />

Weitere Informationen, wie sie beispielsweise die<br />

Methoden des semantischen Webs bieten, könnten<br />

einen Ansatz dafür bieten, aus den kurzen Texten<br />

weitere Merkmale zu extrahieren. Auch das<br />

Heranziehen externer Inhalte (beispielsweise<br />

durch das Herunterladen der gesamten Webseite<br />

des <strong>RSS</strong> Beitrages) könnte Inhalt weiterer<br />

Arbeiten sein.<br />

7. Literaturverzeichnis<br />

Baoli, L. and Shiwen, Y. and Qin, L. 2003. A<br />

Improved k-Nearest Neighbor Algorithm for Text<br />

Categorization. Institute of Computational<br />

Linguistics, Department of Computer Science and<br />

Technology, Peking University, Beijing, China<br />

Blankenhorn, K. 2002. Spam-Filterung <strong>mittels</strong><br />

Maschinellem Lernen. Diplomarbeit im<br />

Fachbereich Digitale Medien. Fachhohschule<br />

Furtwangen<br />

Colas, F. and Brazdil, P. 2006. Comparison of svm<br />

and some older classification algorithms in text<br />

classification tasks. Artificial Intelligence in theory<br />

and Practice. Springer Verlag Boston. Leiden<br />

University, Netherlands. University of Porto,<br />

Portugal. 169-178<br />

Forman, G. 2007. Feature Selection for Text<br />

Classification. Computational Methods of Feature<br />

Selection. Information Services and Process<br />

Innovation Laboratory. HP Laboratories Palo Alto.<br />

CRC Press<br />

Hadi, W. M., Thabtah, F., & Abdel-jaber, H. 2007. A<br />

Comparative Study using Vector Space Model with<br />

K-Nearest Neighbor on Text Categorization.<br />

Proceedings of the World Congress on<br />

Engineering Vol 1 (London, U.K., July 2 – 4, 2007),<br />

Amman, Jordan. University Bradforn, U.K.<br />

Hoffmann, R. (2002). Entwicklung einer<br />

benutzerunterstützten<br />

automatisierten<br />

Klassifikation <strong>von</strong> Web - Dokumenten.<br />

Diplomarbeit, Institut für<br />

Informationsverarbeitung<br />

und<br />

Computerunterstützte neue Medien, Technischen<br />

Universität Graz<br />

Lan, M. nad Tan, C. and Low, H. 2006. Proposing a<br />

new term weighting scheme for text categorization.<br />

In Proceedings of the 21 st National Conference on<br />

Artificial Intelligence – Volume 1 (Boston,<br />

Massachusetts, July 16 – 20, 2006). A. Cohn, Ed.<br />

Aaai Conference On Artificial Intelligence. AAAI<br />

Press, 763-768<br />

Leupold, T. 2010. PHP Bibliothek b8. Stand: 2. Juni<br />

2010. URL: http://nasauber.de/opensource/b8/<br />

(Abgerufen: 26. Juli 2010)<br />

Rahal, I. and Perrizo, W. 2004. An optimized<br />

approach for KNN text categorization using P-trees.<br />

In Proceedings of the 2004 ACM Symposium on<br />

Applied Computing (Nicosia, Cyprus, March 14 –<br />

17, 2004). SAC’04. ACM, New York, NY, 613-617<br />

Sebastiani, F. 2002. Machine Learning in<br />

Automated Text Categorization. ACM Computing<br />

Surveys, Vol. 34, No.1, pp.1-47, March 2002.<br />

Italien.<br />

Segaran, T. (2008). Kollektive Intelligenz. erste<br />

Auflage. O'Reilly Verlag. Köln. ISBN: 3897217805.<br />

Soucy, P. and Mineau, G. W. 2005. Beyond TFIDF<br />

weighting for text categorization in the vector<br />

space model. In Proceedings of the 19 th<br />

international Joint Conference on Artificial<br />

intelligence (Edinburgh, Scotland, July 30 – August<br />

05, 2005). International Joint Conference On<br />

Artificial Intelligence. Morgan Kaufmann<br />

Publishers, San Francisco, CA, 1130-1135<br />

Wikipedia. 2010a. Entscheidungsbaum. Stand: 17.<br />

Juni 2010. URL:<br />

http://de.wikipedia.org/w/index.php?title=Entsc<br />

heidungsbaum&oldid=75679426 (Abgerufen: 26.<br />

Juli 2010)<br />

Wikipedia. 2010b. Recall und Precision. Stand: 27.<br />

April 2010. URL:<br />

http://de.wikipedia.org/w/index.php?title=Recall


18<br />

_und_Precision&oldid=73673979 (Abgerufen: 26.<br />

Juli 2010)<br />

Yang, C., Li, Y., Zhang, C., & Hu, Y. (2007). A Fast<br />

KNN Algorithm Based on Simulated Annealing.<br />

Shanghai, China: Department of Computing &<br />

Information Technology, Fudan University,<br />

Shanghai, China<br />

Zeising, T. (2010). rsslounge Aggregator. Stand: 2.<br />

Februar 2010. URL: http://rsslounge.aditu.de<br />

(Abgerufen: 26. Juli 2010)<br />

Zeit. 2010. Zeit.de Archiv. Stand: 1. Mai 2010. URL:<br />

http://www.zeit.de/news/index?page=1&sort=re<br />

ssort (Abgerufen: 1. Mai 2010)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!