• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Dokumenten Clustering
 

Dokumenten Clustering

on

  • 2,045 views

 

Statistics

Views

Total Views
2,045
Views on SlideShare
2,029
Embed Views
16

Actions

Likes
1
Downloads
2
Comments
0

1 Embed 16

http://ramonsblog.wartala.de 16

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Dokumenten Clustering Dokumenten Clustering Presentation Transcript

    • Dokumenten-Clustering * *(mit ActiveRecord) Ramon Wartala Rails Konferenz - 10.6.2008
    • Kollektive Intelligenz •Wisdom of the crowds •Collective intelligence •Selbstorganisation •Schwarmintelligenz
    • Wie schwer ist diese Kuh?
    • Information overload!!!
    • Clustering: Gruppen ähnlicher Dinge finden
    • Was sind relevante Informationen?
    • Index-Terme „Ein Index-Term ist für ein Dokument um so signifikanter, je häufiger er ein einem Dokument auftritt und je seltener er in anderen Dokumenten vorkommt“
    • Linguististe Textanalyse Linguistisches Level Textanalyseverfahren lexikalisch Stopwortliste, Lexikon steigende morphologisch Wortstammanalyse Komplexität statistische und syntaktisch grammatikalische Regeln semantische Thesaurus pragmatisch Expertensysteme
    • unless stopwords • bestimmte Artikel ('der', 'die', 'das') • unbestimmte Artikel ('einer', 'eine', 'ein') • Konjunktionen ('und', 'oder', 'doch', usw.) • Präpositionen ('an', 'in', 'von', usw.) • Negation wie 'nicht'
    • Part-of-speech-tagging This lecture's goal is to take you beyond simple database-backend applications and teach you how to write smarter programs to take advantage of information you and others collect every day. DT, NN, PRP, JJ, VBZ, TO, NN, PRP, IN, JJ, nil, NNS, CC, VB, PRP, WRB, TO, VB, RBR, NNS, TO, VB, NN, IN, NN, PRP, CC, NNS,VB, DT, NN
    • Wortstämme • Im Englischen sehr einfach mit dem Porter- Stemmer-Algorithmus (Porter 1980) • Ruby Implementierung als RubyGem verfügbar • Mehr unter http://www.tartarus.org/ ~martin/PorterStemmer
    • Alles zusammen Text in Wörter trennen Kurze Worte & Stopwörter filtern Nur Nomen Wort & Wortstamm
    • Term-Gewichte
    • Term-Frequenz freqij tfij= maxl(freqlj) wird pro Term i abhängig vom Dokument j betrachtet. freqi,j ist die Auftrittshäufigkeit des betrachteten Terms i im Dokument j. Im Nenner steht die Maximalhäufigkeit über alle l Terme im Dokument (Baeza-Yates und Ribeiro-Neto, 1999).
    • Inverse Dokumenten frequenz N idfi= log ni Die inverse Dokumentfrequenz idf hängt hingegen nicht vom einzelnen Dokument, sondern vom Dokumentkorpus, der Gesamtmenge aller Dokumente im ab
    • Term-Gewicht freqij N wij= tfij * idfi = * log maxl(freqlj) ni Das Gewicht w eines Terms i im Dokument j
    • Ergebnis: Dokumenten Vektorraummodell Term1 Dokument1= (Term1, Term22, Term56) Dokument1= (Term11, Term13, Term42) Term3 Term2
    • Document < ActiveRecord::Base
    • Ähnlichkeit von Dingen = Korrelationsmaß
    • Korrelationsmaße • Nummerisches • Skalarprodukt Maß für die Ähnlichkeit • Cosinus zweier N- • Dice-Koeffiient Dimensionaler Vektoren • Jaccard- Koeffizeint • Overlap- Koeffizient
    • Dokumenten-Term- Matrix Term Dokument1 Dokument2 DokFreq Apfel 2 0 2 Birne 0 5 5 Mango 2 8 10 Kiwi 1 1 2 Pflaume 0 3 3
    • Termgewichtung Term Dokument1 Dokument2 Apfel 1 0 Birne 0 1 Mango 0,2 0,8 Kiwi 0,5 0,5 Pflaume 0 1
    • Invertierte Liste Termfreq > 0.5 Apfel Dokument1 Birne Dokument2 Mango Dokument2 Kiwi Pflaume Dokumen2
    • Dokumenten-Vektor als Hash • dokument1={”Apfel” 1, ”Kiwi” 0.5} • dokument2={”Birne” 1, ”Mango” 0.8, ”Kiwi” 0.5}
    • Cosinus-Koeffizient
    • Cosinus-Koeffizient gleich: sim=1.0 orthogonal: sim=0.0 ähnlich: 1 < sim > 0
    • Ziel von Dokumenten-Clustering
    • Ziele von Dokumenten Clustering • Identifikation einer endlichen Menge von Clustern • Dokumente im gleichen Cluster sollen möglichst ähnlich sein • Dokumente aus verschiedenen Clustern sollen möglichst unähnlich zueinander sein
    • Vorteile von Clustering
    • Vorteile von Clustering • Unbeaufsichtigtes Lernen • schneller Überblick über den Inhalt einer sehr großen Datenmenge • Identifikation der verborgenen Ähnlichkeit • Erleichterung der Suche nach ähnlichen Dokumenten • Verhalten gut erforscht
    • k-means Algorithmus • klassische Methode des Clustering und wurde für Textdokumente angepasst. • In diesem Bereich weit verbreitet und effizient • Findet nicht immer das Optimum • Ist schnell und effizient • Komplexität: O(k n i), wobei i die Anzahl * * Iterationen ist
    • k-means Algorithmus 1. Lege k fest 5. Vergleiche jeden Dokumentenvektor mit 2. Erzeuge k-Cluster jedem Zentroid (Zentroide) 6. Verschiebe Dokumente 3. Verteile alle Dokumente zu Zentroiden mit der zufällig auf die Zentroide höchsten Ähnlichkeit 4. Berechne Zentrodie als 7. Fertig, wenn kein Durchschnittsvektor Dokument mehr aller verschoben wird. Sonst Dokumentenvektoren zu Schritt 4 zurück
    • D1 D1 D5 D5 D4 D4 Z2 D2 D3 D2 D3 Z1 D1 D1 D5 D5 Z2 D4 Z2 D4 Z2 Z1 Z1 D2 Z1 D3 D2 D3
    • co2alarm.com - clustered green headlines
    • • co2alarm.com • Ruby on Rails Projekt • Übersicht über Neuigkeiten aus dem Umweltbereich • RSS-Agregator / -Crawler • k-means-Clusterer auf Datenbankebene • Visualisierung mit TreeMaps • Demokratisierung von „grünen“ Nachrichten
    • Quellen
    • http://web.media.mit.edu/~dustin/rubyai.html 1. 2. 3.
    • Kontakt ramon@wartala.de www.wartala.de xing.com/profile Ramon_Wartala twitter.com/rawar Ramon Wartala ist IT-Leiter beim Hamburger Online-Vermarkter orangemedia.de GmbH, Co-Autor des Buches Webanwendungen mit Ruby on Rails, Mitbegründer der ersten, deutschen Ruby on Rails Usergroup und seit 10 Jahren freier Autor im Bereich Softwareentwicklung und Entwickler von co2alarm.com.