Archived Website: This website is a static snapshot for archival purposes only. It is no longer maintained or updated.

dataanalysis.dictionaries
Class Dictionary

java.lang.Object
  |
  +--dataanalysis.databases.DatabaseElement
        |
        +--dataanalysis.dictionaries.Dictionary
Direct Known Subclasses:
CharBasedDictionary, StringBasedDictionary

public abstract class Dictionary
extends DatabaseElement

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.
Sinn dieser Klasse ist es, einen kleinsten gemeinsamen Nenner f?r die Entwicklung verschiedener Dictionarytypen vorzugeben.
Wird ein neues Dictionary entwickelt, muss darauf geachtet werden, dass die Konventionen der Ergebnisr?ckgabe, die hier spezifiziert werden eingehalten werden!

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

Field Summary
protected  boolean isCaseSensitive
          Legt fest, ob das Dictionary Case-sensitive ist.
protected  int lastNumber
          gibt die letzte Nummer an, der ein Wort zugewiesen wurde.
protected  java.lang.String queriedWord
          beinhalted das abgefragte Wort aus getFirstRelated(String), oder null falls das abgefragte Wort nicht im Dictionary existiert.
protected  java.lang.String relatedWord
          beinhalted das Wort, das der erste Aufruf von getFirstRelated(String) bzw.
protected  double relationValue
          beinhalted den Wert der Relation zwischen den Worten queriedWord und relatedWord, oder Double.NaN falls der Wert nicht verf?gbar ist.
protected  int wordCount
          beinhalted die Anzahl der im Dictionary gespeicherten Worte.
 
Fields inherited from class dataanalysis.databases.DatabaseElement
elementname
 
Constructor Summary
Dictionary()
          legt ein Standard-Dictionary an, indem der Konstruktor Dictionary(boolean) mit dem Parameterwert false aufgerufen wird.
Dictionary(boolean vIsCaseSensitive)
           
 
Method Summary
abstract  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!


abstract  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 (wordCount).
abstract  int deleteRelation(java.lang.String word1, java.lang.String word2)
          l?scht eine Relation zwischen den beiden Worten word1 und word2.
abstract  int deleteWord(java.lang.String word)
          l?scht das Wort word aus dem Dictionary.
abstract  java.lang.String getFirstRelated(java.lang.String word)
          liefert das erste verwandte Wort zu word.
abstract  java.lang.String getNextRelated()
          gibt das n?chste verwandte Wort zu "queriedWord" zur?ck.
abstract  double getRelationValue(java.lang.String word1, java.lang.String word2)
          liefert den Wert der Relation zwischen den beiden Worten word1 und word2.
abstract  java.lang.String getWord(int number)
          liefert das Element number des W?rterbuches zur?ck.
static Dictionary newInstance(boolean isCaseSensitive)
          Liefert eine neue Instanz der Standardimplementierung des Dictionaries zur?ck.
Momentan ist dies ein Objekt der Klasse StringBasedDictionary.

abstract  int numberOf(java.lang.String word)
           
 int optimize()
          sorgt f?r eine Neustrukturierung des Dictionaries.
abstract  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 zur?ck, die zwischen queriedWord und relatedWord besteht.
 java.lang.String toString()
          Liefert eine Stringrepr?sentation dieses Objektes.
 
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

protected boolean isCaseSensitive
Legt fest, ob das Dictionary Case-sensitive ist. Diese Eigenschaft kann nur w?hrend der Erzeugung des Dictionary festgelegt werden!
Ist diese Eigenschaft true, so m?ssen alle internen Vergleiche ohne Ber?cksichtigung der Gross-/Kleinschreibung durchgefuehrt werden.

wordCount

protected int wordCount
beinhalted die Anzahl der im Dictionary gespeicherten Worte.

lastNumber

protected int lastNumber
gibt die letzte Nummer an, der ein Wort zugewiesen wurde. Standardwert ist -1.

queriedWord

protected transient java.lang.String queriedWord
beinhalted das abgefragte Wort aus getFirstRelated(String), oder null falls das abgefragte Wort nicht im Dictionary existiert.

relatedWord

protected transient java.lang.String relatedWord
beinhalted das Wort, das der erste Aufruf von getFirstRelated(String) bzw. letzte Aufruf von getNextRelated() zur?ckgeliefert hat, oder null, falls kein Wort mehr verf?gbar ist. Dies tritt z.B. auf, wenn kein weiteres verwandtes Wort verf?gbar ist, oder getFirstRelated(String) noch nicht aufgerufen wurde.

relationValue

protected transient double relationValue
beinhalted den Wert der Relation zwischen den Worten queriedWord und relatedWord, oder Double.NaN falls der Wert nicht verf?gbar ist. Dies tritt z.B. auf, wenn getFirstRelated(String) noch nicht aufgerufen wurde oder kein weiteres verwandtes Wort verf?gbar ist.
Constructor Detail

Dictionary

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

Dictionary

public Dictionary(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

newInstance

public static final Dictionary newInstance(boolean isCaseSensitive)
Liefert eine neue Instanz der Standardimplementierung des Dictionaries zur?ck.
Momentan ist dies ein Objekt der Klasse StringBasedDictionary. Die Variable isCaseSensitive wird an den Konstruktor der Klasse weitergegeben.

count

public int count()
gibt die Anzahl der W?rter im W?rterbuch zur?ck (wordCount).
Returns:
die Anzahl der im W?rterbuch enthaltenen W?rter.

relatedValue

public double relatedValue()
liefert den Wert der Relation zur?ck, die zwischen queriedWord und relatedWord besteht. Existiert kein verwandtes Wort, so wird Double.NaN zur?ckgegeben. Da diese Methode nur den Wert von relationValue zur?ckgibt, muss in der erbenden Klasse daf?r gesorgt werden, dass immer der korrekte Wert in dieser Variablen steht.
Returns:
den Wert der Relation zwischen queriedWord und relatedWord, oder Double.NaN, falls der Wert nicht verf?gbar ist.

addWord

public abstract 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. lastNumber muss dementsprechend angepasst werden.
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.

deleteWord

public abstract 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:
Kodierung f?r eine Meldung (optional)
Throws:
DictionaryWordNotFoundException - wenn das zu l?schende Wort nicht in dem W?rterbuch existiert.

addRelation

public abstract 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.



deleteRelation

public abstract 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.

getWord

public abstract 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.

queryWord

public abstract 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.

getFirstRelated

public abstract 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 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.


getNextRelated

public abstract 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 relatedWord und 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.


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)

getRelationValue

public abstract 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 queriedWord, relatedWord und 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.

numberOf

public abstract 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.

toString

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