長岡技術科学大学 自然言語処理研究室 学部3年 守谷歩
自然言語処理とアルゴリズム2019/1/11長岡技術科学大学 自然言語処理研究室学部3年 守谷 歩「自然言語処理の概要/アルゴリズムの基礎」
View Slide
参考図書黒橋貞夫 (2015)『自然言語処理』放送大学教育振興会George T. Heineman & Gary Pollice & StanleySelkow (2016)『アルゴリズムクイックリファレンス第2版』 黒川利明、黒川洋訳 オライリー・ジャパン
内容説明 第1回自然言語処理の概要説明(2分)自然言語処理とは文章の段階的な処理の例コーパスに基づく言語処理(7分)コーパスとは言語モデル分類問題アルゴリズムの考え方(6分)問題理解非効率な素朴解様々な手法自然言語処理について(9分) アルゴリズムついて(6分)
自然言語処理の概要自然言語とは我々が日常的に使う言語。コンピュータに指令を与える機械語とは異なる自然言語処理とは自然言語をコンピュータで処理するための学問である。コンピュータで処理するためには自然言語を解析する必要性がある。
文章の基礎解析の処理例系列解析➢形態素解析、固有名解析マリオ<人名>は<助詞>フランス<地名>語<名詞>も<助詞>話せる<動詞>。 <句点>構文解析➢構文解析マリオは フランス語も 話せる。意味解析➢格解析マリオは<ガ格>フランス語も<ヲ格>話せる。文脈解析➢照応・省略解析マリオは フランス語も 話せる。フランスに(Φガ)留学していたからだ。➢談話構造解析マリオはフランス語も話せる。<理由>フランスに留学していたからだ。
コーパスとはコーパスとは「栄養学」に関する論文集、「太宰治」の書いた本など、ある主題に関する文書のデータ集生コーパス、注釈付与コーパス➢生コーパス例として(「太宰治」の書いた本そのまま)のように、後付けで情報が付与されていないコーパス中でも翻訳関係にある2言語の文書の対を収集したものを対訳コーパスやパラレルコーパスと呼ぶ。翻訳関係にないが同じトピックを扱っているコーパスをコンパラブルコーパスと呼ぶ➢注釈付与コーパス(タグ付きコーパス)生コーパスに形態素や語の意味などを加えたものなど、言語処理を行うにあたって情報が付け足されているコーパス。
言語モデル マルコフモデル言語モデルとは文や表現の出現確率を与えてくれるものである。この言語モデルは生コーパスにより抽出できる。マルコフモデルとは例として今日の体調が風邪であるとき明日が元気である確率次のようになる。 +1= 元気 = 風邪この時、自分の体調は過去m日に依存する性質(マルコフ性)があるとする。このようなモデルをm階マルコフモデルといい、先ほどの式は今日という1日分の過去データがあるため1階マルコフモデルで考えられたものである。例えば1年間分の体調のデータがあるとすると最尤推定によって次の式となる。(元気|風邪)= 風邪, 元気 風邪この時C(風邪),C(風邪,元気)が1年間の体調の回数だとする。すると風邪の日が20日、風邪の次の日に元気である日数が10日であるとするとP(元気|風邪)=10/20=0.5より50%の確率で明日は元気になることがわかる。
言語モデル N-gram言語モデルN-gram 言語モデルとはマルコフモデルの考え方を単語の並びに対して行ったもの。Bi-gram(1階マルコフモデル)の例(|−1) = −1, −1C(wi-1,wi)などは生コーパスのデータから計算ができる。※日本語や中国語は英語のように単語間にスペースがないため、単語分割を行う。bi-gram言語モデルのK個の単語からできる文の出現確率は 1, … = ෑ=1(|−1)より算出される。例として「ペンは剣よりも強し」といった文の出現確率は次のように計算される。 ペンは剣よりも強し = ペン|文頭 ∗ は|ペン ∗ 剣|は ∗ よりも|剣 ∗ (強し|よりも)
分類問題としての自然言語処理機械学習の分類問題(毒キノコ)右図の「黄:〇:短:地:?」の毒が無の状態について考える。ナイーブベイズ入力の素性ベクトルをx、ラベルをyとしたとき、最大確率のラベルをYとすることを考える。 = arg max(|)ここに数式を入力します。また上記式をベイズの定理によって変形してこの時argmaxに関係しないP(x)を削除、各素性xiが独立であると考える。 = arg maxෑ ()よってラベル:無について考えると次のようになる。 黄|無 〇|無 短|無 地|無 無 =13∗23∗13∗13∗58=5324よって毒がない確率はかなり低いことがわかる。色 笠の形 柄の長さ 場所 毒赤 〇 長 地 無赤 〇 短 樹 無青 〇 長 樹 有赤 □ 長 樹 無黄 □ 短 地 有青 □ 長 樹 無黄 □ 短 地 有黄 □ 長 樹 無黄 〇 短 地 ?
アルゴリズムの考え方なぜ自然言語処理をするにあたってアルゴリズムを学ぶかコーパスの処理をするにもアルゴリズムが必要。言語情報はデータ数が多いため、高速な処理が必要。Word2Vecなど数値で言語を扱う際にアルゴリズムを使う
例題ある8個の点Pの集合の周りを輪ゴムで囲んで離したときにどのような形になるか?
非効率な素朴解
貪欲法(greedy algorithm)
分割統治法
その他の解決手法並列法近似法一般化(ボロノイ図)