自然言語処理
自然言語処理とは、人間が日常で使う言葉、いわゆる自然言語を、コンピュータに解析・処理させる技術領域のことです。英語では natural language processing、略して NLP と呼ばれます。
自然言語処理を具体例で理解する
アンケートの最後に、こんな自由回答欄を置いたとする。
「サービスについて感じたことを、自由にお書きください」
戻ってきたのは、5,000 件の文章だった。
人が一件ずつ読めば学びは多いが、全部に目を通すのは現実的ではない。そこで、文章をいったん単語に分け、どの語が何回出たか、どの語とどの語が一緒に使われやすいかを機械に数えさせる。肯定的な表現か否定的な表現かを判定させることもできる。
言葉のかたまりを、機械が扱える形へほどいていく。
この一連の処理を支えているのが、自然言語処理である。
自然言語処理の仕組み
日本語の文章は、英語のように単語が空白で区切られていない。そこでまず形態素解析を行う。形態素解析とは、文章を「待ち時間/が/長い」のように意味のある最小単位へ分割し、品詞を判定する処理だ。
語に分けてしまえば、あとは数えたり、つなげたり、分類したりできる。出てくる語の頻度を数えるテキストマイニング、文章が肯定か否定かを判定する感情分析、別の言語へ訳す機械翻訳などは、いずれも自然言語処理の応用にあたる。近年話題の大規模言語モデル(LLM)も、この技術領域が積み重ねてきた成果の一つだ。ただし LLM は、語を数えたり分けたりするより、確からしい続きを生成する側に寄っており、ハルシネーションなど別の限界を持つ。
つまり自然言語処理は、読むしかなかった言葉を、機械が数えたり分けたりできる形に変えるための技術だといえる。
自然言語処理は何に使うのか
調査の現場では、たとえば次のような場面で力を発揮する。
- 大量の自由回答やレビューを、人手では追えない規模でまず俯瞰したいとき
- どんな話題が多く語られているか、当たりをつけたいとき
- 時期や属性によって語られ方がどう違うかを比べたいとき
- 問い合わせ履歴や SNS の投稿から、繰り返し出てくる論点を探したいとき
価値の核心は、規模にある。数千、数万の声を一度に見渡せるのは、機械に言葉を処理させているからだ。ただし、規模はあくまで出発点にすぎない。
自然言語処理でわからないこと
最も誤解されやすいのは、出てきた集計を、そのまま結論だと受け取ってしまうことだ。
機械は文脈に弱い。皮肉や反語、省略、固有名詞の取り違えは起きやすく、とくに日本語では表記ゆれや新語に弱い。「ゴミ」と「ゴミ」を別の語と数えたり、「おいしくない」を肯定的な語として拾ったりする。
頻度が高いことも、重要であることを意味しない。多く出てくるのは、単にみんなが口にしやすい言葉だからかもしれない。少数だが切実な声は、頻度では沈む。
さらに、学習に使われたデータが偏っていれば、出力もその偏りを引き継ぐ。LLM が特定の集団の意見を偏って反映したり、立場の弱い人たちをうまく表現できなかったりすることは、査読を経た研究でも繰り返し報告されている。一方で、多言語の膨大な文章を高速に処理できる有用性も同じ研究群が認めており、有用さと危うさは表裏の関係にある。
だから、自然言語処理の出力は、分類や集計の下ごしらえであって、解釈そのものではない。
自然言語処理とは、言葉を数えられるようにする技術である
文章を機械が扱える形にした瞬間、そこにあった一つひとつの語り口は、頻度や分類の中に溶けていく。
機械が言葉を「数えられる」形にしてくれても、その言葉が何を意味するのかを読むのは、やはり人だ。
その「待ち時間」は、誰の、どんな場面の待ち時間だったのだろう。
きれいな集計ができたとき、仕事はまだ半分だと思う。だから頻度表で止めず、上位の語がどんな場面で使われたのか、元の文章に戻って自分の目で読む。