自然言語処理(立命館2022春講義)
35365
キーワード
教科書
https://cover.openbd.jp/9784320122659.jpg
1回目
応用技術
文を単語にバラす
文を単語にバラし、単語が文の中で何の役割(主語、述語、修飾語)を果たすか特定する
言語の蓄積されたデータ
2回目
言語の階層
文章(テクスト)
文
意味のまとまりがあって文を構成しうる最小の単位
意味を持つ最小の単位
文字の並びを,形態素へバラす
難しさ
日本語:切れ目がわからない
英語:多品詞語が多い(time)
形態素解析システム
https://gyazo.com/70be56b63cd4666d8a4c3e569e22eb7c
文に対して,考えうるすべての可能性を列挙する
https://gyazo.com/56fdcaabf018821bed438b0ae4f16289
流れ
0. 仮想的に文頭というものを仮定し,着目点とする
1. 現在の着目点から始まる可能性のある単語$ wを単語辞書から引く 2. 現在のラティスの着目点にある単語のどれか$ vと,$ wが連接するかを連接可否表でチェックする 1. OKなら,$ wを$ vの後に足す
2. NGなら,$ wは破棄する
3. 手詰まり,つまり連接可能な単語が一つもなければ,その枝を棄却する
4. 文末なら終了,そうでないなら2へ
もっともらしい候補だけを残す
普通,文の意味は一個しかないので
3回目
文字数の多い語を優先
形態素の文字数の平均長を計算して,もっとも多いものを
語数/形態素数の少ない解を優先
分節数の少ない解を優先
名詞,動詞など,それ単体で意味を持つ単語
助詞などの,それ単体では意味を持たない単語
語の品詞,連接に尤度を設定し,その逆数を取ったコストの和が最小のものを優先 内容
文頭からある語$ wまでのコスト最小値を$ C(w)で表す.
$ C(w) = \min_{v}\{ C(v) + cost(v,w) \} + cost(w)
$ wの一つ前の単語を$ vとする
$ cost(w)を$ wの単語コスト(単語尤度の逆数) $ cost(v,w)を$ v,wの連接コスト(連接尤度の逆数) これを,文頭から繰り返し($ wが文末になるまで)行う.
ある最小コストの経路について,その途中までのコストも最小になってないとおかしい,という仮説に基づく
ノイズによって変質した受信した信号$ \bold{X}から,送信した信号$ \bold{Y}を推定する(復号する)ことを考える
推定した信号を$ \hat{\bold{Y}}とするとし,事後確率$ P(\bold{Y}\mid\bold{X})を用いて $ \hat{\bold{Y}} = \argmax_\bold{Y} P(\bold{Y}\mid\bold{X})
ベイズの定理よりこれを変形して
$ \hat{\bold{Y}} = \argmax_\bold{Y} \frac{P(\bold{Y}) P(\bold{Y}\mid\bold{X})}{P(\bold{X})}
さらに,$ \bold{X}は一定なので分母を無視して良くて,
$ \hat{\bold{Y}} = \argmax_\bold{Y} P(\bold{Y}) P(\bold{Y}\mid\bold{X})
今
$ P( \bold{Y} )は$ \bold{Y}が送信されることのもっともらしさ
$ P(\bold{Y} \mid \bold{X})は$ \bold{Y}を送信したらそれが$ \bold{X}と受信されることのもっともらしさ
4回目
文を構成する語
品詞や句など
非終端記号のひとつ,$ Sを使うのが一般
左辺 → 右辺の形式
左辺:非終端記号
右辺:非終端記号または終端記号の,一つ以上の並び
この規則に沿って書き換えることを導出と呼ぶ
2種類に分けられる
例えば$ S \to NP, VP
例えば$ PN \to \text{John}
形式言語において文
下から作る(上昇型)
入力の記号列を縮約して最終的に開始記号を得られるか? 上から作る(下降型)
自然言語は曖昧なので複数の解析結果 / 導出木が得られることがある 文$ ABCDがあるとき,
$ A_1B_2C_1D_2みたいに修飾することはないだろう
$ A_1B_2C_2D_1のように修飾することはありうる
5回目
英語は文法の順番がカッチリしている
日本語はそうでもない
(日本語の)文節の意味上の役割
これらのものなどがある
(動作)主格
目標格
行為者格
時間格
位置格
源泉格
道具格
格を決める要素,
へ,から,は,で,など…
1つの動詞が取れる格の集合
行くは〇〇が,〇〇へ行くのように主格と目的地格を取る
およそざっくり言えば,文中の単語の修飾関係を表したもの
対比:句構造解析は,文中の単語の文法上の関係を得ることである 英語なら例えば
名詞には冠詞a, theが依存する
依存関係は左から右へ
日本語なら例えば
依存関係は左から右へ
6回目
系列ラベリング
7回目
同じ単語で意味が複数あるケース(曖昧性)
「カキ」は牡蠣なのか柿なのか?
単語間の関係,役割の把握
自然言語処理における文の意味とは
文が,同じ出来事を記述しているなら,統語が違っても,意味は同じと考える
意味構造,単語間の関係/役割を有向グラフで表したもの 出来事に,どの単語がどの役割で関与しているか?
動作主,Agent
意図を持って,出来事を引き起こした主体
The walter opened a cupboard
給仕が戸棚を開けた
経験者,Experiencer
その出来事を経験したもの
意図は問わない
John has a headache
ジョンは頭痛がする
力,Force
意図はなく,出来事を引き起こしたもの
無生物など
The wind blows debris
風がホコリを飛ばした
対象,Object
出来事に最も直接的に影響を受けたもの
Bill broke the glass
ビルがガラスを割った
結果,Result
出来事の最終的な結果,産物
会社が新しい事務所を作った
The conmpany has build a new office
道具,Instrument
出来事で用いられた道具
She ate apple with a fork
彼女はフォークでりんごを食べた
その他,
起点/源泉(Source)
終点/終点(Goal)
場所(Location)
などなど…
太郎が次郎を殴った
Agentは太郎,Objectは次郎
次郎が太郎に殴られた
Agentは太郎,Objectは次郎
この意味の一致を格パターンで構造的に検証するのは困難 用言(動詞や形容詞など)に対し取りうる深層格の列挙 単語間の関係を階層構造で表す
牡蠣は,動物の一種である
柿は,植物の一種である
カキがなっているにおいて,なっているは植物に用いられる
よってこのカキは柿のことだろう
計算機側は単語が「食べ物」とか「人工物」とか知る由がないので,こういったものを活用して決定する
ここまでで,文の理解の手順
8回目
語の意味,語と語との関係性
bankは,銀行あるいは土手を指す
日本語において,あげたは,giveの意味と,raiseの意味がある
異なる語が同じ語義を持つ
相互に代入可能
car - automobile
big - large
異なる語が似たような語義を持つ
程度の議論が可能
例えば
日本語において,あげる(give)は贈るなどでもよい
反対の意味を持つ
程度の議論(どれくらい両極端なのか?)ができる
上位,下位概念がある
具体,抽象の度合いがある
car - vehicle
walk - move
XはYの一部,からなるなど
枝は木の一部
木は枝からなる
木は森の一部
森は木からなる
語の意味の曖昧さの解消
手法
辞書や用例集による手法
文脈や,語義との類似性の検討
語の類似度
2つの語が,意味的に近いなら,シソーラスにおいても近い場所にある(最短パスが短いはず)
意味的に類似した語は,類似した文脈に出現しやすい
ネップモイをひと瓶買って,皆で飲んだ.かなり強かったので,皆酔っぱらった
このとき
瓶や飲む,強いや酔ったなどの語は,ウィスキーや焼酎などと共起される(出現傾向がある)
ここから,ネップモイはアルコール飲料かなにかだろう,という推測ができる
共起度合いの尺度
$ P(v),P(w)はあるコーパスにおいて単語$ v,wが出現する確立 $ P(v,w)が2つの語が共起する確立とする
$ I(v,w)= \log_2 \frac{P(v,w)}{P(v)P(w)}
https://gyazo.com/2d036532d5bc256707674d1b1a33691c
$ t(v,w) = \frac{P(v,w) - P(v)P(w)}{\sqrt{P(v,w})}
$ v_i,w_iは各々の共起ベクトルの$ i番目の要素を指す
$ \frac{\sum v_i w_i}{\sqrt{\sum v_i^2}\sqrt{\sum w_i^2}}
$ \frac{\sum \min(v_i,w_i)}{\sum \max(v_i,w_i)}
$ \frac{2 \sum \min(v_i,w_i)}{\sum (v_i + w_i)}
?回目
要約の作成方法
抽出型と生成型がある
要約の目的
原文を読む前に簡単に知っておくための要約
SnO2WMaN.iconAbstract?
原文の代替として短くまとめたものを使う
抽出型要約
1, 文の同定
文章から文を特定
3, 文短縮
4, 並べ替え
3と4は時系列を考慮して並び替える必要がある
仮説
重要な単語を多数含んだ文は,重要な文である
単語の出現頻度を重要度とする
文書間で単語の出現する頻度の逆数を重要度とする
基本的に$ \log \frac{N}{df(w_1)}
$ N(文書$ Dの総数)はデカく,$ df(w_1)($ w_1が登場する文書の総数)は小さいので,対数を取る
抽出の流れ(ある文書$ D_1を要約する)
$ D_1で,ある単語$ w_1の重要度を計算する
同様に$ w_1 \cdots w_n
$ D_1の文$ s_1に登場する単語全ての重要度を全部足して正規化する(あるいは他の方法で文の重要度を計算する)
同様に$ s_1 \cdots s_n
$ s_1 \cdots s_nの重要度で並び替える
13?
大まかな流れ
1, 質問文解析
何を答えればいいのか?
2, 文書検索
3, 回答候補の抽出
4, 回答選択