〔注〕
テキスト研究における N-gram 分析に関するメモ

家辺勝文
N-gram 統計とは,対象となるテキストの中で,連続するN個の表記単位(gram)の出現頻度を求めることである。それによって,テキスト中の任意の長さの(共起)表現の出現頻度パターンなどを知ることができる。表記単位(gram)としては,文字または空白で分かち書きされる単語が使われる。N-gram で N=1 の場合を unigram,N=2 の場合をbigram,N=3 の場合を trigram という。
 例えば「あいうえおあいう」というデータから N=3 で N-gram の種類を求めると,「あいう」「いうえ」「うえお」「えおあ」「おあい」の5種類となる。データがこれだけなら,出現頻度は「あいう」が2でその他はそれぞれ1である。すなわち「あいう」の出現確率とは「あい」が先行して生起することを条件とした「う」の出現確率に他ならない。N-gram 統計を使って,テキスト中の欠字・不明字などを,先行する適当な長さの文字列を手がかりに確率的に推測するような使い方もできるが確定することはできない。
 英語のように分かち書きされる書き言葉の場合は,単語を表記単位として,N個の隣接する単語の共起頻度を求めることも簡単である。しかし,分かち書きをしない日本語の書き言葉のような場合,文字を表記単位として,むしろ意味とは無関係に任意の長さの文字連鎖の共起頻度を求め,その種類ごとの統計をとってテキストの特徴を記述する方法として使われたりしている。
 コンピュータでの N-gram 統計においては,表記単位は当然文字の符号化の方法に依存する。1文字の区切りも同様であり,何らかの言語学的な分析の結果得られる,音節,音素,または文字とは必ずしも一致しない。「文字」単位の場合,そもそも意味は度外視しており,技術的に“gram”単位で統計処理が可能なものを対象にしているだけだが,それでも頻度分析には利用価値があるという判断を前提とした統計手法である。
 N-gram 統計を使うと,アルファベットの各文字を適当に別の文字と置き換えた暗号アルファベットによる初歩的な暗号文を簡単に解読することができる。各文字の出現頻度は言語ごとに特徴的なパターンがあることが知られており,書かれている言語さえわかれば,暗号アルファベットの各文字の出現頻度分析だけで,対応する平文のアルファベットが特定できてしまうからだ(むずかしいケースもある)。さらに隣接する2文字ないし3文字の出現頻度も合わせれば,もう少し複雑な暗号にも手がかりがつかめる。この頻度分析による暗号解読法の原理を発見したのは,9世紀のイスラームの科学者であった(サイモン・シン著/青木薫訳『暗号解読』[新潮社,2001]などを参照)。
 「文字」を対象にした N-gram 分析によって,めったにあらわれない文字連鎖を機械的に見つけだすことができる。これを利用してスペリングの誤りを発見したり,書き間違いを発見したりする手法が研究されてきた。
 N-gram 分析で一つの作品のスタイルを統計的に記述することもできる。それによって,いくつかの作品の類似性を分析したり,同じ書き手によるものかどうかを判定したりすることができると考える人たちもいる。また,テキスト中の漢字の部分だけを統計の対象としたり,ひらがなの部分だけを対象とすることもできる。ただし,多くの場合,句読点などの区切り符号は無視されたり,すべて同じ種類の区切り符号として扱われたりしている。それに対して,テキストに手を加えて漢字表記をすべて仮名書きにした上で N-gram 分析を行っている例(下記の論文をオンラインで読むことができる)もあるが,その書き換えの妥当性には疑問が残る。

近藤泰弘
「コンピュータによる文学語学研究にできること ―古典語の「内省」を求めて―」(全国大学国語国文学会夏季大会シンポジウム「情報技術は文学研究をいかに変えるか」発表レジュメ,2001年6月)
http://klab.ri.aoyama.ac.jp/public
/paper/20010602.pdf

近藤 泰弘・近藤 みゆき
「平安時代古典語古典文学研究のためのN-gramを用いた解析手法」(言語情報処理学会第7回年次大会『発表論文集』2001)
http://klab.ri.aoyama.ac.jp/public
/paper/20010328.pdf

***
参考となるウェブサイト
Nグラムによるテキスト研究(師 茂樹)
http://www.ya.sakura.ne.jp/~moro
/resources/ngram/index.html


閉じる