- 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を利用した研究を幾つか公刊している。 ﹁﹃國語﹄韋昭注引系譜資料について―N-gram統計解析法による分析―﹂ ﹃立命館史学﹄22号︵2001︶ pp.38-75 ﹃國語﹄に対する諸注釈のうち、三国呉の韋昭よる注釈︵以下韋昭注と略︶が纏まって現存する最古のものである。韋昭注序には彼の用いた資料が記されるが、そこでは﹁系譜については﹃世本﹄を参考にした。﹂と述べる。韋昭注で﹃世本﹄の引用を明言する部分は極僅かだが、それとは別に系譜関係の注文が数多く見られ、序文から判断する限り、これらは﹃世本﹄を典拠とする可能性がある。そこで本論では、韋昭注に見られる系譜関連の注文を分析し、それが﹃世本﹄の佚文か否かについて検討する事を主題とする。本論で試みた、既存佚文のN-gram解析の結果を利用して他の文献との比較分析という作業自体の有効性は、﹃世本﹄の系譜関係の文書構造の想定と、今まで知られていなかった﹃世本﹄佚文の発見及び可能性の提示という形で実を結んだ。 ﹁歴史記録としての﹃春秋﹄―N-gramモデルと統計解析法による分析―﹂ ﹃中國古代史論叢﹄︵2004︶ 立命館東洋史学会叢書二 pp.横13-42 中国哲学の根本経典である﹃春秋﹄は、魯国の年代記に対する解釈手法をその方法論とする。では、﹃春秋﹄自身を歴史記録として見た場合、どの様な特徴が現れるかについて、N-gram方式による言葉の数値化を元に分析したもの。これによって、﹃春秋﹄は魯を中心とした情報の密度の濃淡や、春秋期の画期となった晋覇の影響を大きく受けた事が明らかとなった。 ﹁﹃孟子﹄の成書時期について―N-gramと統計的手法を利用した分析―﹂ ﹃立命館東洋史学﹄第27号︵2004︶ pp.横1-27 学会発表06を論文にしたもの。﹃孟子﹄のテキストをN-gram方式で数値化した情報を分析した結果、﹃孟子﹄にみえる孟子の言葉は、孟子自身のそれを記録したもの︵孟子に仮託した後世の言説ではない︶事を明らかにした論文。これにより、﹃孟子﹄が前4世紀末の言語資料として使用可能なことが確定された。 ﹁中国戦国期の語彙量について―N-gramとユールのK特性値を利用した分析―﹂ ﹃漢字文献情報処理研究﹄第5号︵2004︶ pp.93-101 戦国期の諸子百家文献を定量的な視点から分析した論文。その手法として、N-gram方式によって収集された語彙の総量をユールのK-特性値を用いて分析した。本論で行った語彙の総量や独自あるいは共用される語彙を数値化した値を分析した結果、儒家・道家は多様な言葉を保持し、墨家は貧困、法家︵韓非子︶は洗練、雑家︵﹃呂氏春秋﹄︶は諸学を折衷した言葉を用いている事が明らかとなった。また、時系列で見れば、言葉の多様性は前3世紀初唐を一つのピークとなり、前3世紀後半には言葉を整理して絞り込む方向性を見せる事が確認された。この推移は、天下統一へと移る時代を反映して、言葉も前3世紀後半以降新たな言葉︵概念︶の乱立が収まり、一定の整理の方向へと向かっていたことを反映していると評価することができる。 ﹁﹃礼記﹄中庸篇の成書時期について―N-gramモデルを利用した分析―﹂ ﹃中国古代史論叢﹄続集︵2005︶ 立命館東洋史学会叢書四 pp.97-143 ﹁﹃周禮﹄の成書時期・地域について﹂ ﹃中国古代史論叢﹄三集︵2006︶ 立命館東洋史学会叢書五 pp.96-150 13, 14は、N-gram方式によって収集された数値化された文字列傾向を、複数の手段を用いて分析し、それぞれの文献が何時・何処で成書されたかを考察した研究である。本論での分析の結果、﹃中庸﹄は前4世紀前半と﹃孟子﹄以前に存在した二つのテキスト群を前3世紀後半に新たなテキスト群を付加してまとめたもの。また、﹃周禮﹄は前三世紀後半に戦国の齊の稷下の学問を反映して編纂されたものと結論づけた。 ﹁N-gram方式を利用した漢字文献の分析﹂ ﹃立命��白川靜記念東洋文字文化研究紀要﹄第一号 立命館白川静記念東洋文字文化研究所︵2007︶ pp.横1-23 筆者がここ数年行っている研究手法であるN-gram方式による文献分析の手法について、その効能や具体的な方法論・手順についてまとめたもの。複数の論文で同じ事を述べるのは煩雑になるので、基本的な概念や方法論を一個所にまとめ、導論としての役割を期待したもの。 ﹁N-gramによる先秦文献の分類﹂ ﹃漢字と情報﹄8号︵2004︶京都大学人文科学研究所 N-gram方式を利用した先秦文献の分類手法についての紹介。ここでは﹃韓非子﹄を事例とした。 ﹁N-gramモデルを利用して先秦文献の成書時期を探る―﹃孫子﹄十三篇を事例として―﹂ 東京大学 東洋文化研究所附属東洋学研究情報センター﹁アジア研究情報Gateway﹂︵2004︶ 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グラムモデル」