Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除单词后缀以减少词形变化_Java_Algorithm - Fatal编程技术网

Java 删除单词后缀以减少词形变化

Java 删除单词后缀以减少词形变化,java,algorithm,Java,Algorithm,问题: 词干分析删除单词后缀,以将屈折词(或有时派生词)还原为其基本形式或词根形式。 “friendly”是“friend”的一个词形变化。通过词干分析(在本例中,词干分析意味着删除后缀“ly”),“friendly”减少为“friend”。 给定一个令牌列表和一个后缀列表 你的任务是 编写一个函数,在标准输出(stdout)中打印所有后缀已删除的标记(如果在后缀列表中找到)(请每行打印一个标记) 对于每个令牌,如果可以删除多个后缀,请选择最长的后缀 请注意,函数将接收以下参数: 代币 这是一个

问题: 词干分析删除单词后缀,以将屈折词(或有时派生词)还原为其基本形式或词根形式。 “friendly”是“friend”的一个词形变化。通过词干分析(在本例中,词干分析意味着删除后缀“ly”),“friendly”减少为“friend”。 给定一个令牌列表和一个后缀列表 你的任务是 编写一个函数,在标准输出(stdout)中打印所有后缀已删除的标记(如果在后缀列表中找到)(请每行打印一个标记) 对于每个令牌,如果可以删除多个后缀,请选择最长的后缀 请注意,函数将接收以下参数: 代币 这是一个字符串数组,给出上述标记 后缀 这是一个字符串数组,给出上述后缀 数据约束 令牌数组的长度将不超过1000 后缀数组的长度将不超过100 所有字符串比较都区分大小写(即:Cool!=Cool) 效率约束 您的函数将打印请求的结果,并在2秒内返回 例子 输入输出 查询:“友好”、“外向”、“强大”、“在” 后缀:“ing”、“ly”、“ul”、“ful” 朋友 支出 权力 在里面 解释 对于单词“power”,我们可以删除后缀“ul”或“ful”,但我们选择后者,因为它是最长的后缀

我的代码:

class MyClass {

       public static void token_stemming(String[] tokens, String[] suffixes) 
  {
        int count=0;
        String[] stemmedList = new String[tokens.length];
        for(int i=0; i<tokens.length; i++)
        {
            int length=0;int flag=0;
            for(int j=0; j<suffixes.length; j++)
            {
               if(tokens[i].contains(suffixes[j]))
               {
                   int strlength = tokens[i].length()-1;
                   int suflegnth = suffixes[j].length()-1;
                   for(int z=suffixes[j].length(); z>0; z--)
                   {
                       if(tokens[i].charAt(strlength--)==suffixes[j].charAt(suflegnth--))
                       {

                       }
                       else
                       {
                           flag=1;
                       }

                   }
                   if(length<suffixes[j].length() && flag==0)
                   {
                        length = suffixes[j].length();
                   }
               }

            }

            stemmedList[count] = tokens[i].substring(0, tokens[i].length()-length);
            System.out.println(stemmedList[count]);
            count++;
        }
  }
}
class-MyClass{
公共静态void标记\词干生成(字符串[]标记,字符串[]后缀)
{
整数计数=0;
String[]stemedList=新字符串[tokens.length];

对于(inti=0;i查找这段代码

if(tokens[i].charAt(strlength--)=后缀[j].charAt(suflegnth--)
{
//这部分是在哪里
//你应该编码
//你家庭作业的答案是什么
}
其他的
{
flag=1;
}

我不完全确定你在找什么,但标准的词干分析器是Martin Porter的。我在我的博客上有一个实现:。有很多词干分析器。谷歌“雪球词干分析器”