[ 
https://issues.apache.org/jira/browse/OPENNLP-1177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16316276#comment-16316276
 ] 

ASF GitHub Bot commented on OPENNLP-1177:
-----------------------------------------

jzonthemtn closed pull request #301: OPENNLP-1177: Adds way to get Snowball 
stemmer by language code.
URL: https://github.com/apache/opennlp/pull/301
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/opennlp-tools/src/main/java/opennlp/tools/stemmer/snowball/SnowballStemmer.java
 
b/opennlp-tools/src/main/java/opennlp/tools/stemmer/snowball/SnowballStemmer.java
index 86ebe8446..31a5837fe 100644
--- 
a/opennlp-tools/src/main/java/opennlp/tools/stemmer/snowball/SnowballStemmer.java
+++ 
b/opennlp-tools/src/main/java/opennlp/tools/stemmer/snowball/SnowballStemmer.java
@@ -22,23 +22,42 @@
 public class SnowballStemmer implements Stemmer {
 
   public enum ALGORITHM {
-    DANISH,
-    DUTCH,
-    ENGLISH,
-    FINNISH,
-    FRENCH,
-    GERMAN,
-    HUNGARIAN,
-    IRISH,
-    ITALIAN,
-    NORWEGIAN,
-    PORTER,
-    PORTUGUESE,
-    ROMANIAN,
-    RUSSIAN,
-    SPANISH,
-    SWEDISH,
-    TURKISH
+    DANISH("dan"),
+    DUTCH("nld"),
+    ENGLISH("eng"),
+    FINNISH("fin"),
+    FRENCH("fra"),
+    GERMAN("deu"),
+    HUNGARIAN("hun"),
+    IRISH("gle"),
+    ITALIAN("ita"),
+    NORWEGIAN("nor"),
+    PORTER("porter"),
+    PORTUGUESE("por"),
+    ROMANIAN("ron"),
+    RUSSIAN("rus"),
+    SPANISH("spa"),
+    SWEDISH("swe"),
+    TURKISH("tur");
+
+    private String languageCode;
+
+    private ALGORITHM(String languageCode) {
+      this.languageCode = languageCode;
+    }
+
+    public String getLanguageCode() {
+      return languageCode;
+    }
+
+    public static ALGORITHM getByLanguageCode(String languageCode) {
+      for (ALGORITHM algorithm : ALGORITHM.values()) {
+        if (languageCode.equalsIgnoreCase(algorithm.getLanguageCode())) {
+          return algorithm;
+        }
+      }
+      throw new IllegalArgumentException("No stemmer for language code " + 
languageCode);
+    }
   }
 
   private final AbstractSnowballStemmer stemmer;
diff --git 
a/opennlp-tools/src/test/java/opennlp/tools/stemmer/SnowballStemmerTest.java 
b/opennlp-tools/src/test/java/opennlp/tools/stemmer/SnowballStemmerTest.java
index 6396b2f66..b3ce76da1 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/stemmer/SnowballStemmerTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/stemmer/SnowballStemmerTest.java
@@ -25,6 +25,12 @@
 
 public class SnowballStemmerTest {
 
+  @Test
+  public void getLanguageByCode() {
+    Assert.assertEquals(ALGORITHM.ENGLISH, 
SnowballStemmer.ALGORITHM.getByLanguageCode("eng"));
+    Assert.assertEquals(ALGORITHM.SPANISH, 
SnowballStemmer.ALGORITHM.getByLanguageCode("spa"));
+  }
+
   @Test
   public void testDanish() {
     SnowballStemmer stemmer = new SnowballStemmer(ALGORITHM.DANISH);


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Add way to get SnowballStemmer implementation by language code
> --------------------------------------------------------------
>
>                 Key: OPENNLP-1177
>                 URL: https://issues.apache.org/jira/browse/OPENNLP-1177
>             Project: OpenNLP
>          Issue Type: Task
>          Components: Stemmer
>            Reporter: Jeff Zemerick
>            Assignee: Jeff Zemerick
>            Priority: Minor
>
> The only way to get a Snowball stemmer implementation is using the ALGORITHM 
> enum. There is no easy way to get a Snowball stemmer implementation using a 
> language code.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to