Dokumenten Clustering
-
Upload
ramon-wartala -
Category
Technology
-
view
2.157 -
download
0
description
Transcript of Dokumenten Clustering
![Page 1: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/1.jpg)
Dokumenten-Clustering (mit ActiveRecord)
Ramon Wartala
Rails Konferenz - 10.6.2008
**
![Page 2: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/2.jpg)
Kollektive Intelligenz
•Wisdom of the crowds•Collective intelligence•Selbstorganisation•Schwarmintelligenz
![Page 3: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/3.jpg)
Wie schwer ist diese Kuh?
![Page 4: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/4.jpg)
Information overload!!!
![Page 5: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/5.jpg)
Clustering: Gruppen ähnlicher Dinge finden
![Page 6: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/6.jpg)
Was sind relevante Informationen?
![Page 7: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/7.jpg)
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“
![Page 8: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/8.jpg)
Linguistisches Level Textanalyseverfahren
lexikalisch Stopwortliste, Lexikon
morphologisch Wortstammanalyse
syntaktisch statistische und grammatikalische Regeln
semantische Thesaurus
pragmatisch Expertensysteme
Linguististe Textanalyse
steigendeKomplexität
![Page 9: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/9.jpg)
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'
![Page 10: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/10.jpg)
Part-of-speech-taggingThis 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
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
![Page 11: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/11.jpg)
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
![Page 12: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/12.jpg)
Alles zusammenText in Wörter
trennen
Kurze Worte & Stopwörter filtern
Nur Nomen
Wort & Wortstamm
![Page 13: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/13.jpg)
Term-Gewichte
![Page 14: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/14.jpg)
Term-Frequenz
tfij=freqij
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).
![Page 15: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/15.jpg)
Inverse Dokumenten frequenz
Die inverse Dokumentfrequenz idf hängt hingegen nicht vom einzelnen
Dokument, sondern vom Dokumentkorpus, der Gesamtmenge
aller Dokumente im ab
idfi= log ni
N
![Page 16: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/16.jpg)
Term-Gewicht
wij= tfij * idfi =freqij
maxl(freqlj)log ni
N*
Das Gewicht w eines Terms i im Dokument j
![Page 17: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/17.jpg)
Term1
Term2
Term3
Dokument1= (Term1, Term22, Term56)
Ergebnis: Dokumenten Vektorraummodell
Dokument1= (Term11, Term13, Term42)
![Page 18: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/18.jpg)
Document < ActiveRecord::Base
![Page 19: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/19.jpg)
Ähnlichkeit von Dingen = Korrelationsmaß
![Page 20: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/20.jpg)
Korrelationsmaße• Skalarprodukt
• Cosinus
• Dice-Koeffiient
• Jaccard-Koeffizeint
• Overlap-Koeffizient
• Nummerisches Maß für die Ähnlichkeit zweier N-Dimensionaler Vektoren
![Page 21: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/21.jpg)
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
![Page 22: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/22.jpg)
Termgewichtung
Term Dokument1 Dokument2
Apfel 1 0
Birne 0 1
Mango 0,2 0,8
Kiwi 0,5 0,5
Pflaume 0 1
![Page 23: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/23.jpg)
Invertierte ListeTermfreq > 0.5
Apfel Dokument1
Birne Dokument2
Mango Dokument2
Kiwi
Pflaume Dokumen2
![Page 24: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/24.jpg)
Dokumenten-Vektor als Hash
• dokument1={”Apfel”⇒1, ”Kiwi”⇒0.5}
• dokument2={”Birne”⇒1, ”Mango”⇒0.8, ”Kiwi”⇒0.5}
![Page 25: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/25.jpg)
Cosinus-Koeffizient
![Page 26: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/26.jpg)
Cosinus-Koeffizient
gleich: sim=1.0 orthogonal: sim=0.0 ähnlich: 1 < sim > 0
![Page 27: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/27.jpg)
Ziel von Dokumenten-Clustering
![Page 28: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/28.jpg)
• 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
Ziele von Dokumenten Clustering
![Page 29: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/29.jpg)
Vorteile von Clustering
![Page 30: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/30.jpg)
• 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
Vorteile von Clustering
![Page 31: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/31.jpg)
• 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
![Page 32: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/32.jpg)
1. Lege k fest
2. Erzeuge k-Cluster (Zentroide)
3. Verteile alle Dokumente zufällig auf die Zentroide
4. Berechne Zentrodie als Durchschnittsvektor aller Dokumentenvektoren
5. Vergleiche jeden Dokumentenvektor mit jedem Zentroid
6. Verschiebe Dokumente zu Zentroiden mit der höchsten Ähnlichkeit
7. Fertig, wenn kein Dokument mehr verschoben wird. Sonst zu Schritt 4 zurück
k-means Algorithmus
![Page 33: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/33.jpg)
D1
D2
D4
D5
D3
D1
D2
D4
D5
D3Z1
Z2
D1
D2
D4
D5
D3
Z1
Z2
D1
D2
D4
D5
D3Z1
Z2Z1
Z2
![Page 34: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/34.jpg)
co2alarm.com - clustered green headlines
![Page 35: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/35.jpg)
• 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
![Page 36: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/36.jpg)
![Page 37: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/37.jpg)
Quellen
![Page 38: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/38.jpg)
http://web.media.mit.edu/~dustin/rubyai.html
1. 2. 3.
![Page 39: Dokumenten Clustering](https://reader034.fdocuments.in/reader034/viewer/2022051311/5456405caf795998788b4cf3/html5/thumbnails/39.jpg)
Kontakt
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.
[email protected]/profile Ramon_Wartalatwitter.com/rawar