Download presentation
Presentation is loading. Please wait.
1
東京工科大学 コンピュータサイエンス学部 亀田弘之
自然言語処理2016 -平成28年10月31日(No5)- 東京工科大学 コンピュータサイエンス学部 亀田弘之
2
© Natural Language Processing 2016(Tokyo University of Technology)
前回の復習から 今日の課題 先週授業までであなたは何を学びましたか?列挙しなさい。 解答例) 1.○○を学んだ。 2.○○のインストール手順 3.○○の定義 4.○○という用語 © Natural Language Processing 2016(Tokyo University of Technology)
3
© Natural Language Processing 2016(Tokyo University of Technology)
NLPのプログラムを書いてみよう! 学習目標 Prologのインストール プログラム作成手順 解析対象テキストの収集 IC分析(直接構成素分析, Immediate Constitutent Analysis) 形式文法の設定 Prolog形式への書き換え NLPプログラムの実行・確認(その1) 構文木を出力するプログラムへの拡張 NLPプログラムの実行・確認(その2) © Natural Language Processing 2016(Tokyo University of Technology)
4
© Natural Language Processing 2016(Tokyo University of Technology)
NLPのプログラムを書いてみよう! 学習目標 Prologのインストール プログラム作成手順 解析対象テキストの収集 IC分析(直接構成素分析, Immediate Constitutent Analysis) 形式文法の設定 Prolog形式への書き換え NLPプログラムの実行・確認(その1) 構文木を出力するプログラムへの拡張 NLPプログラムの実行・確認(その2) © Natural Language Processing 2016(Tokyo University of Technology)
5
© Natural Language Processing 2016(Tokyo University of Technology)
I.Prologのインストール (再確認) © Natural Language Processing 2016(Tokyo University of Technology)
6
© Natural Language Processing 2016(Tokyo University of Technology)
Prologの種類 Swi-prolog SICStus-Prolog I/F-Prolog K-Prolog Minerva Arity/Prolog RUN/Prolog C-Prolog Gnu Prolog Open Prolog YAP Prolog など © Natural Language Processing 2016(Tokyo University of Technology)
7
© Natural Language Processing 2016(Tokyo University of Technology)
自由課題(提出の必要性なし) どんなProlog処理系があるのか調べてみよう。 それぞれのWeb Siteを見つけてみよう。 どれか1つdownloadして使ってみよう。 各Prologの特徴を比較し、一覧表に整理してみよう。 (注)本授業ではswi-prologを使います。 なぜでしょうか? 理由を考えてみてください。 © Natural Language Processing 2016(Tokyo University of Technology)
8
II. Prologによる構文解析プログラム
処理対象(1. 解析対象テキストの収集): Tom broke the cup. © Natural Language Processing 2016(Tokyo University of Technology)
9
© Natural Language Processing 2016(Tokyo University of Technology)
2. IC分析 Tom broke the cup 文 __ _____ 名詞句 動詞句 ___ __ __ 名詞 動詞 名詞句 __ ___ 限定詞 名詞 © Natural Language Processing 2016(Tokyo University of Technology)
10
© Natural Language Processing 2016(Tokyo University of Technology)
3. 形式文法の設定 開始記号=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 2016(Tokyo University of Technology)
11
© Natural Language Processing 2016(Tokyo University of Technology)
4. Prolog形式への書き換え s :- np, vp. np :- n. np:-d,n. vp:-v,np. n:-tom. n:-cup. v:-broke. d:-the. © Natural Language Processing 2016(Tokyo University of Technology)
12
© Natural Language Processing 2016(Tokyo University of Technology)
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). © Natural Language Processing 2016(Tokyo University of Technology)
13
© Natural Language Processing 2016(Tokyo University of Technology)
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)). © Natural Language Processing 2016(Tokyo University of Technology)
14
© Natural Language Processing 2016(Tokyo University of Technology)
今日の内容 Prologにおけるユニフィケーションを理解する. Prologの動作を理解する. 構文解析プログラムの動作を理解する. 構文解析プログラムを自分で書いてみる. その結果、先週までの内容の理解を深める. © Natural Language Processing 2016(Tokyo University of Technology)
15
1.Prologにおける ユニフィケーションを理解する
定数と定数 定数と変数 変数と変数 リスト 述語 © Natural Language Processing 2016(Tokyo University of Technology)
16
© Natural Language Processing 2016(Tokyo University of Technology)
定数と定数 unifyする(同一視可) unifyしない(同一視不可) 2013 2013 abcd abcd 2013 × 1986 3 × 3.0 abcd × xyz © Natural Language Processing 2016(Tokyo University of Technology)
17
© Natural Language Processing 2016(Tokyo University of Technology)
定数と変数 unifyする(同一視可) unifyしない(同一視不可) © Natural Language Processing 2016(Tokyo University of Technology)
18
© Natural Language Processing 2016(Tokyo University of Technology)
変数と変数 unifyする(同一視可) unifyしない(同一視不可) © Natural Language Processing 2016(Tokyo University of Technology)
19
© Natural Language Processing 2016(Tokyo University of Technology)
リストおよび述語 unifyする(同一視可) unifyしない(同一視不可) © Natural Language Processing 2016(Tokyo University of Technology)
20
© Natural Language Processing 2016(Tokyo University of Technology)
実際の例 unifyする(同一視可) unifyしない(同一視不可) © Natural Language Processing 2016(Tokyo University of Technology)
21
© Natural Language Processing 2016(Tokyo University of Technology)
コメント ここまでの話が分かれば、Proloの基本はほぼ抑えたことになります。 Prolog言語は、JavaやCよりも簡単ですよね! (本当?) 重要な概念と記号: ・ユニフィケーション ・リスト [a, b, c, d | Z] バー記号(縦棒記号) © Natural Language Processing 2016(Tokyo University of Technology)
22
© Natural Language Processing 2016(Tokyo University of Technology)
3.構文解析プログラムの動作を理解 (例文) Tom broke the cup. © Natural Language Processing 2016(Tokyo University of Technology)
23
© Natural Language Processing 2016(Tokyo University of Technology)
4.構文解析プログラムを自分で書く 作成手順は? (これも復習事項です。思い出せますか? 前回のパワポ資料も参考にしてください。) © Natural Language Processing 2016(Tokyo University of Technology)
24
© Natural Language Processing 2016(Tokyo University of Technology)
作成手順の概要 処理対象を決める 処理対象の各文に対して、統語構造の分析を行う 上記の分析結果をもとに、文法を書き下す 上記で得られた文法を、Prologの形式に書きかえる 動作を確認する © Natural Language Processing 2016(Tokyo University of Technology)
25
© Natural Language Processing 2016(Tokyo University of Technology)
自習問題(提出の必要性なし) 例文) Time flies like an arrow. (アドバイス)参考書 “自然言語処理”, 天野 他, オーム社(2007). 第3章の3.2を参考にすると良いと思います。 © Natural Language Processing 2016(Tokyo University of Technology)
26
© Natural Language Processing 2016(Tokyo University of Technology)
3.その他 知っていると便利な概念・用語を紹介します。 © Natural Language Processing 2016(Tokyo University of Technology)
27
© Natural Language Processing 2016(Tokyo University of Technology)
構文解析の種類 分類1 トップダウン解析方式(Topdown) ボトムアップ解析方式(Bottom-up) 分類2 縦型解析方式 横型解析方式 © Natural Language Processing 2016(Tokyo University of Technology)
28
© Natural Language Processing 2016(Tokyo University of Technology)
確認問題 下記の用語を自分の言葉で説明しなさい。 構文解析 トップダウン解析方式とボトムアップ解析方式 縦型解析方式と横型解析方式 バックトラック プログラミング言語Prolog © Natural Language Processing 2016(Tokyo University of Technology)
29
© Natural Language Processing 2016(Tokyo University of Technology)
次回(11/7)の予告 日本語を対象とするプログラムを一緒に作成します。 PCを忘れないように。 Swi-Prologが動くこと、UTF-8コードで保存できるエディターが必要です。メモ帳でもOKです。 必要なら、日本語の文法書や辞書を持参してください(たぶん要らないと思いますが...)。 © Natural Language Processing 2016(Tokyo University of Technology)
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.