狠狠撸

狠狠撸Share a Scribd company logo
1
はじめてのAIプログラミング
5章: 知識表現
2013/7/2
? 意味ネットワーク
? フレーム
? スクリプト
? プロダクションルール
知識表現
2
例
コンピュータに推論をさせたい
推論に使う「知識」をどうやって持たせれば良いか?
草食動物は草を食べる
馬は草食動物
馬は何を食べる?
草を食べます
ノード → もの
エッジ → 関係
3
意味ネットワーク: モノと関係
グラフにおいて とした知識表現
馬
草食動物 肉食動物
Is-a
eats
草
Is-a
動物
Is-a
ライオン
Is-a
たてがみ
has-a
ノード → もの
エッジ → 関係
4
意味ネットワーク: モノと関係
グラフにおいて とした知識表現
馬
草食動物 肉食動物
Is-a
eats
草
Is-a
動物
Is-a
ライオン
Is-a
たてがみ
has-a
馬は何を食べる?
? ノード内部にスロットと呼ばれる構造を保持
? ノード間のスロット継承関係も表現可能
5
フレーム: 要素を持つモノ
馬フレーム
要素1: たてがみ
要素2: ひずめ
操作: 人を乗せる
草食動物フレーム
食べ物: 草
継承
「エピソード」を時系列に並べたもの
6
スクリプト: 連続した出来事の列
研究室に行く
家を出て駅まで歩く
駅で地下鉄に乗る
電車を降りて研究所まで歩く
エレベータに乗り,研究室まで
スクリプト
エピソード
研究室に行く
エピソード
家を出て駅まで歩く
駅で地下鉄に乗る
電車を降りて研究所まで歩く
エレベータに乗り,研究室まで
「エピソード」を時系列に並べたもの
7
スクリプト: 連続した出来事の列
スクリプト
昨日は研究室に行った
なるほど
昨日は地下鉄に乗ったかな?
乗ったはずです
8
プロダクションルール: if…then…
馬
肉食動物
草食動物
……
草食動物
肉を食べる
草を食べる
……
「もし〇〇ならば××」というルールの列
もし ならば
プロダクションルールの例
9
プロダクションルール: if…then…
馬
肉食動物
草食動物
……
草食動物
肉を食べる
草を食べる
……
「もし〇〇ならば××」というルールの列
もし ならば
プロダクションルールの例
馬は草を食べるっけ?
はい,正しいです
? テキストデータから単語を抽出
? “単語”の判断は難しいので,3章と同様に,同じ文字種
の連続を単語と判断
? cutkk.cでは,漢字の連続,カタカナの連続のみを対象
10
演習1: 意味ネットワークを利用した連想エンジン
プログラム1-1 cutkk.c (pp. 155-158)
1. 単語列データファイルから意味ネットワークを構築
n行目の要素をE[n]として,”E[2n-1] is a E[2n]”という二項関係を作成
2. ユーザの入力した単語から連想を行う
2.1 入力された単語を元に,is-a 関係にある単語を探し出力
2.2 出力した単語のis-a関係を探し出力,…繰り返し
プログラム1-2 makesnt.c (pp. 162-165)
? テキストデータから単語を抽出
? “単語”の判断は難しいので,3章と同様に,同じ文字種
の連続を単語と判断
? cutkk.cでは,漢字の連続,カタカナの連続のみを対象
11
演習1: 意味ネットワークを利用した連想エンジン
プログラム1-1 cutkk.c (pp. 155-158)
1. 単語列データファイルから意味ネットワークを構築
n行目の要素をE[n]として,”E[2n-1] is a E[2n]”という二項関係を作成
2. ユーザの入力した単語から連想を行う
2.1 入力された単語を元に,is-a 関係にある単語を探し出力
2.2 出力した単語のis-a関係を探し出力,…繰り返し
プログラム1-2 makesnt.c (pp. 162-165)
今回は省略
1. システムへの入力としてプロダクションルールを与える
入力ファイルの各行は, 5つの空白区切りの要素からなり,
最初の4つがキーワード,最後の一つが応答に使う文章
キーワードが4つ以下の場合はハイフンを使う
例) “先生 相談 - - 相談の内容はどんなことでしょう”
2. マッチするルールを用いて応答
2.1 ユーザの入力した文章に,あるルールのすべてのキーワー
ドが含まれていれば,そのルールとマッチ
2.2 マッチするルールの応答用文章を出力
? 複数マッチするルールがある場合はランダムに選択
? マッチするルールがない場合は“どうぞ続けてください?n”と出力
12
演習2: プロダクションルールを利用した相談システム
プログラム2-1 ai5.c (pp. 175-178)

More Related Content

はじめてのAIプログラミング 5章: 知識表現