自然言語をラムダ式で解釈する体系ptqのhaskell実装

17

Click here to load reader

Upload: masahiro-sakai

Post on 07-Jul-2015

2.528 views

Category:

Education


4 download

DESCRIPTION

2009-11-20 Haskell Night にて。

TRANSCRIPT

Page 1: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

自然言語をラムダ式で解釈する体系PTQ

酒井政裕@masahiro_sakai

のHaskell実装

Page 2: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

今日の話

自然言語は関数型言語!

Page 3: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

The

Proper

Treatment of Quantificationin ordinary English

Richard Montague

元ネタ

1973

Page 4: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

デモ

いきなりだけど

Haskellで実装したので

Page 5: 自然言語をラムダ式で解釈する体系PTQのHaskell実装
Page 6: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

改めて今日の話

自然言語は関数型言語!

Page 7: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

どういうことか?

•品詞は型

•単語の並びは関数適用

Page 8: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

John :: 名詞walk :: 動詞

John walks. :: 文

品詞 (範疇)

Page 9: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

素朴なアイディア

type動詞= 名詞→文

type名詞 = Entity

type文 = Bool

Page 10: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

John :: Entity

walk :: Entity → Bool

John walks.

⇒ walk(John) :: Bool

素朴なアイディア

Page 11: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

素朴なアイディア

type他動詞= 名詞→動詞

find, love :: 他動詞

Page 12: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

素朴なアイディアでダメな場合

• John or Mary walks.

• Every man walks.

Entity として解釈不能

Page 13: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

PTQのHack

type動詞 = 名詞→文

type 名詞 = 動詞→文

ではなく

Page 14: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

要は高階関数

type動詞

= Entity → Bool

type名詞

= 動詞→文

= (Entity → Bool) → Bool

Page 15: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

翻訳

John or Mary

⇒λf→ f John’ ∨ f Mary’

:: (Entity→Bool) → Bool

John or Mary walks

⇒ (λf→ f John’ ∨ f Mary’) walk’

= walk’(John’) ∨ walk’(Mary’)

Page 16: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

この先の話

•冠詞と量化 (これが面白い)

•内包と外延

•時制と様相

•他の文型ただし、今回は省略

Page 17: 自然言語をラムダ式で解釈する体系PTQのHaskell実装

PTQのHaskell実装

• HackageDB で PTQ

% cabal install PTQ

• Haskellは記号処理が得意

• こういうのはちょー簡単