文字N-gram (G検定)

文字N-gram

1. 定義と概要

文字N-gram(文字単位のNグラム)とは、テキストを文字単位で分割し、隣接するN個の文字を連続する塊として切り出す手法です。たとえば「おはよう」の文字列でN=2(文字バイグラムと呼ばれる区切り方)の場合、「おは」「はよ」「よう」の2文字ずつの並びが得られます。

Nの値をいくつにするかで、呼び名も変わります。

呼び名 Nの値 切り出される並び
文字ユニグラム 1 1文字ずつ
文字バイグラム 2 連続する2文字
文字トライグラム 3 連続する3文字

Nがそれぞれ1、2、3のときの呼び方であり、それぞれの個別の具体例や特徴は別のテーマとして扱われます。

英語のようにスペースで単語が区切られる言語と異なり、日本語には単語の境界を示す空白がありません。そのため単語単位でテキストを扱うには、辞書と文法規則を使って文章を単語に分割し、品詞なども判定する形態素解析(この単語分割の作業は分かち書きと呼ばれます)の前処理が欠かせません。

しかし形態素解析には限界もあります。辞書に載っていない新語や固有名詞、誤字(これらは未知語と呼ばれます)をうまく切り出せないことがあり、処理には相応のコストもかかります。

文字Nグラムは文章を文字数で機械的に区切るだけで済むため、こうした言語ごとの下ごしらえを経ずにテキストを数値データとして扱い、比較できる手法として位置づけられます。

2. 試験対策ポイント

まず整理したいのは、文字Nグラムの中心的な特徴です。日本語のように分かち書きをしない言語でも、形態素解析の工程を経ずにテキストを扱える点にあります。単語の境界をどこで区切るかを判定する処理そのものが不要になるためです。

あわせて整理しておきたいのが、表記ゆれ(送り仮名や漢字・かなの書き方が揺れて複数の表記になること)や誤字、未知語に強い特性です。単語全体が完全に一致しなくても、部分的な文字の並びが一致していれば類似度や特徴を捉えられます。この性質は、単語という単位を厳密に扱わないからこそ生まれるものです。

一方で、制約もあります。文字単位に分解すると、単語のひとまとまりとしての意味を崩しやすくなる点は取り違えやすいところです。

加えて、Nの値を大きくすると出現しうる文字の組み合わせの種類、すなわち次元(ここでは文字の組み合わせパターンの種類の数を指します)が急増します。実際に観測される組み合わせの割合はそのぶん下がり、疎(スパース)と呼ばれる、大部分が空白のまま出現しない状態になりやすい点も整理しておきたいポイントです。

なお、単語埋め込み(単語の意味を数値のベクトル、すなわち数字の並びとして表す技術)の手法である「fastText」は、単語をさらに部分文字列(サブワード)に分解して扱う点で文字Nグラムの考え方と関連します。部分文字列(サブワード)は、単語をさらに細かく分けた文字のかたまりを指す言葉で、仕組みの詳細は別のテーマとして扱われます。

3. 関連概念との比較・相違点

「単語N-gram」との最大の違いは、区切りの単位と、それに伴う分かち書き・形態素解析の要否にあります。観点を並べると、両者の得手不得手が裏返しの関係にあることが見えてきます。

観点 文字Nグラム 単語Nグラム
区切りの単位 文字 単語
日本語での前処理 分かち書き・形態素解析を経ずに済む あらかじめ分かち書き・形態素解析が必要
意味の捉えやすさ 単語のまとまりを崩しやすい 単語のまとまりをそのまま扱える
未知語・表記ゆれ 強い 文字Nグラムに比べて弱い

意味の捉えやすさに勝るのは単語Nグラム、未知語や表記ゆれへの強さに勝るのは文字Nグラムという関係です。どちらが優れているかではなく、扱うテキストの性質で選び分ける対象と考えると整理しやすくなります。

形態素解析との最大の違いは、テキストを単位に分ける際に事前の辞書・文法規則を必要とするかどうかにあります。形態素解析は辞書と文法規則を参照しながら単語の境界を判定する処理であるのに対し、文字NグラムはNという数値だけを決めれば機械的に区切りが定まります。

辞書のメンテナンスや文法規則の整備を要しない分だけ、文字Nグラムは扱いが単純です。その一方で、区切られた単位そのものには言語的な意味が伴わない点が形態素解析との違いになります。

4. ビジネス・実務での活用シナリオ

検索エンジンや全文検索システムでは、文字Nグラムで文書をインデックス化(検索しやすい形に整理すること)する方法が使われます。形態素解析の辞書に載っていない新語や固有名詞を含む文書も検索対象にできるため、部分一致検索で辞書にない語も取りこぼしにくくなります。辞書の更新を待たずに新しい言葉を含む文書を拾える点が、この方式の実利的な価値です。

顧客データの名寄せ(同一人物のデータをひとつにまとめること)や住所照合の場面でも、文字Nグラムは役立ちます。氏名や住所には送り仮名の違いや入力ミスによる表記ゆれが付きものですが、文字単位の一致度から同一人物・同一住所の候補を拾えるためです。単語単位で完全一致を求める方法では見逃してしまう候補も、文字の並びの近さを手掛かりに拾い上げられます。

スパムフィルタや言語判定、著者推定の分野では、文字Nグラムの出現頻度パターンが特徴量(分析や判定の手掛かりとして使う数値データ)として使われます。文章がどの言語で書かれているか、あるいは特定の書き手の文体的な傾向はどうかといった判別は、個々の単語よりも文字の並びの癖に表れやすいためです。文章の意味内容を読み取らなくても、統計的な手掛かりだけで判別できる点が実務上の利点になっています。

5. 要点まとめ

  • 文字Nグラムは文章を文字単位で区切り、連続するN文字の並びを取り出す手法で、日本語のように分かち書きしない言語でも形態素解析なしに扱えます。
  • 表記ゆれ・誤字・未知語に強い一方、単語という意味のまとまりを捉えにくく、Nを大きくすると組み合わせの種類(次元)が急増してデータが疎になりやすい傾向があります。
  • 単語Nグラムとは分かち書き・形態素解析の要否や意味のまとまりの捉えやすさで対比され、全文検索・表記ゆれ照合・言語判定などの実務で使われています。

6. 確認問題

問1文字Nグラムは、日本語のように単語の境界を空白で示さない言語でも、形態素解析を行わずにテキストを区切ることができる。

解答・解説をみる

○ 正しい

文字Nグラムは文字数で機械的に区切るため、単語の境界を判定する形態素解析の工程を経ずにテキストを扱えます。分かち書きの要否は単語Nグラムとの対比でも整理しておきたい論点です。

問2文字Nグラムは単語のまとまりを直接扱うため、単語Nグラムよりも文章の意味的なまとまりを捉えやすい。

解答・解説をみる

× 誤り

正しくは逆の関係にあります。文字単位に分解する文字Nグラムは単語という意味のまとまりを崩しやすく、意味のまとまりを捉えやすいのは単語単位で区切る単語Nグラムの方です。

問3文字NグラムでNの値を大きくすると、出現しうる文字の組み合わせの種類が増え、データが疎になりやすい。

解答・解説をみる

○ 正しい

Nを大きくするほど文字の組み合わせのバリエーションが急増し、実際に観測される組み合わせの割合が下がります。必要なデータ量や次元数とのバランスが課題になる点です。