Pro Yearly is on sale from $80 to $50! »

CCGに基づいて論理構造を自動検証する日本語エディタ

Bbb37a2347eb8d2f5448213c74f9fa6f?s=47 denjiry
March 03, 2020

 CCGに基づいて論理構造を自動検証する日本語エディタ

Bbb37a2347eb8d2f5448213c74f9fa6f?s=128

denjiry

March 03, 2020
Tweet

Transcript

  1. CCGに基づいて論理構造を 自動検証する日本語エディタ 筑波大学 システム情報工学研究科 D3 田尻

  2. 自己紹介 ➢ 名前 ⭗ 田尻健斗(@denjiry) ➢ 所属 ⭗ 筑波大学大学院システム情報工学研究科D3 ⭗

    全脳アーキテクチャ若手の会 ⭗ (株)科学計算総合研究所 ➢ 研究分野 ⭗ FPGA・SVM ➢ ライフワーク (今日の話) ⭗ 組合せ範疇文法・依存型意味論 2
  3. この発表で話すこと 1. タイトルになっている、ソフトウェアの説明 ⭗ CCGに基づいて ⭗ 論理構造を自動検証する ⭗ 日本語エディタ 2.

    このソフトウェアをつかって何がしたいのか? 3
  4. 「CCGに基づいて論理構造を 自動検証する日本語エディタ」 とはなにか? 4

  5. 既存の日本語用エディタ ➢ Microsoft Word ➢ Grammaly ➢ 一太郎 ◎ 文法的な間違いがないか、を検証してくれる ✘ 

    文章の内容の正しさは検証できない 5
  6. このエディタで何をできるようにしたいか? 書いた文章の内容を検証して欲しい ➢ 論理構造の自動検証 ➢ 論理構造の可視化 どんな文章を処理したいか? 6

  7. 「全員にPCR検査すべき」は適切ではない(サブタイトル) (中略) 新型コロナウイルス肺炎は、今のところ抗ウイルス薬など特定の治療薬 はなく、対症療法を行うだけであり、無症状や軽症例に特別な治療は必 要がない。 「検査を行っても治療法や対処法が変わらない場合、その検査は行う意 味がない」と考えるのが医学の原則なのだ。 7 “新型コロナで「情報汚染」されたメディアが報じない「 5つの真実」

    ”https://gendai.ismedia.jp/articles/amp/70709?page=2 サンプル文章
  8. サンプル文章の話の整理 帰結 ➢ 症状のある人全員にはPCR検査は必要ない 根拠 ➢ PCR検査によって新型コロナウイルスを検出できる可能性がある ➢ 新コロにかかっても、無症状・軽症例に特別な治療は必要ない ➢

    検査を行っても治療法が変わらない場合、その検査を行う必要はな い 「根拠から帰結を導けるか」を自動で検証したい 8
  9. 論理構造の自動検証(お気持ち) ➢ 「まず人間がなんとなく正しそうな文章を書く」とする ➢ 文章の内容(論理的な真偽)を確かめたい ➢ 確かめ方をアルゴリズムとして規定したい ➢ そのアルゴリズムを計算機で自動化したい 9

  10. 論理構造の可視化(お気持ち) ➢ 係り受けの可視化 ➢ 短い文のつながり方の可視化 可視化の例: 人工言語(ロジバン)の構文解析ソフトウェアの出力 10 https://lojban.github.io/ilmentufa/glosser/glosser.htm

  11. タイトルを分解する 「CCGに基づいて論理構造を自動検証する日本語エディタ」 ➢ 「CCGに基づいて」 ⭗ CCGとはなにか? ➢ 「論理構造を自動検証する」 ⭗ (文章の)論理構造の検証とは?

    ⭗ 検証の自動化 ➢ 「日本語エディタ」 ⭗ 日本語のエディタである必要性 11
  12. タイトルを分解する 「CCGに基づいて論理構造を自動検証する日本語エディタ」 ➢ 「CCGに基づいて」 ⭗ CCGとはなにか? ➢ 「論理構造を自動検証する」 ⭗ (文章の)論理構造の検証とは?

    ⭗ 検証の自動化 ➢ 「日本語エディタ」 ⭗ 日本語のエディタである必要性 12
  13. ざっくり組合せ範疇文法(CCG) ➢ 自然言語の文法の理論 ➢ 自然言語→論理式という変換ができる ➢ 2つの構成要素からなる ⭗ 単語の辞書 ⭗

    組合せの規則 13
  14. この発表で出てくる論理式 ➢ 誰にとっても明快なルールを定める ➢ 定めたルールだけから生成できたものを論理式とする ➢ このように定めることで、証明がやりやすくなる ルールの定め方の例: 1. a,b,c,…,

    A(x), B(x),…を論理式とする 2. (論理式)&(論理式), ¬(論理式)も論理式とする 3. 上記以外は論理式ではない 14
  15. この発表の世界観 現実(言語化されてない知識) ↓↑人間が気合で変換・再変換 文章(いつもみんなが書くやつ) ↓CCGで自動で変換 論理式(文章の意味) 15 りんごは赤い

  16. 組合せ範疇文法(CCG)の辞書の例 辞書は{単語, 統語範疇, 論理式}の三つ組 ➢ 統語範疇: 「品詞」のCCGでの呼び方 ➢ 論理式: 単語に与える意味

    16
  17. 組合せ範疇文法(CCG)の組合せ規則 ➢ 「統語範疇:論理式」を一つの単位として適用できる ➢ 2つの単語・文節を組合せ、1つにする 例: 17 規則名 組合せ後 組合せ前

  18. 組合せ範疇文法(Combinatory Categorial Grammer) ➢ 文法の理論のひとつ ➢ 辞書は{単語, 統語範疇, 論理式}の三つ組の集合 ➢

    単語毎の統語範疇へ、組合せ規則を適用して構文木を算出する ➢ 構文木と組合せ規則から、文の意味として論理式を算出する 18
  19. CCGで日本語→論理式の変換 1. まず辞書によって単語から統語範疇と論理式を追加する 2. 組合せ規則と統語範疇をつかって構文木をつくる 3. 構文木にしたがって論理式も組合せる 例:「小さな犬が吠えた」の構文木と論理式 19

  20. まとめ: CCGとは ➢ 自然言語の文法の理論 ➢ 辞書は{単語, 統語範疇, 論理式}の三つ組の集合 ➢ 構文木から、形式的な操作のみで論理式に変換できる

    ➢ 出力された論理式は元の文の意味を表す 20
  21. タイトルを分解する 「CCGに基づいて論理構造を自動検証する日本語エディタ」 ➢ 「CCGに基づいて」 ⭗ CCGとはなにか? ➢ 「論理構造を自動検証する」 ⭗ (文章の)論理構造の検証とは?

    ⭗ 検証の自動化 ➢ 「日本語エディタ」 ⭗ 日本語のエディタである必要性 21
  22. (再掲)この発表の世界観 現実(言語化されてない知識) ↓↑人間が気合で変換・再変換 文章(いつもみんなが書くやつ) ↓CCGで自動で変換 論理式(文章の意味) 22 りんごは赤い

  23. 文章の論理構造の検証とは Question: ➢ (文章の)論理構造の検証とはどんなもの? Answer: ➢ 常識や前提知識に対して、含意が成り立っているかどうか調べるこ と ⭗ 文章の主張に必要な常識や前提知識を列挙

    ⭗ 列挙した文章が、主張を含意しているか検証する 23
  24. 含意関係認識 ➢ 「前提Piとしたn文(n≧1)が、結論Cの1文の意味を含むかどうか 予測する」という問題 ➢ 論理構造の検証の一部分 例 (n = 2):

    P1: ソクラテスは人間である。 P2: 人間は死ぬ。 C: ソクラテスは死ぬ。   こたえ→Yes 24
  25. 論理構造の検証の自動化 どうやって論理構造の検証を自動化するのか? 1. CCGに基づき、文章を論理式に変換 ⭗ ccg2lambdaで論理式への変換を自動化 2. 論理式の形式的な変形で、関係を検証(証明)する ⭗ 定理証明支援系で論理式の変形を自動化

    25
  26. ccg2lambda CCGに基づいて、文章を論理式に変換するソフトウェア ➢ CCGに基づくパーサーの出力から論理式を導く ➢ 定理証明支援系によって論理式同士の含意関係を出力 ➢ 実装 https://github.com/mynlp/ccg2lambda ➢

    含意関係認識のデータセットJSeMにおいて高い適合率を達成 26 “ccg2lambda: A Compositional Semantics System”, Martinez-Gomez,Pascual; Mineshima,Koji; Miyao,Yusuke;Bekki,Daisuke; (2016). In Proceedings of the 54st Annual Meeting of the Association for Computational Linguistics (ACL2016), System Demonstrations, pp.85-90, August 7-12, Berlin, Germany.
  27. ccg2lambdaによる変換例(スクショ) 27

  28. ccg2lambdaによる変換例 ➢ 例文 ⭗ 日本人研究者は誰もノーベル賞を受賞しなかった。 ➢ 出力 ⭗ all y.(exists

    x.(_日本人(x) & _者(x) & _研究(x) & (x = y)) -> -(_賞(_ノーベル) & True & exists e.(_受賞(e) & _する(e) & Past(e) & (Nom(e) = y) & (Acc(e) = _ノーベル)))) 28
  29. 論理式での含意関係認識 含意関係認識とは、 「前提Piとしたn文(n≧1)が、結論Cの1文の意味を含む」 論理式に言い換えると、 「P1 ∧ P2 ∧ … →

    C という論理式が証明可能である」 29
  30. 定理証明支援系 定理証明支援系とは: ➢ 論理式の形式的な変形・証明を支援するソフトウェア ➢ 変形をプログラムしたり、ある程度自動で証明させたりできる ※ ccg2lambdaにも組み込まれている 30

  31. まとめ: 論理構造の自動検証 ➢ 論理構造の検証 ≒ 「前提に対して、含意してるか調べる」 ➢ ccg2lambdaをつかって、以下を自動で行う a. CCGに基づき、文章を論理式に変換

    b. 論理式の形式的な変形で、含意を検証(証明)する ccg2lambdaを使えば、論理構造の自動検証が可能! 31
  32. タイトルを分解する 「CCGに基づいて論理構造を自動検証する日本語エディタ」 ➢ 「CCGに基づいて」 ⭗ CCGとはなにか? ➢ 「論理構造を自動検証する」 ⭗ (文章の)論理構造の検証とは?

    ⭗ 検証の自動化 ➢ 「日本語エディタ」 ⭗ 日本語のエディタである必要性 32
  33. なぜエディタを作るのか Question: ➢ なぜccg2lambdaをエディタにする必要があるのか? Answer: ➢ インタラクティブな修正がほぼ必須であるため a. 構文木の修正 b.

    文章の修正 33
  34. ccg2lambdaの使用に関する懸念点 ➢ 係り受けの曖昧さ ➢ 元の文と論理式の直感的意味の剥離 ➢ 自明な前提知識の埋め込み 34

  35. 係り受けの曖昧さ 係り受けの曖昧さによって、意味も曖昧になる場合がある → 意味が通る構文木が、一つとは限らない 35 ((赤い魚)をくわえる)猫 (赤い(魚をくわえる猫))

  36. 元の文と論理式の直感的意味の剥離 論理式は読みづらく、日本語に再翻訳すると元の文とかなり異なる 例: 「ソクラテスは人間である。」 exists x, (and (_人間 x) (exists

    e, (and ((Nom e) = x) ((Nom e) = _ソ クラテス)))) 「あるxがあって、xは人間であり、かつxはソクラテスである。」 36 変換 翻訳
  37. 前提知識の不足 普段なにかの論理構造を考えるとき、無意識に前提知識を考慮してい る → なんらかの形で、前提知識を補完する必要がある 例: 「上手に日本語を話せる」 → 「話すのに時間がかからない」 •

    日本語は言語のひとつである • 任意の言語について、上手に話せるならば、話すスピードが速い • 話すスピードが速いと、話すのに時間がかからない 37
  38. ccg2lambdaにエディタを実装 すぐに文を修正できて、かつ文の解析結果を表示させられるUI → 日本語のエディタ ➢ 係り受けの曖昧さ ⭗ ユーザーにアノテーションさせる or 候補から選ばせる

    ➢ 元の文と論理式の直感的意味の剥離 ⭗ 論理構造の可視化によって、論理式を見やすくする ➢ 前提知識の不足 ⭗ 解析結果によって指摘させ、手動で不足分の前提知識を追加 38
  39. 操作画面(UI)のイメージ 入力欄 症状のある人全員には、PCR検査は必要ない。 39 出力 • 以下から選んでください 1. (症状の(ある人全員))には、PCR検査は必要ない。 2.

    ((症状のある人)全員)には、PCR検査は必要ない。
  40. 操作画面(UI)のイメージ 入力欄 ((症状のある人)全員)には、PCR検査は必要ない。 40 出力

  41. 操作画面(UI)のイメージ 入力欄 ((症状のある人)全員)には、PCR検査は必要ない。 41 論理構造:Error 出力

  42. 入力欄 ((症状のある人)全員)には、PCR検査は必要ない。 • PCR検査によって新型コロナウイルスを検出できる可能性がある • 新コロにかかっても、無症状・軽症例に特別な治療は必要ない • 検査を行っても治療法が変わらない場合、その検査を行う必要はない 操作画面(UI)のイメージ 42

    論理構造:OK 出力
  43. まとめ: このエディタで出来そうなこと 書いた文章の… ➢ 論理構造の自動検証 → 多少の不便を許容すればできそう ⭗ 前提知識をあらかじめ手動で入力 ⭗

    構文木をアノテーションさせる ➢ 論理構造の可視化 → 前例あり・頑張って実装する 43
  44. このソフトウェアをつかって何がしたいのか? 44

  45. 知識の利用と保存 ➢ 知識の利用・保存は、人類の活動において必要不可欠 ⭗ 研究・技術開発 ⭗ 司法・行政 ⭗ 専門技術を要する職業 ➢

    知識を利用・保存するのに必要なこと ⭗ 論理構造を正しく理解する ⭗ 正しい論理構造で文章を書く 45
  46. 知識を利用することの困難さ ➢ 今存在する知識の量 >>> すぐに理解できる知識の量 ➢ 単語の定義や文章の解釈が人によって異なる → 「論理構造を自動検証する日本語エディタ」で解決!…したい 46

  47. 日々増えていく知識の例: arXiv.org 47 https://arxiv.org/list/cs/new 1日のCSの論文の投稿数=371本

  48. 実用的な「言葉の定義」の要件とは? 文章の解釈を揃えたい… → 「言葉の定義」をつくる 実用的な「言葉の定義」の要件とは? ➢ 解釈が一通りに定まる ⭗ 論理式など、形式的に定義されているもの ➢

    習得のしやすさ ⭗ 日本語など、広く普及していて誰でも使えるもの 両方をみたすような「言語の定義」は、定義することが難しい… 48
  49. (再掲)知識を利用することの困難さ つらいこと ➢ 今存在する知識の量 >>> すぐに理解できる知識の量 ⭗ 人間が論理構造を検証するスピードは速くない ➢ 単語の定義や文章の解釈が、人によって異なる

    ⭗ 実用的な「言葉の定義」が普及していない → 「論理構造を自動検証する日本語エディタ」で解決!…したい 49
  50. 知識を利用しやすくする このエディタの特徴 ➢ 検証を通した文章ならば、論理構造を機械的に処理できる ➢ 構文木が定まれば、意味(論理式)が一意に定まる 50

  51. 知識を利用しやすくする このエディタの特徴 ➢ 検証を通した文章ならば、論理構造を機械的に処理できる → 人間が理解しなくても、その文章をソースとして利用できる ➢ 構文木が定まれば、意味(論理式)が一意に定まる → 実質日本語の見た目をした論理式とみなせる

    51
  52. 懸念 結局前提知識どうすんの問題 ➢ 常識的前提知識を実装しないと実用するのはむずかしそう ➢ 全ての常識を手作業で入力するのは到底不可能 ➢ そもそも常識と称してる知識も定義するべきかも? ➢ よくつかう常識的前提知識をなるべく実装したら実用できるかも??

    ⭗ 概念・品詞でまとめるなど、効率化をはかる ⭗ 現在はこれを実践しようとしている 52
  53. まとめ ➢ 論理構造を自動で検証させたい ➢ ほぼ要求を満たしているccg2lambdaというソフトウェアがある ➢ エディタをくっつけると不便さの一部が解決できる ➢ あらゆる知識の利用が高速化できるといいなぁ 53

  54. 参考文献 ➢ Bekki,Daisuke; Miho,Sato; (2015).”Calculating Projections via Type Checking”, In

    Extended abstracts of the ESSLLI 2015 workshop TYTLES: Types Theory and Lexical Semantics, Robin Cooper, Christian Retore (eds.), Aug 2015, Barcelona, Spain. 2015. slide:https://www.slideshare.net/kaleidotheater/bekki-satotytles2015 ➢ Martinez-Gomez,Pascual; Mineshima,Koji; Miyao,Yusuke;Bekki,Daisuke; (2016). “ccg2lambda: A Compositional Semantics System”, In Proceedings of the 54st Annual Meeting of the Association for Computational Linguistics (ACL2016), System Demonstrations, pp.85-90, August 7-12, Berlin, Germany. ➢ 『日本語文法の形式理論』戸次 , 2010 ➢ Koji Mineshima, Ribeka Tanaka, Pascual Martínez-Gómez, Yusuke Miyao, Daisuke Bekki. “Building compositional semantics and higher-order inference system for wide-coverage Japanese CCG parsers”, Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, pages 2236-2242, Austin, Texas, 1-5 November 2016. 54
  55. おまけ 55

  56. ラムベック計算(Lambek Calculus) 「構文木の導出過程と、論理式の証明過程は同型とみなせる」という主張 すなわち以下が対応する ➢ 言語学 ⭗ 辞書と統語計算規則(チョムスキーのmergeとか) ➢ 証明論

    ⭗ 公理と推論規則 56
  57. 型付きラムダ計算(1/2) ラムダ計算 ➢ とてもシンプルな、計算のモデルのひとつ ➢ 計算すすめると、項の組合せが簡約される ➢ 以降ラムダ計算の項や型をラムダ式とも呼ぶ 57 簡約

  58. 型付きラムダ計算(2/2) 型システム ➢ 項に関するメタな情報(型)をラムダ式に付与することで、実行せずに 計算を検証する仕組み ➢ コロン(” : “)を用いて、項 :

    型と書く ➢ 例 ⭗ (一般的な)項 ⭗ 直積型 ⭗ 関数型 58
  59. 型付きラムダ計算の定義(1/2) ➢ 再帰的な定義がなされている ⭗ 規則と定義の簡略化 ➢ 基本型に自然数を導入することで、 任意の数の型が定義可能 59 型τの定義

    項eの定義 基本型 関数型 型注釈 変数 関数適用 関数抽象 ※評価後の値の定義は省略
  60. 型付きラムダ計算の定義(2/2) ➢ 項と型に関する規則 ⭗ ある項の型を推論する規則 ⭗ ある型が定義を満たすか検証する規則 60

  61. 論理としての型システム 「ラムダ計算の型は論理式として使用可能である」 ➢ 詳しくは→[カリー・ハワード同型対応 証明論] [検索] 61 ラムダ計算の規則 論理式の規則 例)直積型と∧

  62. 直積型とタプル ➢ 直積型 A×Bはタプル(a, b)を表す型 ⭗ 論理式ではA∧Bに対応 ➢ タプルの中身にアクセスする演算子 ⭗

    π1: 1番目の要素をとりだす操作 π1 (a, b) → a ⭗ π2: 2番目の要素をとりだす操作 π2 (a, b) → b 62
  63. 依存型意味論 依存型を導入した型付きラムダ計算を使った意味論 ➢ 型付きラムダ式の型を論理式として使う ➢ 依存型:ざっくり言うと「値に依存する型」 ➢ 依存型によってラムダ計算の表現力が大きく向上 ⭗ 未指定項@によって文脈にまつわる現象を表現する

    63
  64. 依存型(依存直積型) ➢ 型のペア(論理式の∧)を作る点は直積型と同じである ➢ 直積型とは違い、型だけではなく項もとれる 64 直積型 依存直積型

  65. 照応 ➢ 言語における現象のひとつ ➢ 代名詞がなにかを指し示している ⭗ 例... A「テーブルのうえにあるそれ取って」 B「(それってどれ…)」 ➢

    機械的に解くのは簡単ではない ⭗ 前提知識をどう使うか?→未指定項@を使う! 65
  66. 文章とラムダ式による照応の表現 “A man entered. He whistled.” ➢ 「「xはman」かつ「xはenterした」」かつ「(π1 u)は口笛を吹いた」 ➢

    π1はpairの第1成分を取り出す演算子なのでπ1 u = x ➢ よって「「xはman」かつ「xはenterした」」かつ「xは口笛を吹いた」 66 π1 u “He”の正体は”A man” →照応が解決できた!
  67. 代名詞”He”のラムダ式 “A man entered. He whistled.” ➢ 代名詞“He”はこの文以外にも使いたい ➢ 他の文でも使えるような、代名詞自体のラムダ式がない…

    ➢ 代名詞“He”のラムダ式はどうすれば…? 67 ? 例) “Alice greets John. He whistled.”
  68. 未指定項 代名詞をラムダ式で表すため、 「未知の意味表示を表す項」 として未指定項@を導入 →未指定項により、代名詞”He”のラムダ式が記述可能 68

  69. 未指定項の除去(1/2) 照応解決のため、未指定項@について型を推論する(普通のコンパイラ) 型の推論が成功→@の型が得られる 69

  70. 未指定項の除去(2/2) 得られた@の型をもとに、その型を構成できるラムダ式の項を探す もし探索に成功したら、その項は@と同じ型をもつため、照応が解決 この例では@= ➢ “A man entered. He whistled.”

    70 π2 π1
  71. 未指定項@の機能 ➢ 文脈にまつわる現象の表現 ⭗ 照応: 代名詞が別の部分を指し示す ⭗ 選択的制約: 述語が主語に課す意味的な制約 ⭗

    前提射影:ある文に暗黙的に含まれている意味 ⭗ コアージョン:文脈による意味の強制 ➢ これらの現象は、未指定項をつかうことで表現可能! ⭗ 未指定項@の型情報から自動証明によって解けるかも 71