まず、通常、ステミングによって精度が向上する理由を理解する必要があります。トレーニング セットで次の文を想像してください。
彼は2013年に平均以下のサッカーをしましたが、それ以前は上昇プレーヤーと見なされており、ガードまたはセンターをプレーできます.
テストセットでは次のようになります。
マークを含む多くのプレーヤーを検討しています
最初の文には、「プレーヤー」という単語を含め、スポーツに言及する単語が多数含まれています。テスト セットの 2 番目のセンテンスでもプレーヤーについて言及していますが、「プレーヤー」ではなく「プレーヤー」という複数形であるため、分類子にとっては別個の無関係な変数です。
ステミングは、単語の正確な形式などの詳細を切り取り、分類のための特徴として単語ベースを生成しようとします。上記の例では、ステミングによって両方の単語が「プレーヤー」(または「プレイ」) に短縮され、同じ機能として使用されるため、2 番目の文が「スポーツ」クラスに属するものとして分類される可能性が高くなります。
ただし、これらの詳細が単独で重要な役割を果たす場合もあります。たとえば、「runs today」というフレーズはランナーを指す場合がありますが、「long running」は電話のバッテリー寿命に関する場合があります。この場合、ステミングは分類を悪化させますが、良くはしません。
ここでできることは、同じ単語/語幹の異なる意味を区別するのに役立つ追加機能を使用することです。2 つの一般的なアプローチは、n-gram (例: バイグラム、個々の単語ではなく単語のペアで構成される機能) と品詞( POS ) タグです。ステム + ステムのバイグラム、単語 + 単語のバイグラム、ステム + POS タグ、ステム、バイグラム、POS タグなど、それらの任意の組み合わせを試すことができます。
また、他のアルゴリズムを試してみてください。たとえば、 SVMは Naive Bayes とは非常に異なるアプローチを使用するため、NB が無視するデータ内のものをキャッチできます。