Übung 2 - Web Mining

Ab­ga­beter­min: Son­ntag, den 15.05.2011
  1. Entwickeln Sie auf der Basis der in Übungsblatt 1, Aufgabe 4 herausgefundenen Statistiken über Sprachen ein einfaches Verfahren, mit dem es möglich ist, die Sprache eines Textes anhand der Häufigkeiten von Buchstaben und Buchstabenpaaren vorherzusagen. Erweitern Sie unser kleines KE-Firefox-Plugin aus Aufgabe 5 dahingehend, daß es mithilfe Ihres Verfahrens in der Lage ist, die Sprache (Deutsch - Englisch - Französisch) einer Web-Seite zu ermitteln. Hierfür müssen sie wieder die Funktion student(text) in der Datei lib/student.js in Ihrem Sinne erweitern. Beachten Sie dabei die zusätzlichen nützlichen Funktionen in lib/utility.js in der aktualisierten Version des Plugins (http://www.ke.tu-darmstadt.de/lehre/ss11/web-mining/keaddon2.zip). Das Plugin soll dabei nicht fähig sein, zu lernen. Sie sollen Ihr Sprachenmodell sozusagen in die Funktion hardcoden.
    1. Erklären Sie kurz ihr Verfahren z.B. auch mittels Pseudocode.
    2. Gehen Sie auf http://www.ke.tu-darmstadt.de/lehre/ss11/web-mining/u2languagechallenge.html und ermitteln Sie die Sprache der 10 dort erhältlichen Webseiten. Die ersten Fünf erhalten nur eine Liste von Buchstaben, die letzten 5 Buchstabenpaare. Schreiben Sie für jeden Text das Ergebnis zeilenweise in eine Datei namens challenge.txt im Format "Seitennummer Sprache\n".

     

  2. Schreiben Sie einen ein­fachen Crawler. Die in der Vor­lesung be­han­del­ten Ver­fahren zur Op­ti­mierung brauchen Sie dabei nicht zu berücksichtigen. Der Crawler sollte
    • keine URLs dop­pelt be­suchen, d.h. Sie soll­ten URLs kanon­isieren
    • die Serv­er nicht zu sehr in Anspruch nehmen, z.B. könnten Sie den Bot nach jedem Re­quest eine kurze Pause machen lassen.
  3. Beim Abar­beit­en der Link-Queue sollte er die
    • Breadth-First-Strate­gie (neue Links wer­den hin­ten in der Queue ein­sortiert)
    • Depth-First Strate­gie (neue Links wer­den vorne in der Queue ein­sortiert)
    an­wen­den können und Zähler führen, die die Auf­stel­lung fol­gen­der Statis­tiken er­lauben:
    1. Ver­gle­ichen Sie die An­zahl der URLs einer Seite mit der An­zahl der­jeni­gen, die davon neu sind, d.h. nicht schon mal ge­fun­den wurden. Entschei­den sie selb­st wie sie diesen Ve­g­le­ich er­stellen (z.B. an­hand eines Streudi­a­gramm mit einen Punkt pro Seite oder dop­pel­ten Balk­endi­a­gramms mit einer geeign­eten x-Achse, etc.).
    2. Er­stellen Sie ein His­togramm über die An­zahl der URLs pro Seite (wie beim er­sten Übungs­blatt mit den Worthäufigkeit­en, auch log­a­rith­misch)
    3. Er­stellen Sie ein His­togramm mit den Häufigkeit­en des Auftretens von Hy­per­links (d.h., wie viele Links treten 1-mal auf, wie viele 2-mal, ...)
    4. Er­mit­teln Sie die An­zahl der un­ter­schiedlichen Host­-Namen, die Sie antr­e­f­fen.
    5. Verwenden Sie Ihr Verfahren aus der ersten Aufgabe, um die Sprache der heruntergeladenen Seiten zu ermitteln. Geben Sie die Verteilung über die gefundenen Sprachen an.
    6. Schreiben Sie auch eine kurze Zusam­men­fas­sung über Ihre Er­fahrun­gen bzw. etwaige Prob­leme mit dieser Auf­gabe.

    Starten Sie den Crawler an einer Seite Ihrer Wahl, lassen Sie ihn eine Weile (zu­min­d­est 1000 Seit­en) laufen und er­stellen Sie die genan­nten Statis­tiken jew­eils für beide Such­strate­gien.

    Bedenken Sie, daß ein Crawl eine beträchliche Zeit in Anspruch nehmen kann, die Sie auch nicht direkt beeinflussen können. Es ist auch nicht ungewöhnlich, daß Sie z.B. aufgrund von Problemen und Fehlerbereinigungen mehrere Anläufe benötigen. Starten Sie deshalb Ihren ersten Crawl rechtzeitig.

Hil­fre­iche Mod­ule:

Zweck Perl Python
Laden einer Web-Seite LWP::Sim­ple url­lib
Ex­trahieren von Hy­per­links HTML::LinkEx­tor SGML­Pars­er (Beispiel), html­da­ta
Queue­ing collections.deque
Kanon­isierung von URLs URI url­pars­er
Queries an Such­maschi­nen WWW::Search::Al­taVista etc. we­b_search
Die meis­ten der genan­nten Perl-Mod­ule sind im Modul Bun­dle::LWP en­thal­ten.
A A A | Drucken | Impressum | Sitemap | Suche | Mobile Version
zum Seitenanfangzum Seitenanfang