ステミングとは
ステミング(Stemming)とは、単語の語尾を機械的なルールに従って切り落とし、語幹(ステム)を抽出する自然言語処理の前処理手法です。異なる活用形や派生形を共通の形に統一することで、テキスト検索やテキスト分析の精度を向上させます。
| ひとことで言うと | 単語の語尾を機械的に切り落として、語幹だけを取り出す前処理。 |
|---|---|
| どこで使う | 英語の検索システムやテキスト分類での表記の統一。 |
| 注意点 | ルールで切るだけなので、存在しない語になることもある(studies→studi)。 |
代表的なステミングアルゴリズム
Porter Stemmerは1980年に提案された英語のステミングアルゴリズムで、最も広く知られています。Snowball Stemmerはporter stemmerの改良版で、多言語に対応しています。Lancaster StemmerはPorterよりも攻撃的に語尾を除去します。
1単語を受取るrunning, runs, ran
▶
2語尾ルール適用-ing, -s を落とす
▶
3語幹を取得run, run, ran
▶
4表記を統一検索でまとめて扱える
※ 正確さより速度重視。きちんと辞書形にしたいときはレンマ化を使います。
ステミングの例
「running」「runner」「runs」はすべて「run」にステミングされます。ただし、「studies」が「studi」になったり、「university」と「universe」が同じ「univers」にステミングされるなど、不正確な結果が生じることもあります。
レンマ化との使い分け
ステミングは高速でシンプルな反面、言語学的な正確さに欠けることがあります。レンマ化は辞書と品詞情報を利用して正確な基本形を返しますが、処理速度は遅くなります。大量のテキストを高速に処理する情報検索ではステミング、精度が重要なタスクではレンマ化が適しています。