0

私は PorterStemmer を使用して、「作業中」のように単語をステミングしています。PorterStemmer クラスを呼び出した後は「作業中」になり、うまくいきました。

しかし、たとえば、次の文を自分のコードに与えると、文をステム処理したいと思います。

「私は十分な力を持っているので、サッカーをして一生懸命働いています」

「私は十分な力を持っているので、サッカーをして一生懸命働いています」

私のコードは 1 つの単語だけをステミングしているため、php で「foreach」ループを使用すると問題が発生するようです。

私のコード:

$str=('I am playing football and working hard because I have powerful enough');
$parts = explode(' ', $str);

$word_to_stem = $str;
$stem = PorterStemmer::Stem($word_to_stem);

さて、$parts私の文は配列として含まれています。どのようにすべての単語を語幹化し、その後、新しい文を新しい変数と呼ばれる新しい変数に入れることができますか$str2

4

1 に答える 1

0

したがって、すべての単語を語幹化したい場合は、次のようにします。

$str=('I am playing football and working hard because I have powerful enough');
$parts = explode(' ', $str);
$stemmed_parts = array();

foreach ($parts as $word) {
    $stemmed_word = PorterStemmer::Stem($word);
    $stemmed_parts[] = $stemmed_word;
}

echo implode(' ', $stemmed_parts);
于 2016-03-17T13:07:15.260 に答える