-4

質問: ステミングは単語の接尾辞を削除して、語形変化した (または派生した) 単語を原形または語根形に減らします。たとえば、「フレンドリー」は「フレンド」の語形変化です。ステミングによって (この場合、ステミングとは接尾辞「ly」を削除することを意味します)、「友好的」は「友人」に縮小されます。トークンのリストとサフィックスのリストが与えられた場合、タスクは、サフィックスのリストに見つかった場合にサフィックスが削除されたすべてのトークンを標準出力 (stdout) に出力する関数を作成することです (1 行に 1 つのトークンを出力してください)。トークン 削除できる接尾辞が複数ある場合は、最も長いものを選択してください 関数は次の引数を受け取ることに注意してください。

私のコード:

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 に答える