文書分類と固有表現抽出 — 文の意味をラベルにする

前のレッスンで、言葉は数(ベクトル)にできると学びました。今度はその数を使って、文にラベルを貼る2つの定番タスクを動かします。文まるごとに1枚貼るのが文書分類(ポジ/ネガ・迷惑/正常)、文の中の単語に貼るのが固有表現抽出(NER)です。どちらも実務で最もよく使うNLPです。

1. 単語の重みを足すだけ — 文書分類のしくみ

感情分析やスパム判定の一番やさしいモデルは、驚くほど単純です。単語ごとに「プラス/マイナスの点数(重み)」を持たせておき、文に出てきた単語の点数を全部足すだけ。合計がプラスに傾けばポジティブ、マイナスなら ネガティブ、というわけです。

下のデモは、文を左から読みながら1単語ずつ点数を足していきます。針がどちらに倒れるかを見てください。スパム判定に切り替えても、やっていることは同じ「足し算」です。

感情メーター — 単語の点数を足して判定する
緑の単語=プラス点、赤=マイナス点、灰色=点数ゼロ(意味を持たない語)。読み進むほど針が動き、読み終わると判定が出ます。強い言葉(最高・最悪など)ほど針を大きく振ります。
POINT — 分類は「重みつきの投票」 各単語がスコアに一票ずつ投じ、その重みの合計で多数決する。これが線形分類器の考え方。単純だが、単語さえ効いていれば感情分析やスパム判定で驚くほどよく効く。
スコア = Σ単語 i ( 重みi × 出現回数i )  →  スコア > 0 ならポジ、< 0 ならネガ 重み wi は人が決めるのではなく、大量のラベル付き文から学習で決まる(次の節)

2. 重みはどこから来る? — データから学ぶ

「最高」がプラス、「最悪」がマイナス。この点数は誰かが手で決めたわけではありません。正解ラベル付きの例文をたくさん見せると、自動で決まっていきます。ポジティブな文によく出る単語は少しずつプラスへ、ネガティブな文に出る単語はマイナスへ引っぱられるのです。

下のデモは学習のイメージです。例文を見るたびに各単語の重みが目標へ寄っていきます。データ量を増やすと重みがはっきりし、判定に自信が持てるようになります。

学習アニメ — 重みが育っていく
中央が「重みゼロ」。緑の棒が右に伸びるほど強いプラス語、赤が左に伸びるほど強いマイナス語。点線は「学習しきった目標値」。データが少ないと棒は目標まで届かず、重みが控えめ(=自信が持てない)ままです。
注意 — 単語だけ見ると足をすくわれる 「最高に最悪だった」「まったく面白くない」のように、否定や皮肉があると単語の足し算は間違える。だから実務では単語の並び(文脈)を読む BERT などの言語モデルへ発展する。単純モデルの限界を知っておくことが大切。

3. 固有表現抽出(NER)— 文の中の「名前」を見つける

文書分類は文に1枚のラベルでした。固有表現抽出(NER)はもっと細かく、文の中の単語のかたまりに種類を付けます。人名・地名・組織名・日付などの「固有名詞」を拾い出す作業です。検索・要約・情報抽出の土台になります。

下のデモでは、タガー(付け屋)が文を左から1単語ずつ走査し、固有名詞を見つけると色を塗って種類の札を立てます。人名=青/地名=緑/組織=橙/日付=紫。

NERタガー — 走査しながらタグを立てる
走査中の単語が黄色い枠で光ります。固有名詞なら下線と札が付き、隣り合う同種の単語(「山田」+「太郎」)はひとつのかたまりとして繋がります。ふつうの語は色が付きません。

4. BIO記法 — どこで始まり、どこで終わるか

「山田 太郎」のように名前が2単語にまたがると、「どこからどこまでが1人の名前か」を機械に伝える必要があります。そこで各単語に3種類の印を付けます。B(Begin=かたまりの先頭)・I(Inside=続き)・O(Outside=固有名詞ではない)。これがBIO記法です。NERは結局「各単語にBIOタグを予測する分類問題」に落とし込めます。

BIOタグ — 単語ごとの印で範囲を表す
各単語の下に B-種類 / I-種類 / O の札。B で新しいかたまりが始まり、I が続きを表します。「日本 電気」が B-組織 → I-組織 と繋がって1社になるのが要点です。
POINT — 単語ごとの分類に化ける 文書分類が「文まるごと1ラベル」なのに対し、NERは「単語ごとにBIOラベル」を付ける系列ラベリング。予測の単位が細かくなっただけで、根っこは同じ分類問題。だから同じ機械学習の道具が使える。

5. まとめ — ラベルを貼る2つの粒度

一歩先へ — 単語の足し算から文脈の理解へ ここで見た「重みの足し算」は最もやさしいモデル。現代は BERT のような言語モデルが単語の並びまで読み、「面白くない」の否定や皮肉、「アップル(会社)」と「りんご(果物)」の違いを文脈から判断する。それでも「文に or 単語にラベルを貼る」という枠組み自体は変わらない。土台はここにある。