Successfully reported this slideshow.
Your SlideShare is downloading. ×

Prologで構文解析という昔話

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Prologで構文解析という昔話

  1. 1. Prologで構文解析という昔話 しおばらひろあき@ハイロウテック ゆるふわ非構造#1 (2014/09/28)
  2. 2. 自己紹介 • しおばらひろあき • 合同会社ハイロウテック代表社員 • http://www.hilotech.jp/ • Webの下から上まで全般が守備範囲 • 最近はなぜかドールの衣装販売もしている…
  3. 3. テーマ 自然言語の文章を Prologで構文解析してた事例
  4. 4. ごめんなさい… • 昔話です • 20年前! • いろんな意味で、いまは通用しない(かも) • 技術的に端折ったり間違ってるところがあるかも • http://www.hilotech.jp/contact でそっと教えてね!
  5. 5. 構文解析って? 音声分析形態素解析 構文解析 意味分析や 機械翻訳 文章の構造を 解析する ココ! とかOCR。 テキスト対象 の場合は不要 MeCabとか Kuromoji
  6. 6. どうやる?(20~30年前の話) チョムスキーの「生成文法理論」 と Prologでやろうぜ!
  7. 7. 生成文法理論って? 日本語とか英語とかの個別言語は、 「形式文法」によってルールを記述できる 人間は、生まれながらにして共通の 「普遍文法」をもっている ノーム・チョムスキー
  8. 8. 英語を形式文法で記述してみる • 仮に英語に 以下のようなバリエーションしかないとして… Tom broke the cop. • 英語のルールは形式文法でこう書ける { s → n,vp. vp → v,np. np → d^,n. v → { broke }. d → { the }. n → { tom, cup}. } 品詞分類は伝統文法とは違う! ・s : sentence ・vp : verbal phrase ・np : noun phrase ・v : verb ・d : determiner ・n : noun
  9. 9. Prologって? • 非手続型言語 • 述語論理で記述する論理型言語 • おフランス製 • 人工知能やエキスパートシステム分野で、 日本でも一時期流行った • 実装はいろいろある
  10. 10. Prologって? • プログラム例 % 三段論法 % 事実: ソクラテスは人間である human('Socrates'). % ルール: 人間は死ぬ die(X) :- human(X). • 実行例 ?- die(‘Socrates’). true. • 推論してくれる! ←←形式文法に似てる!!
  11. 11. Prologで英語の形式文法を書いてみよう! • たとえばこんな感じ { s → n,vp. vp → v,np. np → d^,n. v → { broke }. d → { the }. n → { tom, cup}. } s(X,Y) :- np(X,Z),vp(Z,Y). vp(X,Y) :- v(X,Z),np(Z,Y). np(X,Y) :- d(X,Z),n(Z,Y). np(X,Y) :- n(X,Y). v([broke|X],X). d([the|X],X). n([tom|X],X). n([cup|X],X). 一部省略します
  12. 12. 文章を与えて構文解析させてみる • こんなふうに出力が可能 ?- s([tom,broke,the,cup],[]). s(n(tom), vp(v(broke), np(d(the), n(cup)))) true. • 木構造での表示もできる
  13. 13. 発展 統語規則・辞書を増やせば多くの文章 を構文解析できる 英語以外の言語でも対応できる • 実際、しおばらはロシア語でやっていました
  14. 14. どこらへんが昔話なの? • 今は統計学的手法(機械学習)が使われる • vs. 「CaboCha」 • サポートベクターマシンで構文解析する • Prologがあまり使われない… • ICOTなどの政治的な経緯があり忌避されるように • ぶっちゃけPrologの使い方がわからん • 生成文法理論にも批判が多い • 「気に入らない」とかいろいろ…
  15. 15. でも… 温故知新
  16. 16. 温故知新 • 統計学的手法以外のアプローチは必要 • 「機械学習型でうまくいかなければ別の方法で…」と最適 な手法を判断して適応する • 大量の自然言語データを Prolog形式に変換する手法も考えられる • Prolog自体はユニーク • 知ってると変人としていばれる
  17. 17. ご清聴感謝します

×