07.01.2013 Aufrufe

Konzeption und Implementierung eines ... - Stephan, Daniel

Konzeption und Implementierung eines ... - Stephan, Daniel

Konzeption und Implementierung eines ... - Stephan, Daniel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Roh-Matrix<br />

anlegen<br />

Term-Frequenz-Matrix aufbauen<br />

mittels TF-IDF<br />

gewichten<br />

LSI anwenden<br />

89 7.4. CLUSTER ANALYSE<br />

DONE<br />

Dokument<br />

Vektoren aus den<br />

LSI Ergebnissen<br />

selektieren<br />

Cluster erkennen<br />

EM Clustering<br />

anwenden<br />

Abbildung 7.4.: Ablauf Cluster Analyse<br />

Cluster benennen<br />

untereinander verglichen werden, Dokumente untereinander verglichen werden<br />

<strong>und</strong> wie neue Dokumente in den Vektor-Raum ” eingefaltet“ werden, damit sie<br />

vergleichbar sind. Die Formeln dazu stehen in Abschnitt 5.3.4.<br />

7.4. Cluster Analyse<br />

Aus den Ergebnissen werden die Dokumentvektoren extrahiert <strong>und</strong> an den Clu-<br />

stering Algorithmus übergeben. Danach werden Namen vergeben.<br />

Für die Algorithmen, die im Zusammenhang mit dem Clustering nötig<br />

waren, wurde das Strategy-Pattern ([GHJV96]) verwendet. Jeder wichti-<br />

ge Algorithmus, sei es für die Zuweisung von Dokumenten zu Clustern<br />

(ClusterAssignmentStrategy) oder für das Durchführen des Clustering Algo-<br />

rithmus (ClusterStrategy) wird mit einer Schnittstelle ausgestattet, die ihn<br />

von dem Code, der ihn benutzt, entkoppelt. Dadurch ist es möglich, die verwen-<br />

dete Implementation flexibel auszutauschen. Im Diagramm sind beispielsweise<br />

zwei ClusterStrategy-Implementationen aufgeführt. Welche davon zur An-<br />

wendung kommt, entscheidet sich sobald der ClusterContext erzeugt <strong>und</strong> mit<br />

einer spezifischen Implementation initialisiert wurde.<br />

Die EMClusterStrategy Klasse implementiert der Einfachheit halber gleich<br />

zwei Schnittstellen <strong>und</strong> verhält sich als ihr eigenes Ergebnis-Objekt. Durch diese<br />

Aufteilung der Schnittstellen ist es möglich, dass der Algorithmus nach der<br />

Arbeit ein anderes Objekt erzeugt <strong>und</strong> dieses als Ergebnis zurückliefert. Es mag,<br />

je nach Arbeitsweise des Algorithmus, sinnvoll sein, dies zu tun. In diesem Falle<br />

ging es auch so <strong>und</strong> auf eine Extra-Klasse für die Ergebnisse konnte verzichtet

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!