dataanalysis.docvectors
Class Documentvector

java.lang.Object
  |
  +--dataanalysis.docvectors.Documentvector

public class Documentvector
extends java.lang.Object
implements java.lang.Comparable, java.io.Serializable

h?lt eine Variable bereit, die der Vectorizer bei der Vektorisierung von Dokumenten an den Classifier ?bergeben kann. Der Documentvector wird aus Platzgruenden spaerlich repraesentiert.

Version:
1.8 (04.10.1999)
Author:
Michael Banken, Andre Masloch (1.5, 1.6, 1.8)
See Also:
Vectorizer, Classifier, Serialized Form

Field Summary
protected  double cacheAbsoluteLength
          speichert die Summe aller besetzten Positionen, um die Berechnung der absoluten Laenge durch absoluteLength() zu beschleunigen.
protected  double cacheEuklidLength
          speichert die Summe der Quadrate aller besetzten Positionen, um die Berechnung der euklischen Laenge durch euklidLength() zu beschleunigen.
private  java.util.TreeMap elements
          enth?lt die Elemente des Dokumentvektors.
Als keys der TreeMap werden Integer benutzt, die values sind vom Typ Double.

private  int theDimension
          speichert die Dimension des Vektors f?r interne Zwecke.
 
Constructor Summary
Documentvector()
           
 
Method Summary
 double absoluteDistanceTo(Documentvector v)
          berechnet die Distanz zwischen diesem und dem uebergebenen Documentvector.
 double absoluteLength()
          berechnet die Laenge des Documentvectors in der absolut-Norm.
 void addElement(int position, double value)
          f?gt ein Element zum Dokumentvektor an der Stelle position hinzu.
 int compareTo(java.lang.Object o)
          fuehrt einen Vergleich zwischen diesem und dem uebergebenen Documentvector durch.
 double cosineAbsoluteAngle(Documentvector v)
          berechnet das absolut-Cosinusmass zwischen diesem und dem uebergebenen Documentvector.
 double cosineEuklidAngle(Documentvector v)
          berechnet das euklidsche Cosinusmass zwischen diesem und dem uebergebenen Documentvector.
 int dimension()
          gibt die Dimension des Dokumentvektors zur?ck.
 double dotProduct(Documentvector v)
          berechnet das Skalarprodukt zwischen diesem und dem uebergebenen Documentvector.
 double euklidDistanceTo(Documentvector v)
          berechnet die Distanz zwischen diesem und dem uebergebenen Documentvector.
 double euklidLength()
          berechnet die Laenge des Documentvectors in der euklidschen Norm.
 double get(int pos)
          Ein Alias fuer getElement(int).
 double getElement(int pos)
          liefert den Wert des Vektors an der Stelle pos.
 java.util.Set getPositions()
          gibt alle besetzten Positionen als Set zurueck.
 void normalizeAbsolute()
          normalisiert den Documentvector nach der absolut-Norm
 void normalizeEuklid()
          normalisiert den Documentvector nach der euklidschen Norm.
 void set(int pos, double value)
          Ein Alias fuer setElement(int,double).
 void setElement(int pos, double value)
          setzt den Wert des Vektors an der Stelle pos auf "value".
 java.lang.String toString()
           
protected  void updateLengths()
          berechnet die zwischengespeicherten Werte der euklidschen und absoluten Laenge dieses Documentvectors neu.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

elements

private java.util.TreeMap elements
enth?lt die Elemente des Dokumentvektors.
Als keys der TreeMap werden Integer benutzt, die values sind vom Typ Double. Ein eigener Comparator wird nicht ben?tigt, da Integer Comparable sind.
Since:
1.0


theDimension

private int theDimension
speichert die Dimension des Vektors f?r interne Zwecke.
Die Dimension kann nur durch den Konstruktor gesetzt werden.
Since:
1.0


cacheEuklidLength

protected transient double cacheEuklidLength
speichert die Summe der Quadrate aller besetzten Positionen, um die Berechnung der euklischen Laenge durch euklidLength() zu beschleunigen.
Since:
1.5 (14.9.1999)

cacheAbsoluteLength

protected transient double cacheAbsoluteLength
speichert die Summe aller besetzten Positionen, um die Berechnung der absoluten Laenge durch absoluteLength() zu beschleunigen.
Since:
1.5 (14.9.1999)
Constructor Detail

Documentvector

public Documentvector()
Method Detail

get

public double get(int pos)
Ein Alias fuer getElement(int).
Since:
1.5 (14.9.1999)

getElement

public double getElement(int pos)
liefert den Wert des Vektors an der Stelle pos.
Parameters:
pos - steht f?r die Position im Vektor, von der der Wert ermittelt werden soll.
Returns:
Wert des Vektors an der ?bergebenen Position.
Since:
1.0

set

public void set(int pos,
                double value)
Ein Alias fuer setElement(int,double).
Since:
1.5 (14.9.1999)

setElement

public void setElement(int pos,
                       double value)
setzt den Wert des Vektors an der Stelle pos auf "value". Ist "value" 0.0, wird intern der Wert "gel?scht".
Parameters:
pos - steht f?r die Position im Vektor, f?r die der Wert neu gesetzt werden soll.
value - steht f?r den neu einzuf?genden Wert an der ?bergebenen Stelle.
Since:
1.0

addElement

public void addElement(int position,
                       double value)
f?gt ein Element zum Dokumentvektor an der Stelle position hinzu.
Parameters:
pos - steht f?r die Position, an der ein neues Element in den Vektor eingef?gt werden soll.
value - stellt den Wert des Elements dar, das neu eingef?gt werden soll.
Since:
1.0

dimension

public int dimension()
gibt die Dimension des Dokumentvektors zur?ck. Die Dimension eines Dokumentvektors ist gleich der hoechsten jemals besetzten Stelle des Vektors.
Returns:
die Dimension des Dokumentvektors.
Since:
1.0

getPositions

public java.util.Set getPositions()
gibt alle besetzten Positionen als Set zurueck.
Returns:
ein Set, in der alle Positionen vorhanden sind, die im Dokumentvektor einen Wert ungleich Null haben.
Since:
1.4 (9.9.1999)

dotProduct

public double dotProduct(Documentvector v)
berechnet das Skalarprodukt zwischen diesem und dem uebergebenen Documentvector. Der Documentvector bleibt dabei unveraendert.
Diese Methode prueft nicht nach, ob die Dimensionen der Vektorn uebereinstimmen, da keine mathematische Korrektheit erforderlich ist (Das Ergebnis ist natuerlich korrekt, es werden lediglich die mathematischen Vorbedingungen ignoriert).
Parameters:
v - der Documentvector, mit dem das Skalarprodukt berechnet werden soll.
Returns:
das Skalarprodukt als double-Wert. Ist der uebergebene Documentvector null, so wird 0.0 zurueckgegeben.
Since:
1.5 (14.9.1999)


euklidLength

public double euklidLength()
berechnet die Laenge des Documentvectors in der euklidschen Norm.

Berechnungsformel:

L = sqrt(x12 + x22 + ... + xn2)
xk : k-te Stelle dieses Documentvectors.
n : Dimension dieses Documentvectors.
Returns:
die euklidsche Laenge nach der oben genannten Formel.
Since:
1.5 (14.9.1999)




absoluteLength

public double absoluteLength()
berechnet die Laenge des Documentvectors in der absolut-Norm.

Berechnungsformel:

L = x1 + x2 + ... + xn
xk : k-te Stelle dieses Documentvectors.
n : Dimension dieses Documentvectors.
Returns:
die absolut-Laenge nach der oben genannten Formel.
Since:
1.5 (14.9.1999)




updateLengths

protected void updateLengths()
berechnet die zwischengespeicherten Werte der euklidschen und absoluten Laenge dieses Documentvectors neu. (z.B. nachdem der Documentvector neu geladen wurde)
Since:
1.5 (14.9.1999)
See Also:
euklidLength(), absoluteLength()

cosineEuklidAngle

public double cosineEuklidAngle(Documentvector v)
berechnet das euklidsche Cosinusmass zwischen diesem und dem uebergebenen Documentvector.
Returns:
das euklidsche Cosinusmass. Ist der uebergebene Documentvector null, oder mindestens eine Laenge 0.0, so wird 0.0 zurueckgegeben.

Berechnungsformel:

cv = (this.dotProduct(v))/(this.euklidLength() * v.euklidLength())
Since:
1.5 (14.9.1999)
See Also:
euklidLength()

cosineAbsoluteAngle

public double cosineAbsoluteAngle(Documentvector v)
berechnet das absolut-Cosinusmass zwischen diesem und dem uebergebenen Documentvector.
Returns:
das absolute Cosinusmass. Ist der uebergebene Documentvector null, oder mindestens eine Laenge 0.0, so wird 0.0 zurueckgegeben.

Berechnungsformel:

cv = (this.dotProduct(v))/(this.absoluteLength() * v.absoluteLength())
Since:
1.5 (14.9.1999)
See Also:
absoluteLength()

normalizeEuklid

public void normalizeEuklid()
normalisiert den Documentvector nach der euklidschen Norm.
Since:
1.5 (14.9.1999)
See Also:
euklidLength()

normalizeAbsolute

public void normalizeAbsolute()
normalisiert den Documentvector nach der absolut-Norm
Since:
1.5 (14.9.1999)
See Also:
absoluteLength()

euklidDistanceTo

public double euklidDistanceTo(Documentvector v)
berechnet die Distanz zwischen diesem und dem uebergebenen Documentvector. Die Vektoren werden subtrahiert. Anschliessend wird die Laenge des resultierenden Documentvectors in der euklidschen Norm berechnet.
Returns:
den Abstand der Vektoren in der euklidschen Norm. Ist der uebergebene Documentvector null, so wird 0.0 zurueckgegeben.
Since:
1.5 (14.9.1999)
See Also:
euklidLength()

absoluteDistanceTo

public double absoluteDistanceTo(Documentvector v)
berechnet die Distanz zwischen diesem und dem uebergebenen Documentvector. Die Vektoren werden subtrahiert. Anschliessend wird die Laenge des resultierenden Documentvectors in der absolut-Norm berechnet.
Returns:
den Abstand der Vektoren in der absolut-Norm. Ist der uebergebene Documentvector null, so wird 0.0 zurueckgegeben.
Since:
1.5 (14.9.1999)
See Also:
absoluteLength()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

compareTo

public int compareTo(java.lang.Object o)
              throws java.lang.ClassCastException
fuehrt einen Vergleich zwischen diesem und dem uebergebenen Documentvector durch. Die erste unterschiedliche Stelle zaehlt.
Specified by:
compareTo in interface java.lang.Comparable
Returns:
-1, wenn dieser Documentvector kleiner als das uebergebene Argument ist, 0, wenn dieser Documentvector gleich dem uebergebenen Argument ist, +1, wenn dieser Documentvector groesser als das uebergebene Argument ist,
Since:
1.7 (22.9.1999)