10/55
最初の誤字検出機能の課題
n 誤検出のときにわかりにくい
結果が「誤字の位置」のみ
n ツールのUIを改善する必要がある
n 後半で詳しく説明
利⽤するユーザーが限られていた
Slide 11
Slide 11 text
11/55
新しい誤字検出機能の開発
Slide 12
Slide 12 text
12/55
以前のバージョンの課題
n 誤検出のときに問題
n 誤字なのか︖ 誤検出なのか︖
「誤字の位置」だけではわかりにくい
ここに誤字があります
「彼⼥の⼿を放した」
あってるけどなぁ︖
Slide 13
Slide 13 text
13/55
訂正候補を出すように変更
n AIがどのように考えたのか理解しやすい
n 誤字と誤検出の判断が簡単に
「訂正候補」があるとわかりやすい
こちらが正しいのでは︖
「彼⼥の⼿を放した」
↓
「彼⼥の⼿を離した]
違うよ︕
(誤検出か〜)
Slide 14
Slide 14 text
14/55
新しい誤字検出のモデル
Slide 15
Slide 15 text
15/55
新しい誤字検出機能の概要
n 元の⽂章と誤字を⼊れた⽂章のセットを学習
n 誤字を⼊れた⽂書を元の⽂章の差をなくすように学習
n 誤字を含む⽂章を⼊⼒すると元の⽂章を出⼒
BERTを使った⽂章校正
誤字のある⽂章
誤字の位置、訂正候補
BERT
Slide 16
Slide 16 text
16/55
⾃然⾔語処理モデルBERT
n 2018年10⽉にGoogleから発表された⾃然⾔語処理モデル
n 翻訳、⽂書分類、質問応答などのタスクで当時の最⾼スコアを達成
n ⾃然⾔語処理でよく使われている
BERT
n 新しいモデルが登場
n 前回使ったので慣れている
n ドキュメントが充実
なぜBERT?
n 今回の実装で参考
n 資料の最後に記載
参考⽂献
Slide 17
Slide 17 text
17/55
BERTの学習
⼊⼒ 今⽇ は MASK です
いい
BERT
分類スコアが最⼤の単語
正解ラベル
今⽇ は ? です
いい
今⽇ は 天気 です
いい
n ⼊⼒トークンをランダムで[MASK]に⼊れ替え
n 正しいトークンをクラス分類問題として学習(クラス数=BERTの語彙数)
n BERTはトークンごとのラベルの分類スコアを出⼒
テキストの⽳埋め問題
28/55
誤字パターンの改良(その1)
n 「よく間違えられる単語リスト」を使って⼊れ替え(*)
n ひらがなに囲まれている「ない」を削除
n 「っ」を落とす
n 「が」「を」などの助詞を⼊れ替える
n 助詞を落とす
n ひらがなのABをBABにする
n ひらがなorカタカナをランダムで1⽂字落とす
n 詳細はCEDEC2021の発表資料を参照
以前の誤字パターン(7つ)
n (*)の部分と⼊れ替え
n 詳細を次で説明
⽇本語Wikipedia⼊⼒誤りデータセットを導⼊
Slide 29
Slide 29 text
29/55
⼊⼒誤りデータセット
誤字パターンの改良(その2)
訂正前の⽂章 訂正後の⽂章
訂正される単語 訂正後の単語
訂正の種類
n 京都⼤学 ⿊橋・褚・村脇研究室
n JSON形式で⼊⼒誤りを訂正した情報
⽇本語Wikipedia⼊⼒誤りデータセットを導⼊
Slide 30
Slide 30 text
30/55
⼊⼒誤りデータセット ゲームシナリオ
誤字パターンの改良(その3)
教 ⇨ 今⽇ 今⽇はいい天気です
学習データ 教はいい天気です
ゲームシナリオに適⽤
n 訂正後の単語をゲームシナリオから検索
n 訂正前の単語で置き換えて誤字を⽣成
n 単純な⽂字列マッチング(2⽂字以上、品詞は無視)
Slide 31
Slide 31 text
31/55
トークンマッチングの⼯夫
Slide 32
Slide 32 text
32/55
トークンマッチングの⼯夫(その1)
n トークン数が⼀致するデータセットしか利⽤できない
n 全体の6割程度しか利⽤できない(もったいない︕)
今回の仕組みはトークン数の⼀致が必要
n 2つの⽂章のトークンがずれている場合の処理
n 元の⽂章にPADを⼊れて対応を取る(⼀番対応が取りやすいところへ)
n 推論時の出⼒にPADがあれば削除
PADを使って調整
誤字のある⽂章 教 は 休み に し よ ー
元の⽂章 今⽇ は 休み に し よ ー
誤字のある⽂章 準備 は で い て いる。
元の⽂章 準備 は でき て いる。
調整後 準備 は [PAD] でき て いる。
Slide 33
Slide 33 text
33/55
トークンマッチングの⼯夫(その2)
PADの数 利⽤できる⽂章の割合
0 64.12%
1 78.57%
2 85.84%
3 86.50%
4 86.64%
n PADの数を増やすと利⽤できる⽂章が増える
n 増やしすぎると推論の精度が落ちる
n PADの最⼤数3が推論の精度が最⼤に
PADの数を増やした場合の⽐較
42/55
バックグラウンドで⾃動実⾏
n ⼀定時間経過後に実⾏(AWSのコストのため)
シナリオ保存時に⾃動実⾏
n 結果⼀覧画⾯でユーザーが実⾏した結果と⾃動実⾏の結果が混じる
n ユーザー「結果が確認しにくい」
n ユーザー⽬線での確認が⾜りていなかったと反省
問題があったので保留
Slide 43
Slide 43 text
43/55
ルールベースの⽂章校正機能
Slide 44
Slide 44 text
44/55
ルールベースの⽂章校正機能
n 漢検1級、準1級の漢字を検出
n よく使われる漢字ならOK
n 漢字のテーブルを持っておいてマッチしているだけ
難しい漢字の検出
胡
坐
n 補助動詞に漢字が使われていたら検出
n 例︓ちょっと寄って来る
補助動詞の漢字を検出
n ⽂章校正のチェック対象
n ら抜き⾔葉が全部NGではない
ら抜き⾔葉を検出
Slide 45
Slide 45 text
45/55
補助動詞の検出
Slide 46
Slide 46 text
46/55
補助動詞の検出
n Juman++ : 形態素解析システム 京都⼤学
Juman++での形態素解析の結果を利⽤
⾒出し 参考 に して 頂く
品詞 名詞 助詞 動詞 動詞
意味情報 - - - 付属動詞候補
n 「参考にして頂く」の「頂く」を検出したい
n Juman++で形態素解析
n 品詞と意味情報をパターンとして登録
検出したい⽂章からパターンを作成
パターンとして登録
49/55
ら抜き⾔葉を検出(その1)
n Webの記事を参考にして実装
n ラ抜き⾔葉判定アルゴリズムを考えてみる
(https://blog.mohyo.net/2015/03/1343/)
ら抜き⾔葉の検出について調べる
n Juman++で形態素解析して代表表記と活⽤形1を利⽤
n あるトークンの代表表記が「れる/れる」
n ⼀つ前のトークンの活⽤形1が「未然形」「カ変動詞来」「⺟⾳動詞」
判定⽅法
51/55
ら抜き⾔葉を検出(その3)
n 検出158 正解148 失敗10
n ⾒逃しているケースもある
n 誤検出は少ない
シナリオ全体でテスト
n こんなにたくさん⾷べ(ら)れない
n 初⽇の出が⾒(ら)れた
n あの⼈が来るとは考え(ら)れない
正しく検出
n 写真撮ってきたから⾒れ︕
n あれ︖あれれれ︖
n 今こそ来たれ︕
誤検出