SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Andere mochten auch

091204 Vhs Literaturgeschichte I Antike
091204 Vhs  Literaturgeschichte  I  Antike091204 Vhs  Literaturgeschichte  I  Antike
091204 Vhs Literaturgeschichte I Antike
Joerg Hartmann
 
Erzähler Tristan Letztes Kapitel Rossbach
Erzähler  Tristan Letztes  Kapitel  RossbachErzähler  Tristan Letztes  Kapitel  Rossbach
Erzähler Tristan Letztes Kapitel Rossbach
Joerg Hartmann
 
Die Geschichten Des Nobelpreises PräSentation
Die Geschichten Des Nobelpreises PräSentationDie Geschichten Des Nobelpreises PräSentation
Die Geschichten Des Nobelpreises PräSentation
Joerg Hartmann
 
Hotel Schloss Wilhelminenberg
Hotel Schloss WilhelminenbergHotel Schloss Wilhelminenberg
Hotel Schloss Wilhelminenberg
hanhdoan
 
Stress, Stress Management And Wellness Linked In
Stress, Stress Management And Wellness Linked InStress, Stress Management And Wellness Linked In
Stress, Stress Management And Wellness Linked In
cindyhardy
 
Vortrag Sans Papiers 7.9.2005
Vortrag Sans Papiers 7.9.2005Vortrag Sans Papiers 7.9.2005
Vortrag Sans Papiers 7.9.2005
sosf.ch
 

Andere mochten auch (20)

091204 Vhs Literaturgeschichte I Antike
091204 Vhs  Literaturgeschichte  I  Antike091204 Vhs  Literaturgeschichte  I  Antike
091204 Vhs Literaturgeschichte I Antike
 
Spanischkurs für Juristen | Spanischkurs fuer Anwälte | Spanisch sprachkurs f...
Spanischkurs für Juristen | Spanischkurs fuer Anwälte | Spanisch sprachkurs f...Spanischkurs für Juristen | Spanischkurs fuer Anwälte | Spanisch sprachkurs f...
Spanischkurs für Juristen | Spanischkurs fuer Anwälte | Spanisch sprachkurs f...
 
Erzähler Tristan Letztes Kapitel Rossbach
Erzähler  Tristan Letztes  Kapitel  RossbachErzähler  Tristan Letztes  Kapitel  Rossbach
Erzähler Tristan Letztes Kapitel Rossbach
 
Keynote (DE): Beyond Budgeting Transformation, at Cognos Performance 2008, Ma...
Keynote (DE): Beyond Budgeting Transformation, at Cognos Performance 2008, Ma...Keynote (DE): Beyond Budgeting Transformation, at Cognos Performance 2008, Ma...
Keynote (DE): Beyond Budgeting Transformation, at Cognos Performance 2008, Ma...
 
Die Geschichten Des Nobelpreises PräSentation
Die Geschichten Des Nobelpreises PräSentationDie Geschichten Des Nobelpreises PräSentation
Die Geschichten Des Nobelpreises PräSentation
 
Hotel Schloss Wilhelminenberg
Hotel Schloss WilhelminenbergHotel Schloss Wilhelminenberg
Hotel Schloss Wilhelminenberg
 
Keynote (DE): Führen mit flexiblen Zielen, at Trendkongress Cologne/D, organi...
Keynote (DE): Führen mit flexiblen Zielen, at Trendkongress Cologne/D, organi...Keynote (DE): Führen mit flexiblen Zielen, at Trendkongress Cologne/D, organi...
Keynote (DE): Führen mit flexiblen Zielen, at Trendkongress Cologne/D, organi...
 
Bebeu
BebeuBebeu
Bebeu
 
Top Destinationen für Ihren Sprachaufenthalt
Top Destinationen für Ihren SprachaufenthaltTop Destinationen für Ihren Sprachaufenthalt
Top Destinationen für Ihren Sprachaufenthalt
 
Africa
AfricaAfrica
Africa
 
Buster
BusterBuster
Buster
 
Zivilgesellschaftliche Organisationen und Social Media: Drängendste Fragen z...
Zivilgesellschaftliche Organisationen und Social Media:  Drängendste Fragen z...Zivilgesellschaftliche Organisationen und Social Media:  Drängendste Fragen z...
Zivilgesellschaftliche Organisationen und Social Media: Drängendste Fragen z...
 
Stress, Stress Management And Wellness Linked In
Stress, Stress Management And Wellness Linked InStress, Stress Management And Wellness Linked In
Stress, Stress Management And Wellness Linked In
 
Vortrag Sans Papiers 7.9.2005
Vortrag Sans Papiers 7.9.2005Vortrag Sans Papiers 7.9.2005
Vortrag Sans Papiers 7.9.2005
 
Martin Delius: "Transparente Politik kapern mit Social Media?"
Martin Delius: "Transparente Politik kapern mit Social Media?"Martin Delius: "Transparente Politik kapern mit Social Media?"
Martin Delius: "Transparente Politik kapern mit Social Media?"
 
100.000 Jobs
100.000 Jobs100.000 Jobs
100.000 Jobs
 
Khys
KhysKhys
Khys
 
ARBRES PRECIOSOS
ARBRES PRECIOSOSARBRES PRECIOSOS
ARBRES PRECIOSOS
 
Families
FamiliesFamilies
Families
 
Der Kölner UniversitätsGesamtkatalog (KUG)
Der Kölner UniversitätsGesamtkatalog (KUG)Der Kölner UniversitätsGesamtkatalog (KUG)
Der Kölner UniversitätsGesamtkatalog (KUG)
 

Dokumenten Clustering

  • 1. Dokumenten-Clustering * *(mit ActiveRecord) Ramon Wartala Rails Konferenz - 10.6.2008
  • 2. Kollektive Intelligenz •Wisdom of the crowds •Collective intelligence •Selbstorganisation •Schwarmintelligenz
  • 3. Wie schwer ist diese Kuh?
  • 6. Was sind relevante Informationen?
  • 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. Linguististe Textanalyse Linguistisches Level Textanalyseverfahren lexikalisch Stopwortliste, Lexikon steigende morphologisch Wortstammanalyse Komplexität statistische und syntaktisch grammatikalische Regeln semantische Thesaurus pragmatisch Expertensysteme
  • 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. 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. 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. Alles zusammen Text in Wörter trennen Kurze Worte & Stopwörter filtern Nur Nomen Wort & Wortstamm
  • 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. 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. Term-Gewicht freqij N wij= tfij * idfi = * log maxl(freqlj) ni Das Gewicht w eines Terms i im Dokument j
  • 17. Ergebnis: Dokumenten Vektorraummodell Term1 Dokument1= (Term1, Term22, Term56) Dokument1= (Term11, Term13, Term42) Term3 Term2
  • 19. Ähnlichkeit von Dingen = Korrelationsmaß
  • 20. Korrelationsmaße • Nummerisches • Skalarprodukt Maß für die Ähnlichkeit • Cosinus zweier N- • Dice-Koeffiient Dimensionaler Vektoren • Jaccard- Koeffizeint • Overlap- Koeffizient
  • 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. Termgewichtung Term Dokument1 Dokument2 Apfel 1 0 Birne 0 1 Mango 0,2 0,8 Kiwi 0,5 0,5 Pflaume 0 1
  • 23. Invertierte Liste Termfreq > 0.5 Apfel Dokument1 Birne Dokument2 Mango Dokument2 Kiwi Pflaume Dokumen2
  • 24. Dokumenten-Vektor als Hash • dokument1={”Apfel” 1, ”Kiwi” 0.5} • dokument2={”Birne” 1, ”Mango” 0.8, ”Kiwi” 0.5}
  • 26. Cosinus-Koeffizient gleich: sim=1.0 orthogonal: sim=0.0 ähnlich: 1 < sim > 0
  • 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
  • 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. 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. 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. 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. co2alarm.com - clustered green headlines
  • 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.
  • 39. 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.