言語の統計 統計の対象量 単語 NグラムとKWIC HMMと形態素解析への応用 なぜ言語の統計? 統計量を計算する理由 1 我々の使っている言語について知る 2 言語モデル(文法、言語運用(語用)、文書構成規則、など)を作 る 3 辞書や電子化辞書を作る 4 言語処理に必要な計算機資源を見積もる 電子的コーパスの発展と利用 1 インターネットと計算機資源の発達により大規模コーパスが入手 可能になった 2 大規模すぎて(10MB=数百万文字 から GB=数億文字)、人 手で処理できない 3 計算機に得意な統計処理の導入 言語情報処理への展開 延べ数 と 異なり数 「便り /の / ない / の / は / よい / 便り」 形態素=固有の意味を持ち、かつそれ以上分解できない言語の単位 単語ってなに? 延べ形態素数=7、 異なり形態素数=5 頻度は 便り=2、の=2、ない=1、は=1、よい=1 単語とは? 1 「ので」は1単語か? 2 「日々」の「々」は? 3 「日銀」は1単語? 4 「日本銀行」は1単語か2単語か(あきらかに2形態素らしくはある) 5 実際、単語とは何か、というのは国語学者を悩ませてきた問題であった。 6 実用性の観点からすれば、辞書にどの単語を登録するかが問題なのだ から、応用目的によって単語を決めればよいのでは。 統計の対象となる言語単位 音素: 訓令式でローマ字表記したときのアルファベット1文字に対応する音 文字: 文字セットによる。しかし、アルファベットの大文字小文字、日本語漢 字の新字 例えば「沢」と「澤」は同じ文字か違う文字か? 単語: 西欧の言語のように正書法(Orthography)によって単語間に空白が あればよいけれど。 「虎の子」は1単語? Collocation の問題 複合語: 1 複合名詞:「日本学術会議第5部会員選挙日程検討結果報告書別添資 料補遺3ページ2行目」???? 2 複合動詞:「追いかける」=「追う」+「かける」 「老けこむ」=「老ける」+「こむ」 「痛がる」?? 句: 名詞句、動詞句: 言語情報処理では文よりも句が目下のターゲット 文: 書き言葉では句点があるが、話し言葉では? 談話: 談話構造の認識、談話の範囲などが問題 語彙範疇 vs 機能範疇 と 品詞 語彙範疇: 辞書に記載されている内容的意味のある単語。具体的には動 詞,名詞。 内容語ともいう。 機能範疇: 固有の意味を持たないが、内容語の修飾や内容語同士の関係 を記述するための言語要素。冠詞、助詞、屈折辞など。機能語ともいう。 情報検索のような文の意味内容を直接捉えようとする試みにおいては、内 容語の抽出や統計的性質が重要で研究も進んでいる。一方で、言語学や機 械翻訳などの言語を扱う正統派??の領域では、言語現象としての機能語 から、文法や意味に迫る方法をとる。現状では両者の間では乖離があること を認めざるをえない。 品詞: 内容語(もちろん機能語も)が文法的にどういう性質かを記述するの が品詞。統計的性質を調べる場合に、ここの単語(特に内容語の場合)は出 現頻度も低く、むしろ同じ品詞のものを同一視して統計をとる方法が有力な 場合あり。日本語の品詞体系は以下を参照されたし。 1 基礎日本語文法: 益岡隆志、田窪行則著、くろしお出版、1992(いわゆ る益岡・田窪文法)など。 Nグラム Nグラムとは言語を特徴つける簡単な方法(言語モデル) ある言語単位(音素、単語、品詞など)を決める。その言語単位のN個連続 をNグラム(N-gram)という。特に言語単位を陽に指定する場合、「言語単位 名Nグラム」(例えば、単語2グラム)という。 単独の言語単位を unigram、2個の連続を bigram、3個の連続をtrigram と いう。 計算してみよう。 (1)英語の文字2グラムの総数 (2)日本語のモーラ2グラムの総数。 モーラ(拍)とは、ひらがな1文字同じ長さの音の単位。「ん」「っ」「-」は1 モーラ。 なお、音節(syllable)とは、「(子音)(半母音)母音(モーラ音素)」 (3)日本語の文字2グラムの総数 (4)日本語の単語2グラムの総数 (5)日本語の品詞2グラムの総数 Nグラムの計算 ある言語におけるNグラムの総数はとても大きすぎて計算できない場合が多 い。実際のテキストにおいて出現したNグラムによって言語(の部分集合)を 特徴つける。そこで、テキストにおけるNグラムの計算法が必要。 あ り が と う …… う… とう… がとう… りがとう… ありがとう… 辞書式に 整列 1:ありがとう… 2:う… 3:がとう… 4:とう… 5:りがとう… 整列したポイ ンタの配列 整列したポインタの配列においては、先頭部分に同じ文字列を持つものが隣 接ないし近接する。 近所を見回せば、同じNグラムが何個あるかという統計を簡単に計算できる。 KWIC ( Key Word In Context ) ある言語表現がどのような文脈に現れるかを、与えられたコーパスにおいて 列挙したもの。 辞書式に整列したテキストへのポインタの配列(Nグラムの計算に利用する もの)を使えば、容易に抽出できる。 Nグラムの計算 のページの「Nグラム」に対するKWICは以下の通り。 ----------------------------------------------------------------------------------------------前の文脈 Key Word 後の文脈 -----------------------------------------------------------------------------------------------ある言語における Nグラム の総数はとても大きすぎて ストにおいて出現した Nグラム によって言語(の部分集合) テキストにおける Nグラム の計算法が必要。 ----------------------------------------------------------------------------------------------- Key Word がどのような単語や表現と共起するかという情報を得られる。共 起情報は自然言語処理において必須の情報。 形態素解析 与えられた文字列を単語に分解し、各単語の品詞を推定すること。 英語の場合は空白により単語境界が示されているので、品詞タグをつける だけだが、格変化している動詞や名詞から原形を求める必要もある。 以下に日本語形態素解析で用いられるヒューリスティックな方法を列挙する。 最長一致法 先頭から辞書において一致する最長の単語を当てはめる。 全国都道府県議会議長席 全国 都道府県議 会議 長 席 分割数最小法 辞書を調べて、すべての可能分割を求め、その中で最小分割数のものを選 ぶ。 全国都道府県議会議長席 全国 都道府県 議会 議長 席 字種切り法 字種の変化点を単語の境界とみなす。 品詞の文法的接続可能性による形態素解析法 文においてある品詞の次にくる品詞は文法的に限定されている。これを品詞 接続可能性という。例えば、名詞の後には、名詞、助詞、助動詞はくるが形 容詞、副詞は来ない。話言葉でなければ動詞も来ない。 例 「きがつく」「き(名詞) が(助詞) つく(動詞)」 OK 「きが(名詞) つく(動詞)」 接続コスト法 接続可能性を可能、不可能の2種類ではなく、確率のような連続数値を用い て表すと、ある品詞列とみなした場合の接続確率が計算できる。接続確率 の最大の品詞列を選ぶ方法。 隠れマルコフモデルによる形態素と品詞 確率過程:いくつかの内部状態を持つ(抽象的機械)から種々の記号が次々 と現れる過程。 マルコフ過程: ある記号が現れる確率はその直前の状態にだけ依存する。 また、次の状態への遷移確率も直前の状態によって決まる。 0.1 例: 0.4 名詞 0.7 0.5 猫:0.1 犬:0.06 動詞 0.8 0.3 食べる:0.1 走る:0.08 助詞 0.2 は:0.5 が:0.3 隠れマルコフモデル: 外部から記号は観測できるが、内部状態は観測できない(直接分からない) 例えば、「犬が走る」という記号列が得られたとき、内部状態が 名詞助詞動詞 と遷移したことを知りたい。 動的計画法による形態素解析の定式化 その1 入力文Sを文字列 S= (c1 c 2 .....c m ) 単語列 W= ( w 1w 2 ....w n ) 品詞列 T= (t1t 2 .....t n ) 単語の境界が与えられていない日本語の形態素解析は入力文を条件とし たときの単語列と品詞列の同時確率P(W,T)を最大にする単語分割と品詞付 与の組(W’,T’)を求めること。 ( W', T' ) arg max P(W,T |S) W,T 辞書: 文字列から単語と品詞の対を求めるのが辞書Dである。すなわち、 D(c k c k1...ckl-1 ) {( w1 , t1 )(w 2 , t 2 )...} よって、文字列からw,tへの変換はDによって行われ、その結果のP(W,T)を 最大化する問題になる。 p(t i | t i-1 ) さて、P(W,T)は品詞2グラムの生起確率 と品詞と単語の対応する確率 p(w i | t i ) の積である。 n P(W,T) p(t i | t i-1 ) p(w i | t i ) i1 動的計画法による形態素解析の定式化 その2 P(W,T)を最大にする計算は全部の場合を計算すると膨大 そこで、次のように順々に計算する。 P(w1 ,...,w i , t1 ,...,t i ) (w i , t i ) まず と定義。 すると ( w i , t i ) max ( w i-1 , t i-1 )p(t i | t i-1 )p(w i | t i ) w i-1 ,t i-1 まず ( w i-1 , t i-1 ) を i - 1 単語めまでの計算で求め、 この値をつかって ( w i , t i ) を計算する。 これを i1, n まで繰り返してmax P(W,T) を求める。 実際は入力文から1文字づつ読みながら、この計算を行う。 辞書Dの辞書引き速度は全体のパフォーマンスを左右する。Trie, PATRICIA木などの高速なディジタル木構造が使われる。 動的計画法による日本語形態素解析アルゴリズム T0={(w0,t0)}; φ(w0,t0)=1; for q=0 to m %文頭から1文字づつ読む foreach (wi-1,ti-1) in Tq %q文字目で終わる部分解析の集合 for r=1 to m-q+1 foreach (wi,ti) in D(cq,cq+1,…cr) %qからr文字目までの辞書引き begin if (wi,ti) is not in Tr then %未登録な部分解析経路の追加 begin Tr =Tr U {(wi,ti)}; φ(wi,ti)=1; end % 最大のφを順次計算する。 new φ = φ(wi-1,ti-1)p(ti|ti-1)p(wi|ti) if new φ > φ(wi,ti) then φ(wi,ti)=new φ; end 統計データからの動的計画法による形態素解析 P(W,T)を最大化するアルゴリズムにおいて、 p(t i | t i-1 ) p(w i | t i ) をどうやって入手するかが問題。 すでに述べたように品詞の接続可能性や、接続コスト法における品詞接続 確率が p(t i | t i-1 ) に相当する。 言語コーパスからの統計データによりこれらを計算することもできる。 コーパスにおける頻度をCとすると C(t i-1 , t i ) p(t i | t i-1 ) C(t i-1 ) p(w i | t i ) C(w i , t i ) C(t i ) 前向きと後ろ向きの融合 今まで説明してきた動的計画法による形態素解析は前向きに計算を進めた。 文の長さが長くなると計算量が指数関数的に増える。 ある程度、前向きで計算し可能な部分解析結果を保持。 次に文末から文頭へ向かって解析しする。 両者を組み合わせ、最大確率のP(W,T)を選ぶ。 この方法だと、確率の大きい順に上位N個の解析結果を列挙できる。 Nグラムの確率モデル NグラムはN言語単位の連鎖だが、これを言語モデルとして使うため に確率論によるモデル化をする。 まず、N文字の連鎖は、 C(w 1w 2 ....w n ) 、ただしCはコーパス 中の頻度 コーパスの文を文字のN重マルコフ過程とすると、直前のN-1文字 から次に現れる文字を予測するモデルにしたい。 つまり、 p(w | w である。 ...w ) i i-n 1 これは条件つき確率で i-1 C(w i-n1...w i-1w i ) p(w i | w i-n1...w i-1 ) C(w i-n1...w i-1 ) Nグラムの生起確率を求める その1 最尤推定法 文字のN重マルコフ過程 C(w1...w n-1w n ) p(w n | w1...w n-1 ) C(w1...w n-1 ) 相対頻度CからNグラムの生起確率を推定 Nが大きいと信頼性の高いNグラム推定ができない。 相対頻度が0のNグラムがたくさん現れる。(データスパースネス問題) 加算法 単に分母分子に適当な数を足す。 C(w1...w n-1w n ) p(w n | w1...w n-1 ) C(w1...w n-1 ) | V | 分子が0の場合は単にδを分子とする。簡単だがあまり精度がよくないそうでる。 |V|はコーパス中の異なり語数 Nグラムの生起確率を求める その2 Good-Turingの推定 語数Nのコーパス中でr回出現する単語の数をnrとする。すると N rn r n1 2n 2 3n 3 ... r0 ここでコーパスにr回出現する単語wの頻度を次の式で推定するのがGoodTuringの推定 r * (r 1) これによって相対頻度の総和を求めると n1 つまり、 N n r1 nr n r r* n 1 1 N r0 N がコーパスに出現しない単語の頻度の推定確率 * r なお、d をディスカウント係数という。 r Nグラムの生起確率を求める その3(バックオフスムースジング) Good-Turingの推定を基礎にした頻度=0のbi-gramの頻度推定 C* ( w1 , w 2 ) C* ( w1 , w 2 ) C( w1 , w 2 ) C( w1 , w 2 ) p(w 2 | w1 ) d C(w1,w 2 ) C(w1 ) C(w1 ) C(w1 ) C ( w1 , w 2 ) この計算によればコーパス中に出現する bi-gram の確率の和は1より小さい (w1 ) 1 p(w 2 | w1 ) w 2:C(w1,w2)0 この ( w 1 ) は w 1 に対して C(w 1 , w 2 ) 0 となる全 w 2 の条件つき確 率の和。 これを C(w 1 , w 2 ) 0 なる単語列の確率に分配して p(w 2 | w 1 ) を求める p(w 2 | w1 ) ( w1 ) p(w 2 ) w:C(w1,w 2 ) 0 p(w 2 ) p(w 1 2 | w1) w 2 :C(w1,w 2 ) 0 1 p(w w 2 :C(w1,w) 0 2 ) p(w 2 ) Nグラムの拡張 その1 クラスモデル Nグラム クラスモデル: 例えば品詞のような単語のクラスから次にくる単 語を予測するモデル。単語をw、品詞をcとする。すると、1重マルコフモデル で 品詞-単語の bi-gramクラスモデルは、 p(w n | w n-1 ) p(w n | c n )p(c n | c n-1 ) ただし、 c i は単語 w i の属するクラス(例えば品詞) 一般には単語は複数の品詞を持つ。よって、次のように書くべき。 p(w n | w n-1 ) p(w n | c n )p(cn | c n-1 ) cn 例えば、クラスとして品詞を使うと品詞の異なり数は単語の異なり数よりはる かに少ないので、Nの大きいNグラムも計算できる。 問題: この品詞から単語を予測するモデルはどのような目的に使えるか? また、直前の単語から現在の単語の品詞を予測するようなモデルを考えると、 何に使えるか? Nグラムの拡張 その2 キャッシュモデル 直前の n 語の中に、現在の単語と同じ単語が何回現れるか。 問題:このモデルを式で書けますか?
© Copyright 2024 ExpyDoc