lucene-java-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From o...@apache.org
Subject svn commit: r424239 - /lucene/java/trunk/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java
Date Fri, 21 Jul 2006 09:10:52 GMT
Author: otis
Date: Fri Jul 21 02:10:52 2006
New Revision: 424239

URL: http://svn.apache.org/viewvc?rev=424239&view=rev
Log:
- Renamed some variables and made minScore private

Modified:
    lucene/java/trunk/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java

Modified: lucene/java/trunk/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java?rev=424239&r1=424238&r2=424239&view=diff
==============================================================================
--- lucene/java/trunk/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java
(original)
+++ lucene/java/trunk/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java
Fri Jul 21 02:10:52 2006
@@ -74,7 +74,8 @@
   private IndexReader reader;
   private IndexSearcher searcher;
 
-  float min = 0.5f;
+  // minimum score for hits generated by the spell checker query
+  private float minScore = 0.5f;
 
   public SpellChecker(Directory spellIndex) throws IOException {
     this.setSpellIndex(spellIndex);
@@ -86,27 +87,27 @@
   }
 
   /**
-   * Sets the accuracy 0 < min < 1; default 0.5
+   * Sets the accuracy 0 < minScore < 1; default 0.5
    */
   public void setAccuracy(float min) {
-    this.min = min;
+    this.minScore = min;
   }
 
   /**
    * Suggest similar words
    * @param word String the word you want a spell check done on
-   * @param num_sug int the number of suggest words
+   * @param numSug int the number of suggest words
    * @throws IOException
    * @return String[]
    */
-  public String[] suggestSimilar(String word, int num_sug) throws IOException {
-    return this.suggestSimilar(word, num_sug, null, null, false);
+  public String[] suggestSimilar(String word, int numSug) throws IOException {
+    return this.suggestSimilar(word, numSug, null, null, false);
   }
 
   /**
    * Suggest similar words (restricted or not to a field of a user index)
    * @param word String the word you want a spell check done on
-   * @param num_sug int the number of suggest words
+   * @param numSug int the number of suggest words
    * @param ir the indexReader of the user index (can be null see field param)
    * @param field String the field of the user index: if field is not null, the suggested
    * words are restricted to the words present in this field.
@@ -117,10 +118,10 @@
    * first criteria: the edit distance, second criteria (only if restricted mode): the popularity
    * of the suggest words in the field of the user index
    */
-  public String[] suggestSimilar(String word, int num_sug, IndexReader ir,
+  public String[] suggestSimilar(String word, int numSug, IndexReader ir,
       String field, boolean morePopular) throws IOException {
 
-    float min = this.min;
+    float min = this.minScore;
     final TRStringDistance sd = new TRStringDistance(word);
     final int lengthWord = word.length();
 
@@ -159,46 +160,47 @@
 
 //    System.out.println("Q: " + query);
     Hits hits = searcher.search(query);
-    SuggestWordQueue sugqueue = new SuggestWordQueue(num_sug);
+//    System.out.println("HITS: " + hits.length());
+    SuggestWordQueue sugQueue = new SuggestWordQueue(numSug);
 
     // go thru more than 'maxr' matches in case the distance filter triggers
-    int stop = Math.min(hits.length(), 10 * num_sug);
-    SuggestWord sugword = new SuggestWord();
+    int stop = Math.min(hits.length(), 10 * numSug);
+    SuggestWord sugWord = new SuggestWord();
     for (int i = 0; i < stop; i++) {
 
-      sugword.string = hits.doc(i).get(F_WORD); // get orig word
+      sugWord.string = hits.doc(i).get(F_WORD); // get orig word
 
       // don't suggest a word for itself, that would be silly
-      if (sugword.string.equals(word)) {
+      if (sugWord.string.equals(word)) {
         continue;
       }
 
-      // edit distance/normalize with the min word length
-      sugword.score = 1.0f - ((float) sd.getDistance(sugword.string) / Math
-          .min(sugword.string.length(), lengthWord));
-      if (sugword.score < min) {
+      // edit distance/normalize with the minScore word length
+      sugWord.score = 1.0f - ((float) sd.getDistance(sugWord.string) / Math
+          .min(sugWord.string.length(), lengthWord));
+      if (sugWord.score < min) {
         continue;
       }
 
       if (ir != null) { // use the user index
-        sugword.freq = ir.docFreq(new Term(field, sugword.string)); // freq in the index
+        sugWord.freq = ir.docFreq(new Term(field, sugWord.string)); // freq in the index
         // don't suggest a word that is not present in the field
-        if ((morePopular && goalFreq > sugword.freq) || sugword.freq < 1) {
+        if ((morePopular && goalFreq > sugWord.freq) || sugWord.freq < 1) {
           continue;
         }
       }
-      sugqueue.insert(sugword);
-      if (sugqueue.size() == num_sug) {
-        // if queue full, maintain the min score
-        min = ((SuggestWord) sugqueue.top()).score;
+      sugQueue.insert(sugWord);
+      if (sugQueue.size() == numSug) {
+        // if queue full, maintain the minScore score
+        min = ((SuggestWord) sugQueue.top()).score;
       }
-      sugword = new SuggestWord();
+      sugWord = new SuggestWord();
     }
 
     // convert to array string
-    String[] list = new String[sugqueue.size()];
-    for (int i = sugqueue.size() - 1; i >= 0; i--) {
-      list[i] = ((SuggestWord) sugqueue.pop()).string;
+    String[] list = new String[sugQueue.size()];
+    for (int i = sugQueue.size() - 1; i >= 0; i--) {
+      list[i] = ((SuggestWord) sugQueue.pop()).string;
     }
 
     return list;



Mime
View raw message