※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。今回は自然言語処理で実際に使うことを目的とした制約論理プログラミングを作ってみましょう。条件が動的に決まるような場合はプログラムが複雑になることがあります。制約論理プログラミングではこの問題を解決してくれます。サンプルを見てみましょう。18条件が4つあっても変数Xが4つ目の条件が終わるまでは値が決まらないので、記述が簡単にです。条件が動的に代わる問題、例えば上の例の条件を反転してみましょう。12ただしこれはtraceをしてfreezeの動作を確認するための例です。実際には意味が無いので、次に実例を見てみましょう。次に単語を変換するプログラムを書いてみましょう。属性にヒットしたら、属性の代表的な単語に変換するプログラムです。22制約func述語はassert,retractを使って追加、更新、削除ができます。追加はこんな感じです。=..[':-',func('泣',S,true),member(S,['シクシク','ウルウル'])],assert(X).最後に制約論理を用いたDCG表記法を書いてみましょう。手の込んだプログラムにすれば制約条件を行なった自動応答文ができそうです。プライバシーポリシー。