14
アカデミアでの Chainer 利用の実例 深層ニューラルネットワーク を用いた日本語単語分割 Chainer Meetup #1 LT枠

Chainer meetup lt

  • Upload
    ace12358

  • View
    76.340

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chainer meetup lt

アカデミアでの Chainer 利用の実例 深層ニューラルネットワーク を用いた日本語単語分割

Chainer Meetup #1 LT枠

Page 2: Chainer meetup lt

自己紹介• 北川善彬(きたがわよしあき)

• Twitter: @Ace12358

• 首都大学東京 M1 小町研究室(自然言語処理)

• 研究テーマ:Web文書を対象とした日本語形態素解析

• 興味がある分野:形態素解析、対話、ソーシャルメディア活用

• 趣味:ギター、ビリヤード、カラオケ、人狼

Page 3: Chainer meetup lt

研究のテーマ• テーマ:Web文書を対象とした形態素解析

• 課題:

• Web文書データの整備

• 学習アルゴリズムの改良(CRF, 深層学習)

• 口語表現の処理(崩れ表記,新語等の処理)

Page 4: Chainer meetup lt

究極的には次のような 崩れた文の解析がしたい

• 極端な例;

• 小文字表記

• カタカナ表記

• 顔文字

• 象形文字?4

Page 5: Chainer meetup lt

先ほどの tweet を形態素解析 してみようとすると(mecab IPAdic)

5

ま/ぇ/の/彼氏/の/とき/ィロィロ/ あっ/て/恋/に/おく/

びょぅになってた/ヮタシ/に/また/恋/を/

ぉしえてくれたの/。/。/。/…/>_<…/いっ/も/

支え/て/くれ/て/ぁりがとぅ/。/。/ は/ぢ/ゅかしぃ/ケド/ダィスキダョ/。/。//////

Page 6: Chainer meetup lt

形態素解析における未知語によるエラー分析(50件)

• 品詞主体の分類、文字種による細分類で分析  • 名詞による誤りがほとんど、特にNEが多い  • ひらがな、文字種の混合による誤りが多い

0

10

20

30

40

名詞 独立詞 接尾辞 連用詞 判定詞 複合

ひらがなカタカナ漢字アルファベット混合

6

Page 7: Chainer meetup lt

未知語の品詞による分類の例

• 独立詞や、連用詞に含まれるオノマトペのような表現はたくさん生成できる  

• 文字間にスペース、記号を挿入する例などは解析が難しい(例:規 制、ファ●ミリーマート)

分類 例 ()内は補足説明

名詞  まゆゆ(NE)、C・ロナウド(NE)、あいぽん(NE)

独立詞 ふぇ、ぐはは、おはあり

接尾辞 やん(方言)、なやん(方言)

連用詞 ぴよぴよ、あへあへ

判定詞 もす(「ます」の方言)、じゃん

複合 すばらC

7

Page 8: Chainer meetup lt

研究のテーマ• テーマ:Web文書を対象とした形態素解析

• 課題:

• Web文書データの整備

• 学習アルゴリズムの改良(CRF, 深層学習)

• 口語表現の処理(崩れ表記,新語等の処理)

Page 9: Chainer meetup lt

中国語においては深層学習を用いた単語分割が盛ん

• LSTM を用いた CWS [Chen+ EMNLP2015] (state-of-the-art)

• Gated Recursive NN も用いた CWS [Chen+ EMNLP2015]

• 文字 Embedding を用いた CWS [Ma and Hinrichs ACL2015]

Page 10: Chainer meetup lt

単語分割は系列ラベリング問題として解かれる

• 入力:単語分割してみるよ

• 出力:B I B I B B B I B (単語 |分割|し|て|みる|よ)

• 出力次元をラベルの数にしてニューラルネットワークを構築できる

Page 11: Chainer meetup lt

Neural Model for Word Segmentation

• 文字 embedding のconcat

• 隠れ層

• 出力層(ラベル次元)

• 出力y と 遷移パラメータを用いてスコアを作成

• 正解の系列スコアと出力の系列スコアの差が小さくなるように学習

Page 12: Chainer meetup lt

chainer で実装時の話

• ラベルを出すところまでは chainer で簡単にできる

• 系列をビタビで処理する処理が難しかった

Page 13: Chainer meetup lt

Chainer でビタビ部分のグラフ構造を保持させるには?

• ラベル (BIのとき)

• ラベル系列をリストYとして append していく(1文)

• Y = [[0.7, 0.3], [0.6, 0.4],…, [0.4, 0.6]]

• 必要なスコアはビタビで計算したパスに含まれる方そこで

• Y’ = [[1, 0], [0, 1], …, [0, 1]] を作成

• Y・Y’ を chainer のmatmul にし chainer の function matmul で 計算すると生成確率部分のスコアが計算できる

Page 14: Chainer meetup lt

まとめ• 日本語単語分割を chainer で実装しました

• 日本語単語分割の未知語エラーの紹介

• ビタビなどの系列を処理するときに、詰まった点を紹介

• 論文が書ければ言語処理学会 NLP 2016 で発表予定