NLP-4

自然言語処理:第4回
1.前回の確認
2.オントロジー
3.言語コーパス
レポートの解説
今日は天気が良くない
文節に区切った場合、どちらが正しいか
理由と共に述べよ
① 今日は天気が良くない
② 今日は天気が良くない
ヒント
文節には必ず一つだけ内容語が含まれる
レポートの解説
問題点
文節区切りが / 良くない / か / 良く / ない / か
「ない」は内容語か機能語か?
「良くない」  形容詞:未然+ない
レポートの解説
問題点
文節区切りが / 良くない / か / 良く / ない / か
「ない」は内容語か機能語か?
「良くない」  形容詞:未然+ない
「走らない」  動詞:未然+ない
レポートの解説
「良くない」  形容詞:未然+ない(否定)
「走らない」  動詞:未然+ない(否定)
「走らない」  動詞:未然+助動詞(機能語)
「良くない」  形容詞:未然+助動詞?
レポートの解説
形容詞:未然+ない
動詞:未然+ない
どちらも、内用語の用言の未然形に続き、
否定を表す。
形式も用法も同じなので、どちらも助動詞
レポートの解説
ちょっと待て!
良くね、ないね  OK
走らね、ないね  NG
良く+ない
違う
古語では「良いことは無い」の意
古語では「有る」に置き換えられる
「美しくあれ」  美しく+「ある」の命令形
レポートの解説
形容詞:未然+ない
動詞:未然+ない
形式も用法も同じだが、語源が違う
形容詞:連用+ない  形の上では形容詞
動詞:未然+ない  助動詞
形容詞は未然と連用は同じ形
レポートの解説
形の上では形容詞(補助形容詞)  内用語
ただし、単独では使えない  非自立語
(「無い」という意味は失われている)
内用語≠自立語
レポートの解説
どちらも助動詞と考えれば、「良くない」
内用語と考えれば、「良く/ない」
非自立語と考えれば、「良くない」
どれが良いかは、決めしだいなのだが
レポートの解説
表層が同じでも、自立語と非自立語の双方があるもの
「ない」
「出す」
「まわる」
自立語
傘がない
舌を出す
コマがまわる
非自立語
よくない
走り出す
走りまわる
非自立語の場合は、前の用言の意味を補っている
別の文節にすると、後ろから前に係ることになる
レポートの解説
補助形容詞(動詞)かどうかの判断
「ね」を入れることができるかどうか
+入れても意味が変わらない
よくね / ないね  「よくある」の反対の意味
よくない  「悪い」の意味
1.前回の確認
英語の構文解析
a
dog
chases
a
cat
先にdogとcatをまとめる
ことはできない
a
dog
chases a
cat
1.前回の確認
文法(CFG)と構文木
限定詞(D) = a
文法
名詞(N) = dog
名詞句(NP) = D+N
文法=部分木
NP
D
a
N
dog
V
D
chases a
N
cat
左が親、右が子
終端記号
1.前回の確認
限定詞(D) = a
文法(CFG)と構文木
名詞(N) = dog
名詞(N) = cat
S
名詞句(NP) = D+N
動詞(V) = chases
VP
NP
D
a
N
dog
V
NP
D N
chases a
cat
動詞句(VP) = V+NP
文(S) = NP+VP
1.前回の確認
「ねこ と 飛ぶ 鳥 だ」 の構文解析
名詞=「ねこ」
動詞句=動詞
並列助詞=「と」 形容詞句=動詞
係助詞=「と」
形容詞句=名詞句+動詞句
名詞=「鳥」
名詞句=形容詞句+名詞句
動詞=「飛ぶ」
名詞句=名詞句+並列助詞+名詞句
名詞句=名詞
名詞句=名詞句+係助詞
文=名詞句+「だ」
1.前回の確認
「ねこ と 飛ぶ 鳥 だ」 の構文解析
名詞=「ねこ」
動詞句=動詞
並列助詞=「と」 形容詞句=動詞
係助詞=「と」
形容詞句=名詞句+動詞句
名詞=「鳥」
名詞句=形容詞句+名詞句
動詞=「飛ぶ」
名詞句=名詞句+並列助詞+名詞句
名詞句=名詞
名詞句=名詞句+係助詞
文=名詞句+「だ」
1.前回の確認
「ねこ と 飛ぶ 鳥 だ」 の構文解析
名詞=「ねこ」
動詞句=動詞
並列助詞=「と」 形容詞句=動詞
係助詞=「と」
形容詞句=名詞句+動詞句
名詞=「鳥」
名詞句=形容詞句+名詞句
動詞=「飛ぶ」
名詞句=名詞句+並列助詞+名詞句
名詞句=名詞
名詞句=名詞句+係助詞
文=名詞句+「だ」
1.前回の確認
構文解析とかかり受け解析の関係
受け解析  日本語では構文解析よりも楽
構文解析  文の一部の働きもわかる(名詞句)
1.前回の確認
構文解析とかかり受け解析の関係
受け解析  正しい文が前提
文が正しいかどうかの判定には使えない
構文解析  文の正否の判定に使える
音声認識で、文法に合わない文をはじく
1.前回の確認
格文法の目的
○
×
×
○
×
私は京都へ行く
私は京都へ食べる
私はりんごへ行く
私はりんごを食べる
私は京都を行く
文の構造は同じなのに、なぜ○と×になるのか?
動詞と名詞(句)の関係がおかしい
1.前回の確認
格  動詞(句)に対する文法的、意味的な
役割を表す
○
○
私は京都へ行く
私はりんごを食べる
私  「行く」、「食べる」という動作の主体(動作主)
京都  「行く」という動作の目標
りんご  「食べる」という動作の対象
それぞれの動詞がどんな格をとることができるか
1.前回の確認
それぞれの動詞がどんな格をとることができるか
格文法
私は京都へ行く
行く
格フレーム
動作主体
目標
時制
私
京都
現在
実際の文中の動詞がどんな格をとっているか
2.オントロジー
×
ねこ と 飛ぶ 鳥 だ
○
ねこ と 飛ぶ 鳥 だ
ねこは飛ばないことを知っているから
2.オントロジー
ねこが飛ばないことをどう表現すれば良いか
上位
脊椎動物
ペット
走る
哺乳類
ねこ
下位
ミケ
飛ぶ
鳥類
属性
どの格フレーム
のどのスロットか
2.オントロジー
ねこが飛ばないことをどう表現すれば良いか
走る
哺乳類
ねこ
「哺乳類」は「飛ぶ」という属性を持たない
下位概念の「ねこ」も持たない(継承)
「ねこ」は「飛ぶ」の主体格になれない
2.オントロジー
私は京都へ行く
場所
行く:目標格
京都
「場所」が「行く」の目標格になれるので、
下位の「京都」も「行く」の目標格になれる。
2.オントロジー
私はりんごを食べる
食べ物
食べる:対象格
りんご
「食べ物」が「食べる」の対象格になれるので、
下位の「りんご」も「食べる」の対象格になれる。
3.コーパス
形態素解析器や格文法の構築において
形態素解析器のためのモデルの学習データ
格文法の構築のためのサンプル
実際の文に色々の情報を付加したものを
大量に集める
コーパス  現在の自然言語処理には必須
3.コーパス
コーパスの具体的な利用方法
N-gram の学習  形態素解析、音声認識等
直前の数形態素(1~2)から、次にどんな形態素が
現れやすいか
コーパスを見て、実際にどんな形態素が何回
現れたかを数える
3.コーパス
コーパスの具体的な利用方法
TF・IDF  重要単語の抽出
特定の分野が与えられた時、その分野のキーワード
を探す
その分野にだけ、よく出てくる形態素が適切
TF 全分野でのその形態素の出現数
IDF  log(全分野のドキュメント数
/その形態素が現れたドキュメント数)
3.コーパス
TF 全分野でのその形態素の出現数
多ければ、たくさんのドキュメントがヒット
(しかし、ゴミが入るかもしれない)
IDF  log(全分野のドキュメント数
/その形態素が現れたドキュメント数)
ドキュメントと絞り込むことができる
(注:全てのドキュメントに現れれば0
重要度 = TF × IDF
3.コーパス
共起関係
よく一緒に現れる形態素は関係が深いだろう
「は」と「だ」は同じ文に現れることが多いが
関係が深いのか?
一緒に現れるだけではダメ
Xが出てきたら、Yはいつもより出やすくなる
3.コーパス
XとYの相互情報量
I (X, Y)  log( P(X, Y) / P(X) P(Y))
X
X
XとYは関係ない
Y
P(X) P(Y)
XとYは関係する Y
P ( X, Y )
質問&レポート
[email protected]
http://www.info.kindai.ac.jp/NLP