Dokumenten Clustering

1,477
-1

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,477
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Dokumenten Clustering

  1. 1. Dokumenten-Clustering * *(mit ActiveRecord) Ramon Wartala Rails Konferenz - 10.6.2008
  2. 2. Kollektive Intelligenz •Wisdom of the crowds •Collective intelligence •Selbstorganisation •Schwarmintelligenz
  3. 3. Wie schwer ist diese Kuh?
  4. 4. Information overload!!!
  5. 5. Clustering: Gruppen ähnlicher Dinge finden
  6. 6. Was sind relevante Informationen?
  7. 7. 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“
  8. 8. Linguististe Textanalyse Linguistisches Level Textanalyseverfahren lexikalisch Stopwortliste, Lexikon steigende morphologisch Wortstammanalyse Komplexität statistische und syntaktisch grammatikalische Regeln semantische Thesaurus pragmatisch Expertensysteme
  9. 9. 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'
  10. 10. 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
  11. 11. 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
  12. 12. Alles zusammen Text in Wörter trennen Kurze Worte & Stopwörter filtern Nur Nomen Wort & Wortstamm
  13. 13. Term-Gewichte
  14. 14. 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).
  15. 15. 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
  16. 16. Term-Gewicht freqij N wij= tfij * idfi = * log maxl(freqlj) ni Das Gewicht w eines Terms i im Dokument j
  17. 17. Ergebnis: Dokumenten Vektorraummodell Term1 Dokument1= (Term1, Term22, Term56) Dokument1= (Term11, Term13, Term42) Term3 Term2
  18. 18. Document < ActiveRecord::Base
  19. 19. Ähnlichkeit von Dingen = Korrelationsmaß
  20. 20. Korrelationsmaße • Nummerisches • Skalarprodukt Maß für die Ähnlichkeit • Cosinus zweier N- • Dice-Koeffiient Dimensionaler Vektoren • Jaccard- Koeffizeint • Overlap- Koeffizient
  21. 21. 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
  22. 22. Termgewichtung Term Dokument1 Dokument2 Apfel 1 0 Birne 0 1 Mango 0,2 0,8 Kiwi 0,5 0,5 Pflaume 0 1
  23. 23. Invertierte Liste Termfreq > 0.5 Apfel Dokument1 Birne Dokument2 Mango Dokument2 Kiwi Pflaume Dokumen2
  24. 24. Dokumenten-Vektor als Hash • dokument1={”Apfel” 1, ”Kiwi” 0.5} • dokument2={”Birne” 1, ”Mango” 0.8, ”Kiwi” 0.5}
  25. 25. Cosinus-Koeffizient
  26. 26. Cosinus-Koeffizient gleich: sim=1.0 orthogonal: sim=0.0 ähnlich: 1 < sim > 0
  27. 27. Ziel von Dokumenten-Clustering
  28. 28. 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
  29. 29. Vorteile von Clustering
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. co2alarm.com - clustered green headlines
  35. 35. • 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
  36. 36. Quellen
  37. 37. http://web.media.mit.edu/~dustin/rubyai.html 1. 2. 3.
  38. 38. 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.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×