zoukankan      html  css  js  c++  java
  • [JAVA词形还原工具]Snowball

    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 }
  • 相关阅读:
    python读取配置文件之.ini后缀文件
    Qt界面中打开图片的一个小bug
    C++指针与数组、函数、动态内存分配
    使用VS调试安卓Unity应用
    VS2017调试Unity时遇到的“未指定错误”解决方法记录
    【5】用vector进行直接插入排序
    【4】数独(Sudoku Killer)(深度优先遍历)
    【3】素数环问题(递归、搜索)
    【2】展开字符串(栈、递归)
    【1】简单计算器(栈)
  • 原文地址:https://www.cnblogs.com/XBWer/p/4874590.html
Copyright © 2011-2022 走看看