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

dataanalysis.tools
Class StringMatcher

java.lang.Object
  |
  +--dataanalysis.tools.StringMatcher

public class StringMatcher
extends java.lang.Object

ist in der Lage, die Vorkommen eines Wortes in einem Dokument zu bewerten. Als Standardfall wird der Suchstring pattern im String document gesucht. ?ber verschiedene Variablen kann kontrolliert werden, ob pattern in Worte zerlegt wird, und diese W?rter dann einzeln gesucht werden und ob Gro?-/Kleinschreibung unterschieden werden soll.

Version:
1.3 (19.8.1999)
Author:
Andre Masloch

Field Summary
private  int currentpos
          Interne Variable f?r Boyer-Moore-Suche
private  java.util.TreeMap delta1
          Interne Variable f?r Boyer-Moore-Suche Aufgrund der Verwendung des Unicode-Zeichensatzes wird eine TreeMap benutzt.
private  int[] delta2
          Interne Variable f?r Boyer-Moore-Suche
private  int documentlength
          Interne Variable f?r Boyer-Moore-Suche
protected  boolean doPhraseSearch
          bestimmt, ob nach dem kompletten Suchstring gesucht wird, oder nach einzelnen W?rtern.
protected  boolean isCaseSensitive
          bestimmt, ob zwischen Gro?-/Kleinschreibung unterschieden wird.
protected  java.util.Vector keywords
          enth?lt die einzelnen W?rter, nach denen gesucht werden soll.
protected  boolean mustFindAll
          bestimmt, ob alle Suchw?rter gefunden werden m?ssen, oder nur eins.
private  boolean mustPrepareKeywords
          Interne Variable zum cachen der Variablenaenderungen
private  int preparedWord
          Interne Variable fuer SearchWord.
protected  java.lang.String theDocument
          enth?lt den Dokumentstring.
protected  java.lang.String thePattern
          enthaelt den uebergebenen Suchstring
protected  java.util.StringTokenizer thePatternTokenizer
          wird benutzt, um das Suchmuster ggf.
private  java.lang.String theWord
          Interne Variable fue Boyer-Moore-Suche.
 
Constructor Summary
StringMatcher()
          initialisiert die Variablen des Stringmatchers.
StringMatcher(java.lang.String pattern)
          initialisiert den Such-String, sowie die Variablen(Standardwerte).
 
Method Summary
protected  int doBoyerMooreSearch()
          sucht das n?chste Vorkommen eines Musters im Dokument.
 int fastMatch()
          setzt die schnelle Suche fort, wenn moeglich
 int fastMatch(java.lang.String document)
          fuehrt eine schnelle Suche nach dem ersten Wort im gespeicherten Muster pattern im uebergebenen Dokument document durch.
 boolean getDoPhraseSearch()
          Get the value of doPhraseSearch.
 boolean getIsCaseSensitive()
          Get the value of isCaseSensitive.
 boolean getMustFindAll()
          Get the value of mustFindAll.
 double matchesTo(java.lang.String document)
          sucht ein neues Dokument nach dem Suchstring ab.
 double matchesTo(java.lang.String document, java.lang.String pattern)
          sucht ein Dokument document nach pattern ab.
protected  void prepareBMSearch(java.lang.String word)
          bereitet die Suche nach dem String word vor, indem die Arrays f?r die Boyer-Moore-Suche initialisiert werden.
protected  void prepareKeywords()
          bereitet anhand der Variablenbelegung den Keyword-Vector vor, indem ggf.
protected  int searchWord(int number)
          sucht das Dokument nach den Keyword number des Vectors keywords ab.
Ist die aktuelle Position im Dokument < 1 ,="," so="so" wird="wird" zuerst="zuerst" prepareBMSearch aufgerufen, anschlie?end wird die Suche mit doBoyerMooreSearch gestartet.

 void setDoPhraseSearch(boolean v)
          Set the value of doPhraseSearch.
 void setIsCaseSensitive(boolean v)
          Set the value of isCaseSensitive.
 void setMustFindAll(boolean v)
          Set the value of mustFindAll.
 void setPattern(java.lang.String pattern)
          setzt den Such-String und bereitet den keyword-Vektor vor.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

isCaseSensitive

protected boolean isCaseSensitive
bestimmt, ob zwischen Gro?-/Kleinschreibung unterschieden wird.
TRUE : Gro?-/Kleinschreibung wird unterschieden.
FALSE : Gro?-/Kleinschreibung wird nicht unterschieden.
Standardeinstellung ist FALSE .



doPhraseSearch

protected boolean doPhraseSearch
bestimmt, ob nach dem kompletten Suchstring gesucht wird, oder nach einzelnen W?rtern.
TRUE : Der komplette Suchstring mu? gefunden werden.
FALSE :Nur einzelne W?rter m?ssen gefunden werden. Ob alle W?rter gefunden werden m?ssen, wird durch die Variable mustFindAll bestimmt.
Standardeinstellung ist TRUE .



mustFindAll

protected boolean mustFindAll
bestimmt, ob alle Suchw?rter gefunden werden m?ssen, oder nur eins.
TRUE : Die einzelnen W?rter in pattern m?ssen alle gefunden werden (AND-Verkn?pfung)
FALSE : Nur eins der W?rter in pattern mu? gefunden werden (OR-Verkn?pfung)
Standardeinstellung ist TRUE.



delta2

private int[] delta2
Interne Variable f?r Boyer-Moore-Suche

currentpos

private int currentpos
Interne Variable f?r Boyer-Moore-Suche

documentlength

private int documentlength
Interne Variable f?r Boyer-Moore-Suche

mustPrepareKeywords

private boolean mustPrepareKeywords
Interne Variable zum cachen der Variablenaenderungen

preparedWord

private int preparedWord
Interne Variable fuer SearchWord. Beinhaltet die Nummer des vorbereiteten Wortes fuer die Boyer-Moore-Suche, bzw. 0 wenn kein Wort vorbereitet wurde.

thePatternTokenizer

protected java.util.StringTokenizer thePatternTokenizer
wird benutzt, um das Suchmuster ggf. in Token zu zerlegen, die dann im Vektor keywords abgespeichert werden.

keywords

protected java.util.Vector keywords
enth?lt die einzelnen W?rter, nach denen gesucht werden soll. Ist die Phrasensuche eingeschaltet, ist der gesamte Suchstring (pattern) im ersten Element des keywords-Vectors abgelegt.

theDocument

protected java.lang.String theDocument
enth?lt den Dokumentstring.

delta1

private java.util.TreeMap delta1
Interne Variable f?r Boyer-Moore-Suche Aufgrund der Verwendung des Unicode-Zeichensatzes wird eine TreeMap benutzt.

thePattern

protected java.lang.String thePattern
enthaelt den uebergebenen Suchstring

theWord

private java.lang.String theWord
Interne Variable fue Boyer-Moore-Suche. Beinhalted das durch prepareBMSearch vorbereitete Wort
Constructor Detail

StringMatcher

public StringMatcher()
initialisiert die Variablen des Stringmatchers.
isCaseSensitive = False
doPhraseSearch = True
mustFindAll = True


Standardm??ig wird der Unicode-Zeichensatz benutzt.


StringMatcher

public StringMatcher(java.lang.String pattern)
initialisiert den Such-String, sowie die Variablen(Standardwerte). Weiteres : @see dataanalysis.tools.StringMatcher()
Method Detail

setPattern

public void setPattern(java.lang.String pattern)
setzt den Such-String und bereitet den keyword-Vektor vor.

matchesTo

public double matchesTo(java.lang.String document)
sucht ein neues Dokument nach dem Suchstring ab.
Weitere Informationen bei
See Also:
matchesTo(String,String).


matchesTo

public double matchesTo(java.lang.String document,
                        java.lang.String pattern)
sucht ein Dokument document nach pattern ab. Einzelheiten der Suchart werden durch die Variablen isCaseSensitive, doPhraseSearch und mustFindAll bestimmt.
Parameters:
document - ist der String, der durchsucht werden soll.
pattern - ist der String, der gefunden werden soll.
Returns:
Flie?kommawert (double), der die Anzahl der Vorkommen von pattern in document wiederspiegelt. Werden mehrere W?rter gesucht und ist mustFindAll=FALSE, so wird ?ber die einzelnen Werte gemittelt, ansonsten wird das Maximum der Einzelergebnisse benutzt (sofern alle Woerter gefunden wurden).

fastMatch

public int fastMatch(java.lang.String document)
fuehrt eine schnelle Suche nach dem ersten Wort im gespeicherten Muster pattern im uebergebenen Dokument document durch.

fastMatch

public int fastMatch()
setzt die schnelle Suche fort, wenn moeglich
See Also:
fastMatch(String)

getDoPhraseSearch

public boolean getDoPhraseSearch()
Get the value of doPhraseSearch.
Returns:
Value of doPhraseSearch.

setDoPhraseSearch

public void setDoPhraseSearch(boolean v)
Set the value of doPhraseSearch.
Parameters:
v - Value to assign to doPhraseSearch.

getIsCaseSensitive

public boolean getIsCaseSensitive()
Get the value of isCaseSensitive.
Returns:
Value of isCaseSensitive.

setIsCaseSensitive

public void setIsCaseSensitive(boolean v)
Set the value of isCaseSensitive.
Parameters:
v - Value to assign to isCaseSensitive.

getMustFindAll

public boolean getMustFindAll()
Get the value of mustFindAll.
Returns:
Value of mustFindAll.

setMustFindAll

public void setMustFindAll(boolean v)
Set the value of mustFindAll.
Parameters:
v - Value to assign to mustFindAll.

prepareKeywords

protected void prepareKeywords()
bereitet anhand der Variablenbelegung den Keyword-Vector vor, indem ggf. der ?bergebene String mittels des StringTokenizers zerlegt wird.
Es wird ein neuer StringTokenizer erzeugt, der Vector geleert und der Vector neu gef?llt.

searchWord

protected int searchWord(int number)
sucht das Dokument nach den Keyword number des Vectors keywords ab.
Ist die aktuelle Position im Dokument < 1 ,="," so="so" wird="wird" zuerst="zuerst" prepareBMSearch aufgerufen, anschlie?end wird die Suche mit doBoyerMooreSearch gestartet.
Parameters:
number - die Nummer des Suchwortes im Keywords-Vector


prepareBMSearch

protected void prepareBMSearch(java.lang.String word)
bereitet die Suche nach dem String word vor, indem die Arrays f?r die Boyer-Moore-Suche initialisiert werden. Au?erdem wird die Suchposition im Suchstring auf 1 (Anfang) gesetzt.

doBoyerMooreSearch

protected int doBoyerMooreSearch()
sucht das n?chste Vorkommen eines Musters im Dokument.
Voraussetzung ist die Vorbereitung der Datenstrukturen durch prepareBMSearch bei der initialen Suche!

toString

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