ストップワード
検索やテキスト分析で除外される頻出語。「の」「は」「a」「the」など意味的に重要度の低い語。
ストップワード (stop word) は、テキスト分析や検索エンジンのインデックス作成で除外される頻出語です。日本語では「の」「は」「が」「を」「に」「で」「と」などの助詞、英語では "a" "the" "is" "in" "and" "of" などの冠詞・前置詞・be 動詞が該当します。これらの語は出現頻度が極めて高い一方、単独では意味的な情報をほとんど持たないため、テキスト分析のノイズとなります。
ストップワードを除外する主な目的は、検索精度の向上とインデックスサイズの削減です。全文検索エンジンで頻出語をインデックスから外すと、転置インデックスが保持する投稿 (postings) の数が大きく減ります。情報検索の代表的な教科書 Introduction to Information Retrieval が Reuters-RCV1 コーパスで示した実測では、頻出上位 150 語を除いた時点で位置情報なしの投稿数が約 3 割減っています。テキストマイニングでは、ストップワードを除外した後に TF-IDF (Term Frequency-Inverse Document Frequency) を計算することで、文書の特徴を表すキーワードをより正確に抽出できます。
ストップワードリストは言語ごとに異なり、用途によっても変わります。Python の自然言語処理ライブラリには英語の標準リストが同梱されていますが、収録語数はライブラリや版によって変わるため、依存を固定していない環境では実際に読み込んだリストを確認してから使うのが前提です。日本語のストップワードリストは形態素解析の結果に基づいて構築され、助詞・助動詞・接続詞が中心です。ドメイン固有のストップワード (医療分野での「患者」、法律分野での「条項」など) を追加することで、分析精度をさらに向上させることもあります。
ただし、ストップワードの一律除外には注意が必要です。"to be or not to be" のようにストップワードが意味の核心を担うケースや、"The Who" (バンド名) のように固有名詞にストップワードが含まれるケースでは、除外すると情報が失われます。フレーズ検索 ("New York" など) でもストップワードの位置情報が重要になるため、完全な除外は適切ではありません。
Web 検索エンジンは一般にストップリストを使いません。圧縮技術によって頻出語の投稿を保持するコストが下がり、語の重み付け (idf) によって超頻出語がランキングにほとんど影響しなくなったため、あえて捨てる利点が薄れたからです。検索エンジンや大規模言語モデルは、機能語を含む文全体からクエリの意図を判断します。BERT などのトランスフォーマーモデルは、ストップワードを含む文全体から文脈を学習するため、前処理でのストップワード除外が逆効果になることもあります。
文字数カウントとの関連では、ストップワードはテキスト全体の文字数に占める割合が大きいという特徴があります。英語では頻出上位 30 語だけでトークン全体の約 3 割を占めることが前述のコーパス実測で確かめられており、日本語でも助詞は文字数の相当な割合を占めます。文字数制限のあるコンテンツ (ツイート、メタディスクリプションなど) では、ストップワードを意識的に削減することで、限られた文字数の中により多くの情報を詰め込むことができます。