dataanalysis.dictionaries
Class StringBasedDictionary

java.lang.Object
  |
  +--dataanalysis.databases.DatabaseElement
        |
        +--dataanalysis.dictionaries.Dictionary
              |
              +--dataanalysis.dictionaries.StringBasedDictionary

public class StringBasedDictionary
extends Dictionary

unterst?tzt den Classifier bei der Klassifizierung von Texten, da das Dictionary STOP-Listen, Synonyme etc. enth?lt. Aber auch der Vectorizer besitzt die M?glichkeit auf das Dictionary zuzugreifen.
Die Implementierung basiert auf dem direkten Abspeichern der Worte in einem Baum. Daher sollte diese Version nur bei kleinen oder bei sehr disjunkten Wortmengen benutzt werden.

Version:
1.4 (14.12.1999)
Author:
Andre Masloch
See Also:
Classifier, Vectorizer, Serialized Form

Field Summary
private  boolean isCaseSensitive
          Legt fest, ob das Dictionary Case-sensitive ist.
private  java.util.TreeMap nameNumberTranslation
          Dient zur schnelleren Implementierung des Vektorisierers.
private  java.util.TreeMap numberNameTranslation
          Dient zur schnelleren Implementierung des Dictionaries.
protected  java.lang.String queriedWord
          beinhalted das abgefragte Wort aus getFirstRelated(String).
protected  java.lang.String relatedWord
          beinhalted das Wort, das der letzte Aufruf von getNextRelated() zurueckgeliefert hat.
protected  java.util.TreeMap relatedWords
          beinhalted alle verwandten Woerter von queriedWord nach Aufruf von getFirstRelated(String).
protected  java.util.Iterator relatedWordsIterator
          dient als Iterator fuer getNextRelated().
private  java.util.TreeMap wordList
          Alle W?rter werden in einer TreeMap gespeichert.
 
Fields inherited from class dataanalysis.dictionaries.Dictionary
isCaseSensitive, lastNumber, queriedWord, relatedWord, relationValue, wordCount
 
Fields inherited from class dataanalysis.databases.DatabaseElement
elementname
 
Constructor Summary
StringBasedDictionary()
          Ruft einfach StringBasedDictionary(boolean) mit dem Parameterwert false auf.
StringBasedDictionary(boolean vIsCaseSensitive)
           
 
Method Summary
 int addRelation(java.lang.String word1, java.lang.String word2, double value)
          f?gt eine Gewichtung der Beziehung zwischen zwei Eintr?gen word1 und word2 ein.
Die Relationen sind nicht kommutativ.
Bei der Erstellung der Beziehungen muss darauf geachtet werden, da? keine Zirkel entstehen!


 int addWord(java.lang.String word)
          f?gt ein neues Wort word ins Lexikon ein.
 int count()
          gibt die Anzahl der W?rter im W?rterbuch zur?ck.
 int deleteRelation(java.lang.String word1, java.lang.String word2)
          l?scht eine Relation zwischen den beiden Worten word1 und word2.
 int deleteWord(java.lang.String word)
          l?scht ein Wort word aus dem Dictionary.
 java.lang.String getFirstRelated(java.lang.String word)
          liefert das erste verwandte Wort zu word.
 java.lang.String getNextRelated()
          gibt das n?chste verwandte Wort zu "queriedWord" zur?ck, und setzt gleichzeitig relatedWord Ist kein weiteres Wort vorhanden, wird ein leerer String zur?ckgegeben.
 double getRelationValue(java.lang.String word1, java.lang.String word2)
          liefert den Wert der Relation zwischen den beiden Worten word1 und word2.
 java.lang.String getWord(int number)
          liefert das Element number des W?rterbuches zur?ck.
protected  java.util.TreeMap newTreeMap()
          Hilfsfunktion, um eine neue TreeMap zu erzeugen...
 int numberOf(java.lang.String word)
           
 int optimize()
          sorgt f?r eine Strukturierung der W?rter im W?rterbuch.
 boolean queryWord(java.lang.String word)
          gibt zur?ck, ob das abgefragte Wort word im W?rterbuch vorhanden ist.
 double relatedValue()
          liefert den Wert der Relation zurueck, der zwischen dem queriedWord und dem relatedWord besteht.
 java.lang.String toString()
           
 
Methods inherited from class dataanalysis.dictionaries.Dictionary
newInstance
 
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

isCaseSensitive

private boolean isCaseSensitive
Legt fest, ob das Dictionary Case-sensitive ist. Diese Eigenschaft kann nur waehrend der Erzeugung des Dictionary festgelegt werden!
Ist diese Eigenschaft true, so werden alle internen Vergleiche ohne Beruecksichtigung der Gross-/Kleinschreibung durchgefuehrt.
Since:
1.1


queriedWord

protected transient java.lang.String queriedWord
beinhalted das abgefragte Wort aus getFirstRelated(String).
Since:
1.1

relatedWord

protected transient java.lang.String relatedWord
beinhalted das Wort, das der letzte Aufruf von getNextRelated() zurueckgeliefert hat.
Since:
1.1

relatedWords

protected transient java.util.TreeMap relatedWords
beinhalted alle verwandten Woerter von queriedWord nach Aufruf von getFirstRelated(String).
Since:
1.1

relatedWordsIterator

protected transient java.util.Iterator relatedWordsIterator
dient als Iterator fuer getNextRelated().
Since:
1.1

wordList

private java.util.TreeMap wordList
Alle W?rter werden in einer TreeMap gespeichert. Als Schluessel dient das Wort selbst, als Wert wird eine TreeMap mit allen verwandten Woertern benutzt (Wort = Schluessel, Wert = Double).

nameNumberTranslation

private java.util.TreeMap nameNumberTranslation
Dient zur schnelleren Implementierung des Vektorisierers. Ordnet jedem Wort die Nummer im Dictionary zu.
Since:
1.2

numberNameTranslation

private java.util.TreeMap numberNameTranslation
Dient zur schnelleren Implementierung des Dictionaries. Ordnet jeder Nummer das richtige Wort im Dictionary zu.
Since:
1.2
Constructor Detail

StringBasedDictionary

public StringBasedDictionary(boolean vIsCaseSensitive)
Parameters:
vIsCaseSensitive - legt fest, ob im Dictionary zwischen Gross-/Kleinschreibung unterschieden wird.
Since:
1.1

StringBasedDictionary

public StringBasedDictionary()
Ruft einfach StringBasedDictionary(boolean) mit dem Parameterwert false auf.
Since:
1.4
Method Detail

addWord

public int addWord(java.lang.String word)
            throws ElementExistsException
f?gt ein neues Wort word ins Lexikon ein.
Parameters:
word - steht f?r das Wort, das ins Lexikon eingef?gt werden soll.
Returns:
R?ckgabe der Position, an der das neue Wort im Lexikon abgespeichert wurde.
Throws:
ElementExistsException - Das einzuf?gende Wort existiert bereits im W?rterbuch.
Overrides:
addWord in class Dictionary

deleteWord

public int deleteWord(java.lang.String word)
               throws DictionaryWordNotFoundException
l?scht ein Wort word aus dem Dictionary.
Parameters:
word - steht f?r das Wort, das auch den W?rterbuch gel?scht werden soll.
Returns:
Kodierung f?r eine Meldung (optional)
Throws:
DictionaryWordNotFoundException - Das zu l?schende Wort existiert in dem W?rterbuch nicht.
Overrides:
deleteWord in class Dictionary

addRelation

public int addRelation(java.lang.String word1,
                       java.lang.String word2,
                       double value)
                throws DictionaryWordNotFoundException
f?gt eine Gewichtung der Beziehung zwischen zwei Eintr?gen word1 und word2 ein.
Die Relationen sind nicht kommutativ.
Bei der Erstellung der Beziehungen muss darauf geachtet werden, da? keine Zirkel entstehen!
Parameters:
word1 - steht f?r den ersten Einstrag, f?r den eine Gewichtung eingef?gt werden soll.
word2 - steht f?r den zweiten Eintrag, f?r den eine Gewichtung eingef?gt werden soll.
value - steht f?r den Wert der Gewichtung zwischen den beiden W?rtern.
Returns:
Kodierung einer Meldung (optional)
Throws:
DictionaryWordNotFoundException - Ein oder beide Woerter existieren nicht.
Overrides:
addRelation in class Dictionary



deleteRelation

public int deleteRelation(java.lang.String word1,
                          java.lang.String word2)
                   throws DictionaryRelationNotFoundException,
                          DictionaryWordNotFoundException
l?scht eine Relation zwischen den beiden Worten word1 und word2.
Parameters:
word1 - steht f?r den ersten Eintrag, f?r den die Relation gel?scht werden soll.
word2 - steht f?r den zweiten Eintrag, f?r den die Relation gel?scht werden soll.
Returns:
Kodierung einer Meldung (optional).
Throws:
DictionaryRelationNotFoundException - Es existiert keine Relation zwischen den beiden angebebenen W?rtern.
DictionaryWordNotFoundException - Eins oder beide W?rter existieren nicht.
Overrides:
deleteRelation in class Dictionary

count

public int count()
gibt die Anzahl der W?rter im W?rterbuch zur?ck.
Returns:
die Ausgabe der Anzahl aller W?rter im W?rterbuch.
Overrides:
count in class Dictionary

getWord

public java.lang.String getWord(int number)
liefert das Element number des W?rterbuches zur?ck.
Parameters:
number - steht f?r die Position des Eintrags, der aus dem W?rterbuch gelesen werden soll.
Returns:
Ausgabe des Elements an der angegebenen Position im W?rterbuch. Ist die Position nicht im Woerterbuch vorhanden, so wird null zurueckgeliefert.
Overrides:
getWord in class Dictionary

queryWord

public boolean queryWord(java.lang.String word)
gibt zur?ck, ob das abgefragte Wort word im W?rterbuch vorhanden ist.
Parameters:
word - steht f?r das Wort, f?r das ?berpr?ft werden soll, ob es im W?rterbuch vorhanden ist oder nicht.
Returns:
das Ergebnis ist entweder true (das Element ist vorhanden) oder false (das Element ist nicht vorhanden).
Overrides:
queryWord in class Dictionary

getFirstRelated

public java.lang.String getFirstRelated(java.lang.String word)
                                 throws DictionaryWordNotFoundException
liefert das erste verwandte Wort zu word. Ist kein verwandtes Wort vorhanden, wird ein leerer String zur?ckgegeben.
Parameters:
word - steht f?r das Wort, f?r das ein n?chstes verwandtes Wort gefunden werden soll.
Returns:
Ausgabe des ersten verwandten Wortes, falls ein solches Wort nicht existiert wird ein leerer String zur?ckgegeben.
Throws:
DictionaryWordNotFoundException - tritt auf, wenn das Wort word nicht im Dictionary vorhanden ist.
Overrides:
getFirstRelated in class Dictionary

getNextRelated

public java.lang.String getNextRelated()
gibt das n?chste verwandte Wort zu "queriedWord" zur?ck, und setzt gleichzeitig relatedWord Ist kein weiteres Wort vorhanden, wird ein leerer String zur?ckgegeben.
Returns:
Ausgabe des n?chsten verwandten Wortes. Ist kein solches Wort verhanden, wird ein leerer String zur?ckgeliefert.
Overrides:
getNextRelated in class Dictionary

optimize

public int optimize()
sorgt f?r eine Strukturierung der W?rter im W?rterbuch. Diese Methode soll besonders bei Suchanfragen im W?rterbuch dabei helfen, schnelleres Bearbeiten zu erm?glichen. Sie loescht Relationen, deren (Ziel)-Woerter nicht mehr im Dictionary vorhanden sind.
Returns:
die Anzahl der Relationen, die geloescht wurden.
Overrides:
optimize in class Dictionary

newTreeMap

protected java.util.TreeMap newTreeMap()
Hilfsfunktion, um eine neue TreeMap zu erzeugen...
Returns:
eine neue Instanz einer TreeMap, die abhaengig von der Variable isCaseSensitive ohne oder mit dem Comparator DictionaryComparator initialisiert wurde.
Since:
1.1

getRelationValue

public double getRelationValue(java.lang.String word1,
                               java.lang.String word2)
                        throws DictionaryRelationNotFoundException,
                               DictionaryWordNotFoundException
liefert den Wert der Relation zwischen den beiden Worten word1 und word2.
Parameters:
word1 - das Wort, von dem die Relation ausgeht.
word2 - das Wort, zu dem die Relation zeigt.
Returns:
den Wert der Relation zwischen word1 und word2.
Throws:
DictionaryRelationNotFoundException - Es existiert keine Relation zwischen den beiden angebebenen W?rtern.
DictionaryWordNotFoundException - Eins oder beide W?rter existieren nicht.
Overrides:
getRelationValue in class Dictionary
Since:
1.1

relatedValue

public double relatedValue()
liefert den Wert der Relation zurueck, der zwischen dem queriedWord und dem relatedWord besteht. Existiert kein verwandtes Wort, so wird Double.NaN zurueckgegeben.
Overrides:
relatedValue in class Dictionary

numberOf

public int numberOf(java.lang.String word)
             throws DictionaryWordNotFoundException
Returns:
die Nummer unter der das Wort im Dictionary abgespeicher ist.
Throws:
DictionaryWordNotFoundException - Das abgefragte Wort existiert nicht im Dictionary.
Overrides:
numberOf in class Dictionary
Since:
1.2

toString

public java.lang.String toString()
Overrides:
toString in class Dictionary
Since:
1.2