- N-gramモデルは、情報理論の創始者として知られるクロード・エルウッド・シャノン(Claude Elwood Shannon 1916-2001)が、考え出した言語モデルです。
- ここでは、N-gramモデルの仕組みと人文科学の分野へのN-gramモデル導入史について解説しています。
N-gramモデルとは?
- N-gramモデルは、情報理論の創始者として知られるクロード・エルウッド・シャノン(Claude Elwood Shannon 1916-2001)が、考え出した言語モデルです。
- シャノンの情報理論については、『A Mathematical Theory of Communication(邦訳:コミュニケーションの数学的理論)』(C.E.シャノン、W.ヴィーヴァー著:長谷川淳、井上光洋訳 明治図書出版 1964 Nacsis Webcatの検索結果)を参照 してください。
- INTERNET Watch誌上のシャノンの訃報記事
- 稲盛財団の第一回京都賞も受賞されています
- シャノンは、コンピュータの情報処理系統を10進数から2進数に転換する基礎理論を構築した研究者で、bitの単位も彼が考え出しました。コンピュータの歴史を語る上では欠かせない一人です。
- N-gramモデルとは、「ある文字列の中で、N個の文字列または単語の組み合わせが、どの程度出現するか」を調査する言語モデルを意味します。
- N-gramモデルを扱う前提として、文字列や単語の発生確率が直前の文字列や単語に依存すると仮定します。
- 実際の言葉や文字は、直前の文字列だけに拘束される事はありません。
- しかし、現実的にはかなりな有効性を示します。
- そのため、自然言語学の確率・統計的な分野でよく利用されますが、仕組みが非常に単純なために多くの欠点も存在します。
0頻度(スパースネス)問題
- たまたまN-gram統計をとったサンプルで、頻度が0や少ない文字列の扱い
- 頻度0だからといって、世の中にその文字列の組み合わせが存在する確率が0であるわけではない。
サンプルに起因する問題
- Nの値を大きくすると、N-gramモデルの精度が落ちる
- Nの値を大きくすると、指数関数的に共起の組み合わせ数が増える
- 共起頻度(後述)が低い文字列が大量に発生
- 日本語や漢字文献では、それらの殆どが「文章的には意味のない文字の組み合わせ」である
- ノイズの発生
↑ ページ先頭
共起関係と共起頻度
- N-gramモデルでは、隣り合った文字列または単語の組み合わせを「共起関係」と呼びます。
- また、「共起関係」がどの程度現れるかを集計した結果を「共起頻度」と呼びます。
共起関係の例
| 1(uni)-gram | 「あ」「a」「亜」 |
|---|---|
| 2(bi)-gram | 「あい」「ab」「亜居」 |
| 3(tri)-gram | 「あいう」「abc」「亜居禹」 |
共起頻度の例
- 「あきのたのかりほのいほのとまをあらみわがころもではつゆにぬれつつ」
- 上の和歌を例に1-gramモデルで共起頻度を集計
| 共起頻度 | 4 | 3 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 文字列 | の | つ | あ | ほ | い | か | が | き | こ | た | で | と | に |
| 共起頻度 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
| 文字列 | ぬ | は | ま | み | も | ゆ | ら | り | れ | ろ | わ | を |
↑ ページ先頭
N-gramモデルを利用した事例
- あるテキストから、任意のN-gram単位で共起頻度を集計し(N-gram統計を取る)、その結果を利用してテキストや言語の性格を見いだす研究によく利用される。
- N-gramモデルで、ある文字列の直後に、特定の別な文字列は出現する確率を求める。
- 「an」の後には、必ず母音(aiueo)で始まる単語が結びつく確率が100%
- 「q」の後には、「u」が結びつく可能性が高い。
- 『論語』では「子」の後に「曰」が結びつく可能性が高い。
- 「百人一首」を平仮名に開いた場合の延べ数は、上位十五位までで全体の五割の使用量を占める(全部で六十八種の異なる平仮名(濁点含む)が使われている)
- 音声認識やOCR(原稿読みとりソフト)での利用
- 読みにくい文字でも、共起頻度の発生確率を考慮すれば、正しく原稿を可読出来る
↑ ページ先頭
人文学的へのN-gramモデル導入
近藤みゆき氏の研究―和歌の使用文字におけるジェンダー性の発見―
- 上記のように、自然言語分野でよく使われていたN-gramモデルを、人文学、特に古典学の分野に導入する事を思いついたのは、実践女子大学の近藤みゆき氏である。
- 近藤氏は、古今和歌集のN-gramモデルの共起頻度を分析した結果から、特定の表現形式が男性・或いは女性にのみ偏って出現する事を明らかにし、和歌の表現形式にジェンダー性が存在する事を指摘した。
- 「nグラム統計処理を用いた文字列分析による日本古典文学の研究ー古今和歌集のことばの型と性差ー」(千葉大学『人文研究』第29号、2000)
- 従来、大量のデータを取り扱う場合、どうしても手作業では気が付かないデータの特徴というものが存在したのも事実である。
- それを近藤氏は、N-gramモデルを利用しての機械的な共起頻度集計を行い、その中から有為なデータを見つけだす事に成功した
- その他の、近藤氏の手になるN-gram関連諸論文は以下の通り
- 「平安時代古典語古典文学研究のためのN-gramを用いた解析手法」(共著、言語処理学会第7回年次大会『発表論文集』、2001)
- 「和歌とジェンダー」(『国文学』〈特集・和歌の脱領域〉平成12年4月号、学燈社、2000)
- 「nグラム統計処理を用いた文字列分析による日本古典文学の研究ー古今和歌集のことばの型と性差ー」(千葉大学『人文研究』第29号、2000)
↑ ページ先頭
漢字文献情報処理研究会のN-gram特集号
- 近藤氏の研究に触発されたのが、漢字文献情報処理研究会の一部のメンバーである。
- 昨今のUnicodeに収録される漢字の大規模化やその他の大規模文字セットの進展
- これまでの「どうJISに無い文字を表現するか」という問題から脱却し、漢字文献を本格的に情報処理の対象として取り扱うだけの環境が整いつつあった。
- 単純だが強力なN-gramモデルの導入は、丁度タイミングが合ったと言えるだろう。
- 会の機関誌である『漢字文献情報処理研究』第二号では、「N-gram特集」と銘打って、近藤みゆき・泰弘両氏を始めとする論文が載せられ、漢字文献に於けるN-gram統計処理に関し、様々の試みを行っている。
- 駒沢短期大学の石井公成氏 「N-gram利用の可能性 ―仏教文献における異本比較と訳者・作者判定―」
- 氏は、複数のN-gramの共起頻度集計結果を同時に比較する手法を用いて、複数テキストの比較検討の可能性について述べ、それをNGSM(N-gram Based System for Multiple Documents)と名付けた。
- このNGSM作成用のperl scriptは、青山学院大学の近藤泰弘氏により作成された。氏のWebサイトにて配布されている。
- 谷本玲大氏 「曖昧検索性を持たせたN-gramサーチの手法 ―『新撰萬葉集』と菅原道真の詩の比較を例に―」
- 日本語の特徴を鑑み、N-gramモデルを一対一の関係で捉えるのではなく、「一対多」の関係も把握する事の必要性とperl script提示を試みた論(scriptはこちらで公開)。
- 日本語のみならず、同じパターンを少しづつ変化させて用いる漢字文献にも利用可能な考え方であり、今後の発展が期待される。
- 花園大学の師茂樹氏は、N-gramモデル構築用のperl script 「morogram」を開発した
- morogramは、utf-8のテキストを対象に、N-gramの共起頻度を集計するコンピュータプログラム。
- 従来のN-gram共起頻度集計プログラムは、JIS X 0208の範囲でしか文字を処理できなかった。
- 多種の漢字を扱う漢字文献には不向きだった
- 師氏も当該雑誌の論文「XMLとNGSMによるテキスト内部の比較分析実験 ―『守護国界章』研究の一環として―」で取り扱ったように、Unicodeの実体参照形式を利用してN-gram共起頻度集計を取っていた。
- しかし、morogramの登場で、漢字文献も気軽にN-gram統計が取れるようになった。
- 但し、日本語文献でN-gram統計を取るという手法自体の妥当性についても、疑問が発せられている。
- 家辺勝文 テキスト研究における N-gram 分析に関するメモ
↑ ページ先頭
N-gram統計をとるテキストについて
- N-gram統計をとる電子テキストは、ある一定のルールに則って整えられている必要があります。
テキストの性質について
- 同一テキスト中に旧字・旧かな・新字・新かな・各種異体字が混在していたりするような場合は、テキストの性質に従って用字・仮名遣い等を統一しておく必要があります。
- 統一しておかないと、それぞれが別個のデータとして集計されるため、有為な統計データでは無くなる可能性があるためです。
- 但し、混在自体にテキスト的な意味があり得ると判断した場合は、この作業を行う必要はありません。
- また、既存の文字集合に収まりきらない文字は、morogramでは実態参照形式を利用して処理する事が可能ですが、その際には同じ文字を複数の番号に割り当てたり、複数の文字を同じ番号にする事は厳禁です。「文字集合とコードポイントが一対一の関係を持たなければならない」という文字コードの基本概念の通りに、番号を割り振ってください。
- 後述するmorogramは、段落間を跨いでN-gram統計を取りますが、段落のまとまりを統計上の情報として加味したい場合には、各段落の頭に適当な記号類(必ず本文の他の箇所で使われていない記号である事。筆者はよく■を使う)を入れておくと便利だと思います。
- もし、隣り合った段落同士が無関係であり、■を含んだN-gram統計が不必要なのであれば、■を含む行丸ごと削除しておけば、段落内の情報だけでN-gram統計がとれます。
- その他にも、電子テキストを利用する場合の注意点として、「そのテキストが、学術的な目的で用いるのに耐え得るレベルであるか否か?」を検証する事は当然です。
- 「テキストのレベル」とは、電子テキストが「学術的に信頼できるレベルの原本を元に作成され」ており、なおかつ「電子テキスト自体にも誤字脱字が少ない」という 事を意味します。
- また、青空文庫の一部のテキストのように、JIS未収録字を特殊な表記で示されるような場合には、(大体がUnicodeのCJK統合漢字で足りますので)出来るだけUnicodeの当該文字に置き換えて、余計な情報は削除しましょう。また、《ルビ》が不必要な場合は、それも合わせて削除しておきましょう。
- 秀丸の正規表現を使ってルビを削除するには、と検索キーワードに指定すればよいでしょう 。
- また、外字注釈部分を削除するには、と検索キーワードに指定すればよいでしょう 。
- 電子テキストの体裁以外にも、文字コードを統一しておく必要があります。
- 例えば後述するmorogramはutf-8で動作しますので、テキストの文字コードを必ず「utf-8」に統一しておく必要があります。
↑ ページ先頭
参考文献(本文中で紹介したもの以外)
- Makoto NAGAO and Shinsuke MORI.
- "A New Method of N-gram Statistics for Large Number of n and Automatic Extraction of Words and Phrases from Large Text Data of Japanese", In Proceedings of the 15th International Conference on Computational Linguistics (1994), pp.611-615.
- 長尾真
- 『言語情報処理』(岩波講座『言語の科学』9 岩波書店 1998年)
- 『自然言語処理』(岩波講座『ソフトウェア科学』15 岩波書店 1996年)
- 北研二
- 『言語と計算4 確率的言語モデル』(東京大学出版会 1999年)
- 第3章「Nグラムモデル」