Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
自然言語処理基礎の基礎 natsuume 社内勉強会(2019/9/4)
Slide 2
Slide 2 text
今回の目的 自然言語処理何もわからない 用語/雰囲気はなんとなく分かる
Slide 3
Slide 3 text
今回対象とする話 4つの解析ステップ ● 形態素解析 ● 構文解析/係り受け解析 ● 意味解析 ● 文脈解析
Slide 4
Slide 4 text
形態素解析 ● 形態素解析とは? 文を形態素単位に分割する処理
Slide 5
Slide 5 text
そもそも形態素ってなんぞや? 形態素 = 意味を持つ最小の言語単位 形態素 ≠ 単語 but... 形態素 ≒ 単語
Slide 6
Slide 6 text
形態素と単語 「鳥が鳴いた」 単語単位:鳥/が/鳴いた 形態素単位:鳥/が/鳴い/た ※基本的に単語を「語幹」+「接辞」などさらに細かい単位に分割したものが形態素と考えて良い ただし、日本語における「助詞」「助動詞」等を単語に含めるかは派閥があるっぽいので諸説あり
Slide 7
Slide 7 text
形態素解析の処理 ● 形態素分割 ● 形態素への品詞付与 ● 形態素の原形の復元 日本語の形態素解析ではまとめて行われるので あまり意識しない
Slide 8
Slide 8 text
形態素解析の手法 ※ツールによって採用している手法が違う(はず) ● コスト最小法 生起/連接コストで重み付けされた 有向グラフの最短経路問題 ビタビアルゴリズム
Slide 9
Slide 9 text
コスト最小法の例 出典: http://chasen.naist.jp/chaki/t/2009-09-30/doc/mecab-cabocha-nlp-seminar-2009.pdf
Slide 10
Slide 10 text
コスト最小法の例 出典: http://chasen.naist.jp/chaki/t/2009-09-30/doc/mecab-cabocha-nlp-seminar-2009.pdf
Slide 11
Slide 11 text
公開されている形態素解析器があるよ! 重要な点 ● 速度 ● 精度 ● 後の処理(係り受け解析等)で何を使うか だいたい「MeCab」「JUMAN」だけ覚えておけばOK 解析器によって結構出力違うので注意
Slide 12
Slide 12 text
主な形態素解析器(MeCab) 処理が他と比べて超速い ChaSenのC++再実装(ChaSenはすでに死んだ) Java版クローンのkuromojiやpythonラッパーの pymecabなどがあり手軽に使える
Slide 13
Slide 13 text
主な形態素解析器(JUMAN/JUMAN++) (MeCabと比べると)速度は遅い 精度はMeCabよりも良い(入力によるので諸説) pythonラッパーのpyknpがある 先の処理でKNPが使える(重要)
Slide 14
Slide 14 text
主な形態素解析器(Sudachi) 分割単位がA/B/Cの3種類から選択可能 「A:選挙/管理/委員/会」「B:選挙/管理/委員会」「C:選挙管理委員会」 Java実装だがSudachiPy, SudachiGoなども プラグインで拡張できる UniDic/NEologdベースで辞書が継続的に更新
Slide 15
Slide 15 text
構文解析 ● 構文解析とは? 形態素解析結果を入力として 構文構造を解析する処理 文節・句単位の構文構造を出力
Slide 16
Slide 16 text
構文解析のアルゴリズム ● CKY法 チョムスキー標準形の文脈自由文法に 限定されたボトムアップ・横型の 構文解析アルゴリズム O(n3)
Slide 17
Slide 17 text
係り受け解析 日本語の構文解析はだいたいこっち 例:美しい水車小屋の娘 美しい 水車小屋の 娘 美しい 水車小屋の 娘
Slide 18
Slide 18 text
係り受け解析の制約 1. 各文節はその後方に必ず1つの係り先を持つ 2. 係り受け関係は交差しない 美しい 水車小屋の 娘 美しい 水車小屋の 娘だ 私は ※話し言葉等では上記2.の制約が厳密に守られているわけではない
Slide 19
Slide 19 text
チャンキングの段階適用による解析 1. 各文節にタグO(係り受け未定)を付与 2. Oの文節が直後の文節に係るか推定 3. 直後の文節に係るならタグをDに置換 4. 文頭/O直後のDが付与された文節を削除 最悪O(n2)だが実際は線形に近い
Slide 20
Slide 20 text
具体例 1. [彼は:O][彼女の:O][温かい:O][真心に:O][感動した。:O] 2. [彼は:O][彼女の:O][温かい:D][真心に:D][感動した。:O] 3. [彼は:O][彼女の:D][真心に:D][感動した。:O] 4. [彼は:O][真心に:D][感動した。:O] 5. [彼は:D][感動した。:O] 6. [感動した。:O] (終了) 彼は 彼女の 温かい 真心に 感動した。
Slide 21
Slide 21 text
公開されている係り受け解析器があるよ! それぞれ出力が結構違うので用途で使い分け だいたい「CaboCha」「KNP」だけ覚えておけばOK ● MeCab -> CaboCha(速い) ● JUMAN/JUMAN++ -> KNP(格解析・照応解析等も含む) ● SudachiPy(Sudachi) -> GiNZA ※ ※自分は使ったことがないので詳細は不明
Slide 22
Slide 22 text
意味解析 ● 意味解析とは? 文の意味に関する処理全般 ※この辺から諸説ある話増えます
Slide 23
Slide 23 text
そもそも意味ってなんだ……?
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
意味解析と文脈解析の区分 諸説ある(というかだいたいお気持ち) ● 意味解析:文内の意味に関する処理の総称 ● 文脈解析:複数文にまたがった処理の総称 正直覚える必要ない
Slide 26
Slide 26 text
主なタスク(こっちのほうが重要) ● 語義曖昧性解消 ● 格解析 ● 述語項構造解析 ● 共参照解析, 照応解析
Slide 27
Slide 27 text
語義曖昧性解消 ある単語の語義(意味)を決定する処理 共起確率・分散表現等を用いることが多い ● 例: bank(銀行/土手), plant(植物/工場) ● 例: おばあさん(高齢の女性/祖母)
Slide 28
Slide 28 text
格解析 単語間の意味的な関係性に関する処理 ● 格フレーム 用言と、それに関係する名詞を用言の各用法 ごとに整理したもの
Slide 29
Slide 29 text
表層格と深層格 ● 表層格:構文木から表層的に決まる ガ格, ヲ格, ニ格, カラ格, ト格, ヨリ格など ● 深層格:格文法に基づく意味的な関係性 動作主格, 経験者格, 道具格, 対象格, 目標格 など
Slide 30
Slide 30 text
述語項構造解析 is 何? 述語と項の関係を解析する処理 格解析と雰囲気は似ているが少し違う(はず) が自分はあまり詳しくないので省略
Slide 31
Slide 31 text
フレーム意味論 だいたい格文法の発展型 ● フレーム: 語の理解のために必要な背景知識 フレーム意味論ベースのコーパス としてFrameNetがある
Slide 32
Slide 32 text
共参照解析/照応解析って何? 指示語や代名詞とその対象の関係性を解析する (厳密には正しくないが雰囲気はこんな感じ)
Slide 33
Slide 33 text
共参照とは? ● 共参照:同一の実体を指す表現の関係 明けの明星 宵の明星 金星 共参照関係
Slide 34
Slide 34 text
照応関係とは? ある表現から別の表現に対する参照関係 本を取り出し、それを読む 先行詞 照応詞 黒ずくめの男がいた。その黒服は座っていた 先行詞 照応詞
Slide 35
Slide 35 text
共参照と照応の違い 似ているが異なる概念 ● 共参照関係: 表層表現 -> 実体 表層表現間の参照の方向は考慮しない ● 照応関係: 照応詞(表現) -> 先行詞(表現) 実体が同一かは考慮しない
Slide 36
Slide 36 text
「照応関係 => 共参照関係」なのか? 以下は照応関係にあるが共参照関係ではない ドーナツをおいしそうに食べるのを見て、 私もそれを購入した
Slide 37
Slide 37 text
照応関係の種類 色々あるが以下は一例 ● 外界照応: 参照対象が言語外に存在する場合 ここに移り住んで一年になる。 ● ゼロ照応: 照応詞が省略された場合 男はパンを食べた。(φ ガ )牛乳も飲んだ。
Slide 38
Slide 38 text
さいごに(ぽえむ) あらゆるタスクがディープラーニングで 解決できるわけではない 問題に適した手法を選択する には基礎知識も重要