O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

やさしい日本語言い換えシステムを支える技術

5.487 visualizações

Publicada em

coinsLT #1で話した(けど途中までしか話せなかった)内容。ルールベースの言い換えシステムの効率的な実装の内部を説明。

Publicada em: Tecnologia
  • Hello! I can recommend a site that has helped me. It's called ⇒ www.HelpWriting.net ⇐ So make sure to check it out!
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Dating for everyone is here: ❶❶❶ http://bit.ly/2ZDZFYj ❶❶❶
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Dating direct: ❤❤❤ http://bit.ly/2ZDZFYj ❤❤❤
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { https://urlzs.com/UABbn }
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

やさしい日本語言い換えシステムを支える技術

  1. 1. やさしい日本語への 言い換えシステムを 支える技術 情報科学類4年 えりっく
  2. 2. やさしい日本語への 言い換えシステムを 支える技術 情報科学類4年 えりっく 自然言語処理研究室
  3. 3. やさしい日本語への 言い換えシステムを 卒研でない 支える技術 情報科学類4年 えりっく 自然言語処理研究室
  4. 4. やさしい日本語への 言い換えシステムを 支える技術 情報科学類4年 えりっく 趣味 自然言語処理研究室
  5. 5. やさしい日本語への 言い換えシステムを 支える技術 情報科学類4年 えりっく 趣味 自然言語処理研究室
  6. 6. やさしい日本語への 言い換えシステムを 支える技術 ?
  7. 7. やさしい日本語とは
  8. 8. やさしい日本語とは 日本語弱者のための日本語
  9. 9. やさしい日本語とは  こども  外国人 日本語弱者のための日本語
  10. 10. やさしい日本語とは  こども  外国人 日本語弱者のための日本語 より具体的に言えば、 日本語能力試験の3級以下の語彙
  11. 11. やさしい日本語への 言い換えシステムを 支える技術 !
  12. 12. やさしい日? 本語への 言い換えシステムを 支える技術
  13. 13. 言い換えとは(3行で)
  14. 14. 言い換えとは(3行で) 意味を変えずに
  15. 15. 言い換えとは(3行で) 意味を変えずに 別の表現に
  16. 16. 言い換えとは(3行で) 意味を変えずに 別の表現に 置き換える
  17. 17. 言い換えシステムとは 例えば「しずかったー」
  18. 18. 言い換えシステムとは 例えば「しずかったー」 罵詈雑言を きれいな言葉に 言い換えてくれる
  19. 19. やさしい日! 本語への 言い換えシステムを 支える技術
  20. 20. やさしい日本語への 言い換えシステムを 支える技術
  21. 21. きっかけ • 東京国際大学の川村教授が考案 • 先輩が過去にこのシステムを作っていた • 「引き継がないか」と言われて引き継いだ • 引き継いだ結果全部書き直した • 月2回の出勤で5万円
  22. 22. きっかけ • 東京国際大学の川村教授が考案 • 先輩が過去にこのシステムを作っていた • 「引き継がないか」と言われて引き継いだ • 引き継いだ結果全部書き直した • 月2回の出勤で5万円
  23. 23. きっかけ • 東京国際大学の川村教授が考案 • 先輩が過去にこのシステムを作っていた • 「引き継がないか」と言われて引き継いだ • 引き継いだ結果全部書き直した • だれか引き継がない?
  24. 24. Q. 書き換えって 単語で辞書引いて 置換するだけじゃ...
  25. 25. と思うじゃん?
  26. 26. ぼくも最初は思ったよ。
  27. 27. 朝食 → 朝ごはん わかる 名詞 名詞
  28. 28. 朝食 → 朝ごはん 培え ば → 育てれ ば まあ わかる 動詞(仮定) 動詞(仮定)
  29. 29. 朝食 → 朝ごはん 培え ば → 育てれ ば 獲得 し て → 得 て 2語か... サ変名詞 動詞 (連用) 動詞 (連用)
  30. 30. 朝食 → 朝ごはん 培え ば → 育てれ ば 獲得 し て → 得 て 読書 し て → 読ん で !?
  31. 31. 朝食 → 朝ごはん 培え ば → 育てれ ば 獲得 し て → 得 て 読書 し て → 読ん で の 列挙 → を 並べる こと !? !?
  32. 32. A. 意外とめんどい
  33. 33. 今回の言い換えシステムの仮定 ・局所最適化(フレーズ単位で言い換え)すれば、  全体最適化される(意味の通る文章になる) ・文の先頭からルールにマッチさせて  変換できる (back-­‐trackなし)
  34. 34. 言い換えの流れ 1 フィルタ処理   ・名詞列の言い換え回避   ・連語の連結 ルール適用 2 ルールベースの置き換え
  35. 35. 言い換えの流れ 1 フィルタ処理   ・名詞列の言い換え回避   ・連語の連結 こちらだけ 説明 ルール適用 2 ルールベースの置き換え
  36. 36. これから話す内容(in Haskell) trait_label :: Word → Label type Rule = [Word] → Int × [Word] prefix_match :: [Label] → Rule × Int simplify :: [Word] → [Word] simplify seq = simplify' seq [] simplify' :: [Word] → [Word] → [Word] simplify' [] applied = applied simplify' seq applied = let trait_seq = map (e -> trait_label e) seq let (rule, len) = prefix_match trait_seq in let (chunk, offset) = rule (take seq len) in simplify' (drop (len - offset)) (applied ++ chunk)
  37. 37. 「・・・は?」
  38. 38. ちょっとまって逃げないで わかりやすく説明するから... (´;ω;`)ウッ…
  39. 39. 紹介する3つの概念 特徴ラベル関数 trait_label 言い換えルール型 Rule 前方一致検索関数 prefix_match
  40. 40. 特徴ラベル関数 trait_label
  41. 41. 特徴ラベル関数 単語から特徴ラベルへの全射的な関数
  42. 42. 特徴ラベル関数 後述 単語から特徴ラベルへの全射的な関数
  43. 43. 特徴ラベル関数 単語から特徴ラベルへの全射的な関数 表層形・原形・品詞などで決定する
  44. 44. 特徴ラベル関数 単語から特徴ラベルへの全射的な関数 表層形・原形・品詞などで決定する ルールマッチ時の分岐の煩雑さを 解消するために勝手に導入した
  45. 45. 特徴ラベル関数 単語から特徴ラベルへの全射的な関数 表層形・原形・品詞などで決定する ルールマッチ時の分岐の煩雑さを 解消するために勝手に導入した ※型注釈で言うと  trait_label :: Word → Label
  46. 46. 特徴ラベル関数の例 trait_label(    ) = :m_proper 固有名詞 coins trait_label( 食 べ る ) = :d_other ※型注釈で言うと  trait_label :: Word → Label 動詞(その他) trait_label( す る  ) = :d_suru 動詞(スル) 全29種類(有限集合)。 d_itdk, d_kdsr, d_nsr, d_other, d_rrrrr, d_srssr, d_suru, go, j_de, j_ga, j_hkm, j_ni, j_no, j_other, j_te, j_trdr, j_woto, jd_aru, jd_kako, jd_na, jd_nai, jd_spe_da, jd_zu, keiyoshi, m_gokan, m_other, m_proper, m_sahen, m_teki
  47. 47. 特徴ラベル関数の例 trait_label(    ) = :m_proper 固有名詞 coins これが 特徴ラベル trait_label( 食 べ る ) = :d_other ※型注釈で言うと  trait_label :: Word → Label 動詞(その他) trait_label( す る  ) = :d_suru 動詞(スル) 全29種類(有限集合)。 d_itdk, d_kdsr, d_nsr, d_other, d_rrrrr, d_srssr, d_suru, go, j_de, j_ga, j_hkm, j_ni, j_no, j_other, j_te, j_trdr, j_woto, jd_aru, jd_kako, jd_na, jd_nai, jd_spe_da, jd_zu, keiyoshi, m_gokan, m_other, m_proper, m_sahen, m_teki
  48. 48. 言い換えルール型 Rule
  49. 49. 言い換えルール型 単語部分列を受け取って、 言い換えた単語部分列とオフセット(後述) を返すような関数の型
  50. 50. 言い換えルール型 単語部分列を受け取って、 言い換えた単語部分列とオフセット(後述) を返すような関数の型 これの型に属する関数がルールになる
  51. 51. 言い換えルール型 単語部分列を受け取って、 言い換えた単語部分列とオフセット(後述) を返すような関数の型 これの型に属する関数がルールになる ※型注釈で言うと  type Rule = [Word] → [Word] × Int
  52. 52. 言い換えルール型に属する関数の例 sahen_rule([読書,する]) = ([本,を,読む], 2) m_suffix_rule(悪性,の]) = ([悪い], 2) m_suffix_rule([悪性,と]) = ([悪い], 1) ※型注釈で言うと  type Rule = [Word] → [Word] × Int
  53. 53. 前方一致ルール検索 prefix_match
  54. 54. 前方一致ルール検索 ラベル列を受け取って、 先頭からマッチする一番長いルールと そのルールがとる部分列の長さ を返す関数
  55. 55. 前方一致ルール検索 ラベル列を受け取って、 先頭からマッチする一番長いルールと そのルールがとる部分列の長さ を返す関数 ※型注釈で言うと  prefix_match :: [Label] → Rule × Int
  56. 56. 前方一致ルール検索の例 以下のルールが定義されているとする [:j_ni] [:m_other] [:m_other, :j_no] [:j_wo, :m_sahen] [:m_sahen, :d_suru] [:m_sahen, :d_suru, :j_te] [:m_sahen, :d_suru, :jd_ta] nothing noun noun_suffix sahen_prefix sahen_suru sahen_suru_te sahen_suru_speda
  57. 57. 前方一致ルール検索の例 prefix_match([:m_other, :j_no, :m_other]) [:j_ni] [:m_other] [:m_other, :j_no] [:j_wo, :m_sahen] [:m_sahen, :d_suru] [:m_sahen, :d_suru, :j_te] [:m_sahen, :d_suru, :jd_ta] nothing noun noun_suffix sahen_prefix sahen_suru sahen_suru_te sahen_suru_speda
  58. 58. 前方一致ルール検索の例 prefix_match([:m_other, :j_no, :m_other]) [:j_ni] [:m_other] [:m_other, :j_no] [:j_wo, :m_sahen] [:m_sahen, :d_suru] [:m_sahen, :d_suru, :j_te] [:m_sahen, :d_suru, :jd_ta] nothing noun noun_suffix sahen_prefix sahen_suru sahen_suru_te sahen_suru_speda 2件 hit
  59. 59. 前方一致ルール検索の例 prefix_match([:m_other, :j_no, :m_other]) [:j_ni] [:m_other] [:m_other, :j_no] [:j_wo, :m_sahen] [:m_sahen, :d_suru] [:m_sahen, :d_suru, :j_te] [:m_sahen, :d_suru, :jd_ta] nothing noun noun_suffix sahen_prefix sahen_suru sahen_suru_te sahen_suru_speda 1件 hit
  60. 60. 前方一致ルール検索の例 prefix_match([:m_other, :j_no, :m_other]) [:j_ni] [:m_other] [:m_other, :j_no] [:j_wo, :m_sahen] [:m_sahen, :d_suru] [:m_sahen, :d_suru, :j_te] [:m_sahen, :d_suru, :jd_ta] nothing noun noun_suffix sahen_prefix sahen_suru sahen_suru_te sahen_suru_speda 1件 hit 2単語
  61. 61. 前方一致ルール検索の例 prefix_match([:m_other, :j_no, :m_other]) = (noun_suffix, 2) [:j_ni] [:m_other] [:m_other, :j_no] [:j_wo, :m_sahen] [:m_sahen, :d_suru] [:m_sahen, :d_suru, :j_te] [:m_sahen, :d_suru, :jd_ta] nothing noun noun_suffix sahen_prefix sahen_suru sahen_suru_te sahen_suru_speda 2単語
  62. 62. 特徴ラベル関数 trait_label 言い換えルール型 Rule 前方一致検索関数 prefix_match
  63. 63. trait_label :: Word → Label type Rule = [Word] → Int × [Word] prefix_match :: [Label] → Rule × Int simplify :: [Word] → [Word] simplify seq = simplify' seq [] simplify' :: [Word] → [Word] → [Word] simplify' [] applied = applied simplify' seq applied = ここの説明が終わった let trait_seq = map (e -> trait_label e) seq let (rule, len) = prefix_match trait_seq in let (chunk, offset) = rule (take seq len) in simplify' (drop (len - offset)) (applied ++ chunk)
  64. 64. trait_label :: Word → Label type Rule = [Word] → Int × [Word] prefix_match :: [Label] → Rule × Int simplify :: [Word] → [Word] simplify seq = simplify' seq [] simplify' :: [Word] → [Word] → [Word] simplify' [] applied = applied simplify' seq applied = これからここを 日本語で説明 let trait_seq = map (e -> trait_label e) seq let (rule, len) = prefix_match trait_seq in let (chunk, offset) = rule (take seq len) in simplify' (drop (len - offset)) (applied ++ chunk)
  65. 65. 言い換えのアルゴリズム
  66. 66. 言い換えのアルゴリズム 1 入力単語列からprefix_matchでルール適用範囲を得る
  67. 67. 言い換えのアルゴリズム 1 入力単語列からprefix_matchでルール適用範囲を得る 2 得たルールでその範囲を言い換えて出力単語列に追加
  68. 68. 言い換えのアルゴリズム 1 入力単語列からprefix_matchでルール適用範囲を得る 2 得たルールでその範囲を言い換えて出力単語列に追加 3 入力単語列をオフセットぶん切り落とす
  69. 69. 言い換えのアルゴリズム 1 入力単語列からprefix_matchでルール適用範囲を得る 2 得たルールでその範囲を言い換えて出力単語列に追加 ここで使う 3 入力単語列をオフセットぶん切り落とす
  70. 70. 言い換えのアルゴリズム 1 入力単語列からprefix_matchでルール適用範囲を得る 2 得たルールでその範囲を言い換えて出力単語列に追加 3 入力単語列をオフセットぶん切り落とす これを入力単語列がなくなるまで繰り返す
  71. 71. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た この文章を言い換えてみる
  72. 72. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た 単語に分割
  73. 73. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 特徴ラベルを求める
  74. 74. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako noun (noun_suffix) (noun_teki) (noun_teki_na)
  75. 75. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako noun_suffix
  76. 76. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い noun_suffix([悪性,の]) = ([悪い], 2)
  77. 77. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 2 悪い noun_suffix([悪性,の]) = ([悪い], 2)
  78. 78. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い noun (noun_suffix) (noun_teki) (noun_teki_na)
  79. 79. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い noun_suffix
  80. 80. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 辞書にHitせず noun_suffix([腫瘍,の]) = ([腫瘍], 1)
  81. 81. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 1 noun_suffix([腫瘍,の]) = ([腫瘍], 1)
  82. 82. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 nothing (noun_prefix) (verb_prefix)
  83. 83. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 noun_prefix
  84. 84. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 を 取り除くこと noun_prefix([の,除去]) = ([を,取り除くこと], 2)
  85. 85. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 2 悪い 腫瘍 を 取り除くこと noun_prefix([の,除去]) = ([を,取り除くこと], 2)
  86. 86. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako nothing (sahen_prefix) (verb_prefix) 悪い 腫瘍 を 取り除くこと
  87. 87. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako sahen_prefix 悪い 腫瘍 を 取り除くこと
  88. 88. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 を 取り除くこと に sahen_prefix([に, 成功]) = ([に], 1) 「成功」は「に」を置換しない
  89. 89. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 1 悪い 腫瘍 を 取り除くこと に sahen_prefix([に, 成功]) = ([に], 1)
  90. 90. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 を 取り除くこと に sahen (sahen_suru) (sahen_suffix) (sahen_suru_kako)
  91. 91. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 を 取り除くこと に sahen_suru (sahen_suffix) (sahen_suru_kako)
  92. 92. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 を 取り除くこと に sahen_suru_kako
  93. 93. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 悪い 腫瘍 を 取り除くこと に うまくいっ た sahen_suru_kako([成功,し,た]) = ([うまくいっ,た], 3)
  94. 94. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 3 悪い 腫瘍 を 取り除くこと に うまくいっ た sahen_suru_kako([成功,し,た]) = ([うまくいっ,た], 3)
  95. 95. 言い換えのアルゴリズム 悪性 の 腫瘍 の 除去 に 成功 し た m_other j_no m_other j_no m_sahen j_ni m_sahen d_suru jd_kako 完成ヽ(=́▽`=)ノ 悪い 腫瘍 を 取り除くこと に うまくいっ た
  96. 96. デモ

×