demo:http://snowball.tartarus.org/demo.php
jar download:http://snowball.tartarus.org/download.php (JAVA version里面有一处语法错误,自行修改后,自己动手生成jar包)
1 /** 2 * Project Name:1008crosslanguage 3 * File Name:Stemmer.java 4 * Package Name:util 5 * Date:Oct 10, 20158:48:09 PM 6 * Copyright (c) 2015, max_xbw@163.com All Rights Reserved. 7 * 8 */ 9 /** 10 * Project Name:1008crosslanguage 11 * File Name:Stemmer.java 12 * Package Name:util 13 * Date:Oct 10, 20158:48:09 PM 14 * Copyright (c) 2015, max_xbw@163.com All Rights Reserved. 15 * 16 */ 17 18 package util; 19 20 import java.util.ArrayList; 21 import java.util.HashMap; 22 import java.util.List; 23 import java.util.Map; 24 25 import org.tartarus.snowball.ext.englishStemmer; 26 27 /** 28 * ClassName:Stemmer <br/> 29 * Function: TODO ADD FUNCTION. <br/> 30 * Reason: TODO ADD REASON. <br/> 31 * Date: Oct 10, 2015 8:48:09 PM <br/> 32 * 33 * @author xubowen 34 * @version 35 * @since JDK 1.7 36 * @see 37 */ 38 public class Stemmer { 39 40 /** 41 * main:(这里用一句话描述这个方法的作用). <br/> 42 * TODO(这里描述这个方法适用条件 – 可选).<br/> 43 * 44 * @author xubowen 45 * @param args 46 * @since JDK 1.7 47 */ 48 public static String stemString(String str) { 49 str = str.toLowerCase(); 50 englishStemmer stemmer = new englishStemmer(); 51 stemmer.setCurrent(str); 52 if (stemmer.stem()) { 53 return stemmer.getCurrent(); 54 } 55 return ""; 56 } 57 58 public static List<String> stemStrList(List<String> strlist) { 59 List<String> strlisttmp = new ArrayList<String>(); 60 for (String strtmp : strlist) { 61 strlisttmp.add(stemString(strtmp)); 62 // System.out.println(strtmp + " ==> " + stemString(strtmp)); 63 } 64 return strlisttmp; 65 } 66 67 public static Map<String, Double> stemStrMap(Map<String, Double> strmap) { 68 Map<String, Double> strmaptmp = new HashMap<String, Double>(); 69 for (Map.Entry<String, Double> entry : strmap.entrySet()) { 70 String strtmp = entry.getKey(); 71 double doubletmp = entry.getValue(); 72 strmaptmp.put(stemString(strtmp), doubletmp); 73 // System.out.println(strtmp + " ==> " + stemString(strtmp)); 74 } 75 return strmaptmp; 76 } 77 78 public static void main(String[] args) { 79 System.out.println(stemString("caused")); 80 } 81 }