形態素周辺確率を用いた 分かち書きの一般化とその応用 NTT コミュニケーション科学基礎研究所 工藤 拓
前置き ハードクラスタリング ソフトクラスタリング 従来の分かち書き手法 提案手法 → ハード分かち書き → ソフト分かち書き?? ハードクラスタリング ソフトクラスタリング 従来の分かち書き手法 提案手法 → ハード分かち書き → ソフト分かち書き?? (分割方法を一意に定義) (分割方法を確率的な分布として定義) 果物 野菜 … 果物 野菜 … 0.9 0.1 0.7 0.3 0.5
背景 形態素解析 = 言語処理の基礎ツール テキストを単語の頻度付き集合 (bag-of-words) に変換する目的で使われることが多い 全文検索のインデックス作成 テキスト間類似度 テキスト分類 テキストマイニング bag-of-words の新しい作り方を提案
動機付け 単語の単位の曖昧性、ズレ 本質的に曖昧 複合名詞の認定単位の曖昧性 本 / 部長 vs. 本部 / 長 横浜 / 市役所 vs. 横浜市 / 役所 vs. 横浜 / 市 / 役所 関西国際空港会社 / 連絡橋 vs. 関西国際空港 / 会社 / 連絡橋 .. 辞書の不整合から生じる曖昧性 (ipadic) 成田空港 (一語) 宮崎 / 空港 (二語)
動機付け cont’d 「ズレ」がもたらす問題 最適な単位とは? 全文検索 テキスト間類似度 応用に強く依存 「成田」で検索しても「成田空港」は見つからない テキスト間類似度 「京都大学」と「京大」のコサイン類似度は 0.0 最適な単位とは? 応用に強く依存 工学的に万能な単位を定義することは不可能
文字単位の処理 1文字=1単語 利点 欠点 「パン」で検索して「ルパン」が見つかる 形態素解析はあえて使わない 単位定義の泥沼を避ける 検索漏れの低減 (再現率の向上) 欠点 検索ノイズ 「京都」で検索して「東京都」が見つかる 「パン」で検索して「ルパン」が見つかる
提案手法 = 形態素解析 + 文字単位解析 形態素解析: 高精度, 検索漏れ 文字単位: 高再現率, 検索ノイズ 形態素解析: 高精度, 検索漏れ 文字単位: 高再現率, 検索ノイズ 2つの立場を 融合, 単一化 できないか? 応用によって2つの立場を無段階に選択する 形態素解析 高精度 検索漏れ 文字単位 高再現率 検索ノイズ 提案手法 パラメータθによって無段階に変更
動作例 形態素解析 高精度 検索漏れ 文字単位 高再現率 検索ノイズ 入力 「京都大学」
提案手法の詳細
基本的なアイデア 従来法 提案法 /京都大学/ 一意の分割方法 F = (0, 0, 1, 0, 0… ) 従来法の 形態素解析器 京都大学 bag-of-words 従来法 従来法の 形態素解析器 京都大学 入力テキスト 京都大学 入力テキスト /京都大学/ 0.8 確率付きの全分割方法 /京都/大学/ 0.1 /京都/大/学/ 0.04 /京/都/大学/ 0.03 … F = (0, 0, 1, 0, 0… ) F = (0, 1, 0, 1, 0… ) F = (0, 1, 0, 0, 1… ) F = (1, 0, 0, 1, 0… ) F = (0.03, 0.14, 0.8, 0.1, 0.04… ) bag-of-words 期待値 提案法 提案法の 形態素解析器
基本的なアイデア cont’d 複数の候補を考慮, ロバスト 議論のポイント 確率をどのように定義するか? 期待値をどのように計算するか? (分割候補数は入力に対して指数的に増える) 確率付きの全分割方法 bag-of-words 入力テキスト 提案法の 形態素解析器 /京都大学/ 0.8 F = (0, 0, 1, 0, 0… ) 京都大学 /京都/大学/ 0.1 F = (0, 1, 0, 1, 0… ) 期待値 /京都/大/学/ 0.04 F = (0, 1, 0, 0, 1… ) F = (0.03, 0.14, 0.8, 0.1, 0.04… )
最小コスト法 生起コスト: 出現しやすさのコスト 連接コスト: つながりやすさのコスト BOS EOS 30 5 10 生起コスト: 出現しやすさのコスト 京都 [名詞] 10 20 5 連接コスト: つながりやすさのコスト に [助詞] 東 [名詞] 京 [名詞] 都 [接尾辞] 住む [動詞] BOS EOS に [動詞] 東京 [名詞] コストの和が最小になるような系列を選択する Viterbi Algorithm: O(n) で計算可能 (n:文長) コストの定義: 人手, HMM, CRF (本手法はコスト定義に依存しない)
確率の定義 BOS EOS 京都 に 東 京 都 住む に 東京 上記例だと x=「東京都に住む」 |Y(x)| = 6 [名詞] [助詞] [接尾辞] 住む [動詞] BOS EOS に [動詞] 東京 [名詞] 上記例だと x=「東京都に住む」 |Y(x)| = 6 逆温度パラメータ 分布の鋭さ
入力 x 中の単語 w の出現頻度 (bow ベクトルの値) 期待値計算 動的計画法 (Forward-Backward) の変種, O(n) 期待値をとったときの 入力 x 中の単語 w の出現頻度 (bow ベクトルの値) m α’ α BOS EOS β
提案手法の性質 全候補の列挙 頻度の一般化 可能な全ての分割方法を考慮 検索漏れが発生しにくい 確率付きの全分割方法 bag-of-words 入力テキスト 提案法の 形態素解析器 /京都大学/ 0.8 F = (0, 0, 1, 0, 0… ) 京都大学 /京都/大学/ 0.1 F = (0, 1, 0, 1, 0… ) 期待値 /京都/大/学/ 0.04 F = (0, 1, 0, 0, 1… ) F = (0.03, 0.14, 0.8, 0.1, 0.04… ) 全候補の列挙 可能な全ての分割方法を考慮 検索漏れが発生しにくい 頻度の一般化 期待値をとった bow ベクトルの要素は単語の 確率的な出現頻度 単語頻度を用いる手法(tf/idf等)にそのまま適用可能
提案手法の性質 cont’d コストを考慮した頻度付与 による制御 bowベクトルはコスト(単語生起/連接コスト)を反映 逆温度パラメータ 分布の鋭さ コストを考慮した頻度付与 bowベクトルはコスト(単語生起/連接コスト)を反映 「東京都」の中の「京都」の頻度は自然に低く設定 による制御 :形態素解析の結果に漸近 :文字単位に近づく (文字単位は候補数が多い) 2つを無段階に接続
動作例 形態素 文字
実験 要約文 – 要約元文対応 テキスト分類
要約文 – 要約元文対応 人手で作成された要約文と要約元文候補集合の対応付け (テキスト全部検索と同一設定) 人手で作成された要約文と要約元文候補集合の対応付け (テキスト全部検索と同一設定) TCS2 の複数要約文データセット どの要約元文から要約文が作成されたかの情報が付与 要約文をクエリとし, 要約元文集合のそれぞれとの文を bag-of-words + cosine類似度でソート 評価 1位の候補が要約元文となる割合 正解率 要約元文が何位にランク付けられるか 平均順位 465要約文, 1要約文あたり平均 96要約候補文
実験結果 形態素 θ=0.04が良い 文字 θにピーク 双方の「いいとこどり」の効果
まとめと今後の課題 形態素解析と文字単位分割を単一化 今後の課題 ソフトな分かち書き 応用によって二つの立場を無段階に選択 bag-of-words を用いるあらゆる応用に適用可能 異質テキストの対応付けに有効 (おそらく) 今後の課題 の自動設定 単語分割を含めたテキスト生成モデル bow 作成 = 任意の部分文字列への重み付け 複合名詞辞書 [浅原 他01] の作成支援
テキスト分類 形態素 文字 分類器: ナイーブベイズ
周辺化 Kernel 周辺化された bow ベクトルの内積 = 周辺化 Kernel [津田 00] の特殊系 入力 入力文 分割方法 bag-of-words ボルツマン分布 bow kernel 隠れクラス 隠れクラス-入力のペア 帰属確率 任意の Kernel 言語処理全般に使える kernel スムージングの効果