Übung 1 - Web Mining

Abgabetermin: Sonntag, 01.05.2011
  1. Überlegen Sie sich eine Web Min­ing An­wen­dung, die mit Text-Klas­si­fika­tionsver­fahren gelöst wer­den könnte. Skizzieren Sie eine mögliche Um­set­zung (Samm­lung der Train­ings­dat­en, Klas­si­fika­tion der Train­ings­dat­en, Ein­satz des gel­ern­ten Klas­si­fika­tors in der Prax­is).
  2. Schreiben Sie ein ein­fach­es Pro­gramm, das eine sortierte Liste der in einem Text vork­om­menden Worte (im weitesten Sinn alles was durch Leerze­ichen be­gren­zt wird) mit den as­sozi­ierten Häufigkeit­en er­stellt und z. B. auf STD­OUT ausgibt.
    • Ver­gle­ichen Sie die 30 am häufig­sten vork­om­menden Worte in zwei oder mehreren längeren Tex­ten der gle­ichen Sprache (z. B. E-books, Pro­jekt Guten­berg, etc. ). Sind diese Worte als Merk­male für Text-Klas­si­fizierungs-Auf­gaben geeignet? Warum?
    • Modifizieren Sie Ihr Programm dahingehend, daß es eine Liste von Stoppwörtern erhalten kann, die ignoriert werden. Wiederholen Sie die vorherige Aufgabe, indem Sie jedoch diesmal die Stoppwörter der jeweiligen Sprache ignorieren (eine Auswahl finden Sie unter http://nltk.googlecode.com/svn/trunk/nltk_data/packages/corpora/stopwords.zip). Wie würden Sie nun die Eignung der 30 häufigsten Wörter einschätzen?
  3. Die Auftrittswahrschein­lichkeit­en von Worten in Tex­ten fol­gen einer so­ge­nan­nten Zipf-Verteilung, d. h. einer Verteilung, die dop­pelt log­a­rith­misch ist. Überprüfen Sie das an­hand der gewählten Texte.
    • Plot­ten Sie die Häufigkeit­en (y-Achse) über den Rang (x-Achse), also die An­zahl der Vorkomm­nisse des häufig­sten Worts zuerst, dann die An­zahl des zwei­thäufig­sten Worts, etc. Betra­cht­en Sie sowohl eine ab­so­lute als auch eine log­a­rith­mis­che Skalierung bei­der Achsen.
    • Bes­tim­men Sie die An­zahl der Worte, die mit einer gegebe­nen Häufigkeit vorkom­men (also, wie viele Wörter gibt es, die mit Häufigkeit 1 vorkom­men, wie viele mit Häufigkeit 2, etc. ). Pro­duzieren Sie ähn­liche Grafiken (An­zahl der Worte mit einer gewis­sen Häufigkeit über die Häufigkeit).
  4. Mod­i­fizieren Sie das Pro­gramm, so daß es nicht Worte son­dern Buch­staben und Buch­staben­paare zählt. Vergle­ichen Sie deren Häufigkeitsverteilung sowohl zweier in der gleichen Sprache verfassten Texte als auch zweier in ver­schiede­nen Sprachen abge­fasster Texte.
  5. Laden Sie sich unser kleines Firefox-Plugin (http://www.ke.tu-darmstadt.de/lehre/ss11/web-mining/keaddon1.zip) herunter und machen Sie sich damit und den Entwicklungstools vertraut. Weiter unten finden Sie Hinweise zur Verwendung. Erweitern Sie die Funktion student(text) in der Datei lib/student.js dahingehend, daß es drei Sprachen erkennen kann. Die Liste der bisher unterstützten Sprachen können Sie gerne in languages.js nach Belieben erweitern. Verwenden Sie für die Spracherkennung eine einfache Heuristik, die z.B. auf den in der vorherigen Aufgabe vorgestellten Stoppwörtern basiert. Browsen Sie dann ein wenig im Web herum und berichten uns von Ihren Ergebnissen und Erfahrungen mit dem Plugin. 

Hinweise zum Firefox-Plugin

Das Firefox-Plugin ist ein kleines Tool, welches in der Lage ist, abhängig von der gerade angezeigten Seite ein kleines Symbol, in unserem Falle eine Fahne, in der rechten Ecke der unteren Statusleiste im Firefox anzuzeigen. Das Tool ist bereits in der Lage, den Text einer Web-Seite (technisch gesehen nur Text innerhalb eines Paragraphen, also z.B. keine Überschriften) zu extrahieren und zu verarbeiten. Die Verarbeitung findet in der Funktion student(text) inlib/student.js statt. Diese gibt momentan statisch eine Sprache zurück, die dann als Fahne dargestellt wird. Hierum kümmert sich auch das Firefox-Plugin selbständig.

Programmierung und Entwicklungsumgebung

Entpacken sie den Inhalt der Zip-Datei in ein Verzeichnis, das Projektverzeichnis. Laden Sie sich die neueste Firefox SDK herunter und installieren Sie sie auf ihrem Rechner. Eine Installationsanleitung befindet sich im unten angegebenen Link. Hierbei handelt es sich im Wesentlichen um eine Sammlung von Skripten und Bibliotheken, die Ihnen das Arbeiten mit Firefox Plugins erleichtert. Nach der Installation steht Ihnen der Befehl cfx zur Verfügung. Führen Sie cfx run innerhalb des Projektverzeichnisses aus, um Ihre Änderungen im Browser zu testen. Ihre prognostizierte Sprache wird in der Addon-Leiste angezeigt. Alternativ dazu können Sie ihre Funktion in Unittest testen, welche Sie in test-main.js implementieren können.

 

Um Ihnen die Arbeit zu erleichtern, stellen wir einige Helferfunktionen bereit. Diese befinden sich in utility.js und dienen zur Orientierung und keinesfalls als strikte Vorgabe.

Anmerkungen:

  • Es ist nicht unbedingt notwendig, die SDK zu installieren. Sie können auch die xpi Datei mit einem Zip-Programm entpacken, die Änderungen vornehmen und wieder neu zippen. Das Plugin selbst laden Sie, indem Sie die xpi Datei in Firefox öffnen.
  • Falls Sie nicht die aktuellste Firefox Version installiert haben, kann es Ihnen passieren, daß Sie entweder das Plugin über die xpi Datei nicht installieren können oder es in den Erweiterung als deaktiviert markiert wird. Installieren Sie bitte in diesem Fall die aktuellste Firefox Version, oder ändern Sie die Standard-Einstellung diesbezüglich im SDK. Ändern Sie hierfür im SDK-Verzeichnis in der Datei python-lib/cuddlefish/app-extension/install.rdf die Versionsangabe in der Zeile <em:minVersion>4.0b7</em:minVersion> auf z.B. 3.0. Alternativ können Sie diese Zeile in der install.rdf Datei im xpi Packet ändern.

Tools und Links

 

 

A A A | Drucken | Impressum | Sitemap | Suche | Mobile Version
zum Seitenanfangzum Seitenanfang