-4

问题:词干删除词后缀以将屈折(或有时派生)的词减少到它们的基本形式或词根形式。例如,“友好”是“朋友”的变形。通过词干(在这种情况下词干意味着删除后缀“ly”),“友好”被简化为“朋友”。给定一个标记列表和一个后缀列表 你的任务是编写一个函数,将所有标记都打印到标准输出(stdout),如果在后缀列表中找到所有标记(请每行打印一个标记) token 如果有多个后缀可以删除,请选择最长的一个注意,您的函数将接收以下参数:

我的代码:

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++;
        }
  }
}
4

1 回答 1

1

查找这部分代码。

if(tokens[i].charAt(strlength--)==suffixes[j].charAt(suflegnth--))
{
    // this section is where
    // you should code
    // the answer to your homework
}
else
{
    flag=1;
}
于 2013-05-31T22:35:41.483 回答