Revision: 9900
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=9900&view=rev
Author:   jaumeortola
Date:     2013-04-08 19:38:51 +0000 (Mon, 08 Apr 2013)
Log Message:
-----------
MorfologikSpeller: If lower case word is not a misspelled word, return it as 
the only replacement suggestion.

Modified Paths:
--------------
    
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
    
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java
    
trunk/languagetool/languagetool-language-modules/ca/src/test/java/org/languagetool/rules/ca/MorfologikCatalanSpellerRuleTest.java

Modified: 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
===================================================================
--- 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
    2013-04-08 18:01:33 UTC (rev 9899)
+++ 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
    2013-04-08 19:38:51 UTC (rev 9900)
@@ -30,6 +30,7 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
 import java.util.ResourceBundle;
@@ -123,7 +124,14 @@
     if (speller.isMisspelled(word)) {
       final RuleMatch ruleMatch = new RuleMatch(this, startPos, startPos
           + word.length(), messages.getString("spelling"),
-          messages.getString("desc_spelling_short"));
+          messages.getString("desc_spelling_short")); 
+      //If lower case word is not a misspelled word, return it as the only 
suggestion 
+      if (!speller.isMisspelled(word.toLowerCase(conversionLocale))) {
+        List<String> suggestion = 
Arrays.asList(word.toLowerCase(conversionLocale));
+        ruleMatch.setSuggestedReplacements(suggestion);
+        ruleMatches.add(ruleMatch);
+        return ruleMatches;
+      }
       List<String> suggestions = speller.getSuggestions(word);
       //If few suggestions are found, try to get more from the word without 
diacritics and lowercase
       final String 
wordWithoutDiacritics=removeAccents(word).toLowerCase(conversionLocale);

Modified: 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java
===================================================================
--- 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java
 2013-04-08 18:01:33 UTC (rev 9899)
+++ 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java
 2013-04-08 19:38:51 UTC (rev 9900)
@@ -79,8 +79,7 @@
       //normal case
       addTokens(taggerTokens, l);
 
-      //tag alluppercase or startuppercase word (but not mixedcase) 
-      //with lowercase word tags
+      //tag alluppercase or startuppercase word (but not mixedcase) with 
lowercase word tags
       if (!isLowercase && !isMixedcase) {        
         addTokens(lowerTaggerTokens, l);
       }

Modified: 
trunk/languagetool/languagetool-language-modules/ca/src/test/java/org/languagetool/rules/ca/MorfologikCatalanSpellerRuleTest.java
===================================================================
--- 
trunk/languagetool/languagetool-language-modules/ca/src/test/java/org/languagetool/rules/ca/MorfologikCatalanSpellerRuleTest.java
   2013-04-08 18:01:33 UTC (rev 9899)
+++ 
trunk/languagetool/languagetool-language-modules/ca/src/test/java/org/languagetool/rules/ca/MorfologikCatalanSpellerRuleTest.java
   2013-04-08 19:38:51 UTC (rev 9900)
@@ -125,14 +125,17 @@
         assertEquals("cantaria", matches[0].getSuggestedReplacements().get(1));
         
         //incorrect mixed case words
+        assertEquals(1, rule.match(langTool.getAnalyzedSentence("PH")).length);
+        assertEquals(1, rule.match(langTool.getAnalyzedSentence("Ph")).length);
+        assertEquals(1, 
rule.match(langTool.getAnalyzedSentence("MCDonald")).length);
+        
         matches = rule.match(langTool.getAnalyzedSentence("tAula"));
         assertEquals(1, matches.length);
         assertEquals("taula", matches[0].getSuggestedReplacements().get(0));
         
         matches = rule.match(langTool.getAnalyzedSentence("TAula"));
         assertEquals(1, matches.length);
-        assertEquals("Tula", matches[0].getSuggestedReplacements().get(0));
-        assertEquals("taula", matches[0].getSuggestedReplacements().get(1));
+        assertEquals("taula", matches[0].getSuggestedReplacements().get(0));
         
         matches = rule.match(langTool.getAnalyzedSentence("col·Labora"));
         assertEquals(1, matches.length);
@@ -140,13 +143,7 @@
         
         matches = rule.match(langTool.getAnalyzedSentence("col·laborÀ"));
         assertEquals(1, matches.length);
-        assertEquals("col·labor", 
matches[0].getSuggestedReplacements().get(0));
-        assertEquals("col·labora", 
matches[0].getSuggestedReplacements().get(1));
-        assertEquals("col·labore", 
matches[0].getSuggestedReplacements().get(2));
-        assertEquals("col·labori", 
matches[0].getSuggestedReplacements().get(3));
-        assertEquals("col·laboro", 
matches[0].getSuggestedReplacements().get(4));
-        assertEquals("col·laborà", 
matches[0].getSuggestedReplacements().get(5)); //-->Better in the first place!
-        assertEquals("col·laborí", 
matches[0].getSuggestedReplacements().get(6));
+        assertEquals("col·laborà", 
matches[0].getSuggestedReplacements().get(0));
         
         //capitalized wrong words
         matches = rule.match(langTool.getAnalyzedSentence("En la Pecra"));

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits

Reply via email to