dataanalysis.classifiers
Class SVMClassifier

java.lang.Object
  |
  +--dataanalysis.databases.DatabaseElement
        |
        +--dataanalysis.classifiers.Classifier
              |
              +--dataanalysis.classifiers.SVMClassifier

public class SVMClassifier
extends Classifier

Support Vector Maschine (Structural Risc Minimization) Diese SVM stuetzt sich auf das von Heloise Hse (Universitaet Berkely) implementierte Java-Interface jSVM fuer die von Thorsten Joachims (Universitaet Dortmund) in C programmierte SVM. Das Programmpaket wurde so eingebunden, dass die Hauptmethoden train und classify erhalten blieben. Unterschiede bestehen darin, dass in der Trainingsmethode eine Modell-Datei erstellt wird. Die Klassifikation benoetigt diese Datei um das neue Dokument mit den erstellten Trainingsdaten einordnen zu koennen.

Version:
1.2 (13.10.1999)
Author:
Michael Banken
See Also:
Classifier, Serialized Form

Field Summary
protected  double countDocu
          speichert die Anzahl der Dokumente (positiv und negativ)
 Documentvector dfVector
          speichert die Document Frequency eines jeden Wortes aus dem Feature-Woerterbuch, d.h.
protected  java.lang.String modellFileName
          Filename fuer die Modell-Datei aus dem Trainingsmodus
protected  java.util.TreeMap negDocu
          speichert die negativen Dokumente aus der Trainingsmenge
protected  java.util.TreeMap posDocu
          speichert die positiven Dokumente aus der Trainingsmenge
protected  java.util.TreeMap tfIDFVectors
          hier werden die Dokumente mit ihrer TF-IDF-Gewichtung abgelegt
 
Fields inherited from class dataanalysis.classifiers.Classifier
documents, moreDictionaries, moreDictionariesNames, myDatabase, theVectorizer, theVectorizerName, THRESHOLD, untrainedExamples, wordDictionary, wordDictionaryName
 
Fields inherited from class dataanalysis.databases.DatabaseElement
elementname
 
Constructor Summary
SVMClassifier()
           
SVMClassifier(ClassifierDatabase theDB)
           
 
Method Summary
 NetEntity classify(NetEntity document)
          Das uebergebene Dokument wird unter zu Hilfenahme des Vektorisieres, des Lexikons und der Trainingsmenge klassifiziert und eingestuft.
 java.lang.String getModellFileName()
          gibt den gesetzten Namen den Modell-Datei aus (Trainingsmodus)
 int setDFVector()
          Ermittelt die Haeuifigkeit mit der die verschiedenen Worte in den Trainingsbeispielen vorkommen.
 void setModellFileName(java.lang.String name)
          setzt den Namen der Modell-Datei aus dem Trainingsmodus
 Documentvector tf2TFIDF(Documentvector docVec)
          Fuer die TF-IDF-Gewichtung muss der uebergebene Vektor der in der TF-Form vorliegt in TF-IDF-Form konvertiert werden.
 int train()
          startet das Training der SVM auf den vorhandenen Daten und den neu durch "addExample" hinzugefuegten Beispielen.
 
Methods inherited from class dataanalysis.classifiers.Classifier
addExample, addExample, checkVariables, convert, getThreshold, setDatabase, setThreshold, toString
 
Methods inherited from class dataanalysis.databases.DatabaseElement
getElementname, logMessage, setElementname
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

posDocu

protected java.util.TreeMap posDocu
speichert die positiven Dokumente aus der Trainingsmenge
Since:
1.2

negDocu

protected java.util.TreeMap negDocu
speichert die negativen Dokumente aus der Trainingsmenge
Since:
1.2

dfVector

public transient Documentvector dfVector
speichert die Document Frequency eines jeden Wortes aus dem Feature-Woerterbuch, d.h. die Haeufigkeit eines Wortes in den verschiedenen Dokumenten
Since:
1.2

tfIDFVectors

protected java.util.TreeMap tfIDFVectors
hier werden die Dokumente mit ihrer TF-IDF-Gewichtung abgelegt
Since:
1.1

modellFileName

protected java.lang.String modellFileName
Filename fuer die Modell-Datei aus dem Trainingsmodus
Since:
1.1

countDocu

protected double countDocu
speichert die Anzahl der Dokumente (positiv und negativ)
Constructor Detail

SVMClassifier

public SVMClassifier()

SVMClassifier

public SVMClassifier(ClassifierDatabase theDB)
Method Detail

setDFVector

public int setDFVector()
Ermittelt die Haeuifigkeit mit der die verschiedenen Worte in den Trainingsbeispielen vorkommen.
Returns:
die Dimension des DF-Vektors
Since:
1.1

tf2TFIDF

public Documentvector tf2TFIDF(Documentvector docVec)
Fuer die TF-IDF-Gewichtung muss der uebergebene Vektor der in der TF-Form vorliegt in TF-IDF-Form konvertiert werden.
Parameters:
docVec - der TF-Vektor
Returns:
newVec der TF-IDF-Vektor
Since:
1.1

setModellFileName

public void setModellFileName(java.lang.String name)
setzt den Namen der Modell-Datei aus dem Trainingsmodus

getModellFileName

public java.lang.String getModellFileName()
gibt den gesetzten Namen den Modell-Datei aus (Trainingsmodus)
Since:
1.1

train

public int train()
startet das Training der SVM auf den vorhandenen Daten und den neu durch "addExample" hinzugefuegten Beispielen. 1 = Daten wurden eingelesen und das Modell konnte erstellt werden 0 = Daten konnten nicht eingelesen werden
Returns:
Kodierung f?r eine Meldung (optional).
Overrides:
train in class Classifier

classify

public NetEntity classify(NetEntity document)
Das uebergebene Dokument wird unter zu Hilfenahme des Vektorisieres, des Lexikons und der Trainingsmenge klassifiziert und eingestuft. Wichtig fuer die Klassifizierung ist das durchgefuehrte Training. In der Trainingsmethode selbst wurde ein Modell-File erstellt. Diese Datei muss fuer die Klassifizierung geladen werden. Ist dies nicht moeglich, so kann der Klassifizierer (SVM) seine Arbeit nicht aufnehmen. Abgeleitet aus dem Testlauf fuer die jSVM-Methode: loadModelAndClassify.
Parameters:
document - beinhaltet das zu klassifizierende Dokument.
Returns:
Ausgabe des klassifizierten Dokuments.
Overrides:
classify in class Classifier