自然言語処理2009 -平成21年10月26日(No4)-

自然言語処理2010
-平成22年10月25日(No4)東京工科大学
コンピュータサイエンス学部
亀田弘之
NLPのプログラムを書いてみよう!
1. Prologのインストール
2. プログラム作成手順
1.
2.
3.
4.
5.
6.
IC分析
形式文法の設定
Prolog形式への書き換え
NLPプログラムの実行(その1)
構文木を出力するプログラムへの拡張
NLPプログラムの実行(その2)
3. 対話プログラム(Eliza)の紹介
2
Swi-Prologのインストール
3
Prolog入門
• 実際に動かしながら身に着けよう!
• ポイントは、...
– ユニフィケーション(unification)という概念
– リスト形式における縦棒記号の取り扱い
4
構文解析プログラムを書いてみよう!
5
予習問題
(前回のパワポより複写)
 英文
Tom broke the big cup.
に対して以下のことを行え。
1. の構造を分析せよ。
2. この文を処理するための文法G1を書け。
3. G1を基にPrologプログラムを作成せよ。
Natural Language Processing 2010 (Tokyo University of Technology)
6
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).
7
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)).
8
練習問題
•
•
•
•
I have a book.
You have a book.
I need the beautiful book.
You throw a ball.
上記の英文を処理することのできる文法を設
定し、それに基づき構文解析プログラムを作
成しなさい。
9
レポート課題No2
• 対話システム Eliza と実際に会話し、感想や
気がついたことを合計5つ以上箇条書きで書
きなさい。
– 例:
• Elizaは英語なので使いにくい。
• 結構面白い。
• こんな分野に役立ちそう。 など
提出は来週の授業開始時です。
10