ここで公開されている Porter Stemming アルゴリズムの Matlab 実装を使用します。"ies"
テキストの大部分で使用すると、文字列が渡されたときにエラー メッセージが表示されます。
>> porterStemmer('ies')
エラーメッセージが表示されます:
Subscript indices must either be real positive integers or
logicals.
Error in porterStemmer>step2 (line 274)
switch b(k-1)
Error in porterStemmer (line 42)
x = step2(x{1}, x{2}, k0);
は"ies"
一般的な語尾であり、スクリプトの 223 行目にelseif ends('ies', b, k)
.
このような場合にプログラムが堅牢であることを期待していました。それを考えるのは間違っていましたか、それともこれはバグですか?
当分の間、Porter Stemmer 2 (こちら) を使用することに頼りました。これは、エラーをスローせず、「ies」を「ie」にステミングします。「ies」のステミングは明らかに少し無意味ですが、このようなエッジケースでエラーをスローしたくありません。