自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

21
自自自自自自 2012 - 自自 24 自 11 自 5 自 (No5)- 自自自自自自 自自自自自自自自自自自自自 自自自自

description

自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-. 東京工科大学 コンピュータサイエンス学部 亀田弘之. 前回の復習から. 今日の課題  先週授業で学んだことを列挙しなさい。 解答例)      1. XXX を学んだ。      2. XXX のインストール手順      3. XXX の定義      4. XXX という用語. NLP のプログラムを書いてみよう!. Prolog のインストール プログラム作成手順 IC 分析 形式文法の設定 Prolog 形式への書き換え NLP プログラムの実行 ( その1 ) - PowerPoint PPT Presentation

Transcript of 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

Page 1: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

自然言語処理 2012- 平成 24 年 11 月 5 日 (No5)-

東京工科大学コンピュータサイエンス学部

亀田弘之

Page 2: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

前回の復習から

今日の課題 先週授業で学んだことを列挙しなさい。

解答例)     1. XXX を学んだ。     2. XXX のインストール手順     3. XXX の定義     4. XXX という用語

2Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 3: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

NLP のプログラムを書いてみよう!

1. Prolog のインストール2. プログラム作成手順

1. IC 分析2. 形式文法の設定3. Prolog 形式への書き換え4. NLP プログラムの実行 ( その1 )5. 構文木を出力するプログラムへの拡張6. NLP プログラムの実行 ( その2 )

3Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 4: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

1. Prolog のインストール

• (再確認)

4Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 5: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

Prolog の種類

• Swi-prolog• SICStus-Prolog• I/F-Prolog• K-Prolog• Minerva• Arity/Prolog• RUN/Prolog

• C-Prolog• Gnu Prolog• Open Prolog• YAP Prolog  など

5Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 6: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

自由課題

• どんな Prolog があるのか調べてみよう。• それぞれの Web Site を見つけてみよう。• どれか1つ download して使ってみよう。• 各 Prolog の特徴を比較し、一覧表を作っ

てみよう。

(注)本授業では swi-prolog を使います。   なぜでしょうか?   理由を考えてみてください。

6Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 7: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

Prolog による構文解析プログラム

• 処理対象:Tom broke the cup.

Natural Language Processing 2012 (Tokyo Univ. of Tech.) 7

Page 8: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

IC 分析

• Tom broke the cup      文 __ _____ 名詞句  動詞句 ___ __ __    名詞  動詞 名詞句           __ ___ 限定詞 名詞

Natural Language Processing 2012 (Tokyo Univ. of Tech.) 8

Page 9: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

形式文法

• 開始記号= s• 終端記号 ={ tom, broke, the, cup }• 非終端記号 ={ s, n, v, d, np, vp }• 書き換え規則 ={ s → np + vp. np → n. np→d+n. vp→v+np. n→tom. n→cup. v→broke. d→the. }

Natural Language Processing 2012 (Tokyo Univ. of Tech.) 9

Page 10: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

Prolog で表現する

s :- np + vp.np :- n.np:-d+n.vp:-v+np.n:-tom.n:-cup.v:-broke.d:-the.

Natural Language Processing 2012 (Tokyo Univ. of Tech.) 10

Page 11: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

Prog1.pl

s(A,C):-n(A,B),vp(B,C).vp(A,C):-v(A,B),np(B,C).np(A,C):-d(A,B),n(B,C).n([tom|T],T).n([cup|T],T).v([broke|T],T).d([the|T],T).

11Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 12: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

Prog2.pl

s(A,C,s(_n,_vp)):- n(A,B,_n),vp(B,C,_vp).

vp(A,C,vp(_v,_np)):- v(A,B,_v),np(B,C,_np).

np(A,C,np(_d,_n)):- d(A,B,_d),n(B,C,_n).

n([tom|T],T,n(tom)).n([cup|T],T,n(cup)).v([broke|T],T,v(broke)).d([the|T],T,d(the)).

12Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 13: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

今日の内容

1. 構文解析プログラムの動作を理解する2. 構文解析プログラムを自分で書いてみる3. その結果、先週までの内容の理解を深め

る。

13Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 14: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

1. 構文解析プログラムの動作を理解

• (例文)  Tom broke the cup.

14Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 15: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

2. 構文解析プログラムを自分で書く

• 作成手順は?(これも復習事項です。思い出せますか?)

15Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 16: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

作成手順の概要

1. 処理対象を決める2. 処理対象の各文に対して、統語構造の分

析を行う3. 上記の分析結果をもとに、文法を書き下

す4. 上記で得られた文法を、 Prolog の形式に

書きかえる5. 動作を確認する

Natural Language Processing 2012 (Tokyo Univ. of Tech.) 16

Page 17: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

自習問題

• 例文)

   Time flies like an arrow.

Natural Language Processing 2012 (Tokyo Univ. of Tech.) 17

Page 18: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

3. その他

18Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 19: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

構文解析の種類

• 分類1–トップダウン解析方式 (Topdown)–ボトムアップ解析方式 (Bottom-up)

• 分類2–縦型解析方式–横型解析方式

19Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 20: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

確認問題

• 下記の用語を自分の言葉で説明しなさい。

–構文解析–トップダウン解析方式とボトムアップ解析方

式–縦型解析方式と横型解析方式–バックトラック–プログラミング言語 Prolog

20Natural Language Processing 2012 (Tokyo Univ. of Tech.)

Page 21: 自然言語処理 2012 - 平成 24 年 11 月 5 日 (No5)-

次回の予告

• 日本語を対象とするプログラムを一緒に作成します。

• PC を忘れないように。• Swi-Prolog が動くこと、 UTF-8 コードで保存

できるエディターが必要です。メモ帳でもOK です。

• 必要なら、日本語の文法書や辞書を持参してください(たぶん要らないと思いますが...)。

Natural Language Processing 2012 (Tokyo Univ. of Tech.) 21