dataanalysis.dictionaries
Class CharBasedDictionary

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

public class CharBasedDictionary
extends Dictionary

unterst?tzt den Classifier bei der Klassifizierung von Texten, da das Dictionary STOP-Listen, Synonyme etc. repr?sentieren kann. Aber auch der Vectorizer besitzt die M?glichkeit auf das Dictionary zuzugreifen.

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

Field Summary
protected  java.util.TreeMap currentRelated
          das ist die TreeMap, auf die die Methode getNextRelated() zugreift.
protected  java.util.Iterator currentRelatedIterator
          das ist der Iterator, mit dem die einzelnen Elemente von currentRelated herausgesucht werden.
protected  java.util.TreeMap numberNameTranslation
          dient zur Zuordnung der Nummern zu Worten.
protected  CharBasedDictionaryTreeNode wordRoot
          Wurzel des Baumes
 
Fields inherited from class dataanalysis.dictionaries.Dictionary
isCaseSensitive, lastNumber, queriedWord, relatedWord, relationValue, wordCount
 
Fields inherited from class dataanalysis.databases.DatabaseElement
elementname
 
Constructor Summary
CharBasedDictionary()
          legt ein Standard-Dictionary an, indem der Konstruktor CharBasedDictionary(boolean) mit dem Parameterwert false aufgerufen wird.
CharBasedDictionary(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 sollte der Benutzer darauf achten, keine Zirkel zu erzeugen, da das Dictionary diese nicht abfangen muss!


 int addWord(java.lang.String word)
          f?gt ein neues Wort word ins Lexikon ein.
 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 das 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.
protected static CharBasedDictionaryTreeNode getNodeForWord(CharBasedDictionaryTreeNode node, java.lang.String word, boolean caseSensitive)
          Liefert den Knoten, der das Wort word repr?sentiert, oder null falls dieser Knoten nicht vorhanden ist.
Die Methode beginnt am Knoten node und ber?cksichtigt ggf.

 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.
 int numberOf(java.lang.String word)
           
 int optimize()
          sorgt f?r eine Neustrukturierung des Dictionaries.
 boolean queryWord(java.lang.String word)
          gibt zur?ck, ob das abgefragte Wort word im W?rterbuch vorhanden ist.
 java.lang.String toString()
          Liefert eine Stringrepr?sentation dieses Objektes.
 
Methods inherited from class dataanalysis.dictionaries.Dictionary
count, newInstance, relatedValue
 
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

wordRoot

protected CharBasedDictionaryTreeNode wordRoot
Wurzel des Baumes

numberNameTranslation

protected java.util.TreeMap numberNameTranslation
dient zur Zuordnung der Nummern zu Worten. TreeMap-Schl?ssel : Integer
TreeMap-Values : CharBasedDictionaryTreeNode

currentRelated

protected transient java.util.TreeMap currentRelated
das ist die TreeMap, auf die die Methode getNextRelated() zugreift. Sie wird durch die Methoden getNextRelated() und getFirstRelated(String) ver?ndert.

currentRelatedIterator

protected transient java.util.Iterator currentRelatedIterator
das ist der Iterator, mit dem die einzelnen Elemente von currentRelated herausgesucht werden.
Constructor Detail

CharBasedDictionary

public CharBasedDictionary()
legt ein Standard-Dictionary an, indem der Konstruktor CharBasedDictionary(boolean) mit dem Parameterwert false aufgerufen wird.

CharBasedDictionary

public CharBasedDictionary(boolean vIsCaseSensitive)
Parameters:
vIsCaseSensitive - legt fest, ob im Dictionary zwischen Gross-/Kleinschreibung unterschieden wird. Dabei ist es der jeweiligen Klasse ?berlassen, ob ebenfalls Unterschiede in Akzenten ignoriert werden, wenn die Gross-/Kleinschreibung ignoriert wird. Sollte dies geschehen, so ist dies in der Klasse zu dokumentieren!
Method Detail

addWord

public int addWord(java.lang.String word)
            throws ElementExistsException
f?gt ein neues Wort word ins Lexikon ein. Jedes Wort besitzt eine eindeutige Nummer im Dictionary. Durch L?schung freiwerdene Pl?tze bzw. Nummern d?rfen nicht wieder verwendet werden, da z.B. die Vectorizer darauf angewiesen sind.
Parameters:
word - steht f?r das Wort, das ins Lexikon eingef?gt werden soll.
Returns:
die Position, die das neue Wort im Lexikon besitzt.
Throws:
ElementExistsException - wenn das einzuf?gende Wort bereits im W?rterbuch existiert.
Overrides:
addWord in class Dictionary

deleteWord

public int deleteWord(java.lang.String word)
               throws DictionaryWordNotFoundException
l?scht das Wort word aus dem Dictionary.
Parameters:
word - steht f?r das Wort, das aus dem W?rterbuch gel?scht werden soll.
Returns:
Nummer des gel?schten Wortes
Throws:
DictionaryWordNotFoundException - wenn das zu l?schende Wort nicht in dem W?rterbuch existiert.
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 sollte der Benutzer darauf achten, keine Zirkel zu erzeugen, da das Dictionary diese nicht abfangen muss!
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 - wenn mindestens eines der beiden W?rter nicht existiert.
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 - wenn keine Relation zwischen den beiden angegebenen W?rtern existiert.
DictionaryWordNotFoundException - wenn mindestens eines der beiden W?rter nicht existiert.
Overrides:
deleteRelation 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 zur?ckgeliefert.
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:
true wenn das Wort im Dictionary enthalten ist, sonst false.
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.
Diese Methode muss automatisch Dictionary.queriedWord setzen!
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. Ist kein weiteres verwandtes Wort vorhanden, wird ein leerer String zur?ckgegeben.
Diese Methode muss automatisch Dictionary.relatedWord und Dictionary.relationValue korrekt setzen. N?heres zu der zu erwartenden Wertebelegung kann der Dokumentation der Variablen entnommen werden.
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 Neustrukturierung des Dictionaries. Diese Methode soll die Datenstrukturen der Klasse bereinigen, wobei allerdings unbedingt darauf zu achten ist, dass die Nummern der Worte nicht ver?ndert werden!
Returns:
Kodierung einer Meldung (optional)
Overrides:
optimize in class Dictionary

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. Diese Methode darf den Wert von Dictionary.queriedWord, Dictionary.relatedWord und Dictionary.relationValue nicht ver?ndern!
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 - wenn die Relation zwischen den beiden angebebenen W?rtern nicht existiert.
DictionaryWordNotFoundException - wenn mindestens eines der beiden W?rter nicht existiert.
Overrides:
getRelationValue in class Dictionary

numberOf

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

getNodeForWord

protected static CharBasedDictionaryTreeNode getNodeForWord(CharBasedDictionaryTreeNode node,
                                                            java.lang.String word,
                                                            boolean caseSensitive)
Liefert den Knoten, der das Wort word repr?sentiert, oder null falls dieser Knoten nicht vorhanden ist.
Die Methode beginnt am Knoten node und ber?cksichtigt ggf. die Gross-/Kleinschreibung. Ist caseSensitive=false, so wird in jedem Knoten sowohl Character.toUpperCase(c) als auch Character.toLowerCase(c) ausprobiert.
Returns:
den Knoten, der das Wort word repr?sentiert, oder null falls dieser Knoten nicht vorhanden ist.


toString

public java.lang.String toString()
Liefert eine Stringrepr?sentation dieses Objektes.
Overrides:
toString in class Dictionary