120 likes | 293 Views
Projekt. Cluster-. Präsentiert von Dominik Henn & Torben Pastuch am Seminar für Computerlinguistik der Uni Heidelberg Datum: 28.01.2002. Was ist Cluster-X ?. Cluster-X. ist eine Windows-Anwendung. fasst thematisch ähnliche Dokumente zu Clustern zusammen.
E N D
Projekt Cluster- Präsentiert von Dominik Henn & Torben Pastuch am Seminar für Computerlinguistik der Uni Heidelberg Datum: 28.01.2002
Was ist Cluster-X ? Cluster-X... • ist eine Windows-Anwendung • fasst thematisch ähnliche Dokumente zu Clustern zusammen • ermöglicht die Ausweitung einer bool´schen Suche • verwendet hierzu den Oh!™ Algorithmus(Oh!™ = Orphan Hunting! & Topic Merging)
Entwicklung • Cluster-X wurde in C++ unter MS-Windows entwickelt • Es wurde Wert auf kurze Laufzeiten gelegt • Verwendete Bibliotheken: - MFC für die GUI - selbst entwickelte Matrix- & Vektorklassen
Die Architektur Korpus IRPreProcess SearchResults ClusterView DocTermMatrix IRBoolSearch DisplayEngine TermList DocumentList IRCluster Cluster
Die Technik • Oh!™ basiert auf dem k-Means Algorithmus • Dieser wird durch verschiedene Elemente erweitert TopicMerging OrphanHunting k-Means Oh!™
k-Means Erzeuge k ZV Ordne DV zufällig den ZV zu Berechne neue ZV Ordne DV den jeweils ähnlichsten ZV zu Neuzuordnung? Ja Nein Termination ZV = Zentroidvektor DV = Dokumentvektor
Topic Merging Orphan Hunting Oh!™-Algorithmus Erzeuge n ZV (n = Anz. der Dok.) Exisitieren 2 ähnliche ZV? Ja Lösche den nun leeren ZV Ordne jedem ZV genau einen DV zu Nein Berechne neue ZV Übertrage DV in ähnlichen ZV Diese beiden Vorgänge werden nur ausgeführt, wenn eine festgesetzte Ähnlichkeit überschritten wird Ordne DV den jeweils ähnlichsten ZV zu Lösche den nun leeren ZV • ZV mit nur einem zug. DV? Ja Ordne DV dem nächst ähnlichen ZV zu Nein Neuzuordnung? Ja Termination Nein
Datenstrukturen • Für Cluster-X wurden 3 angepasste Datentypen verwendet • CVector<TYPE> • (Hilfsklasse für Operationen mit Vektoren) • CMatrix<TYPE> • (Speicherung der Zentroiden) • CSparseDataMatrix<TYPE> • (Speicherung der Dokument-Term-Matrix)
SparseDataMatrix • CSparseDataMatrix<TYPE> ist auf Speicherung von Matrizen mit überwiegend nicht verwendeten Elementen zugeschnitten (0-Werte) Originalmatrix SparseDataMatrix • Beispielersparniss:Dokument-Term-Matrix (Bibel-Korpus) • Originalmatrix: >10.000 KByte SparseDataMatrix: 880 KByte
Nun zur Praxis... Ihre Optionen: 1) Cluster-X starten 2) Zigarettenpause
Probleme & ToDo • Extrem hohe Speicherbelastung • Temporäre Berechnung der ZV • Latent Semantic Indexing (SVD) • Korpusabhängige Idealparameter • evtl. mashine learning Methoden (user feedback) • Parameterabhängige Laufzeiten (worst case: O(n²)) • Lösung N/A (algorithmusinhärent)
The End... Dozentin: Priv.-Doz. Dr. Karin Haenelt Ort: Seminar für Computerlinguistik / Uni Heidelberg Veranstaltung: Information Retrieval (WS2001/02)