2019/07/11 Context-Sensitive Malicious Spelling Error Correction Abstract
公序良俗違反を検出するやつがある。
しかし、意図的に誤字を使ってすり抜けることができる。 fu*k とか。
スペルチェックを入れることで、公序良俗違反の検出精度かなり良くなった。
Introduction
スペルミスはたいていは差し障りがなく、最悪でもそれを書いた人の能力に対する疑いが発生するだけ。
しかし意図的にスペルミスを悪用されると危険
ヘイトスピーチみたいなやつの検出システムを欺いたり
メールのスパムフィルターを欺いたり
Perspective (Google 2017) という、有害な文章を検出するやつがある(すごい!)
でもミススペルを混入されるとパフォーマンスが悪くなるらしい
My thoughts are that people should being stop stupid -> toxicity score = 86%
My thoughts are that people should being stop stup*d -> toxicity score = 8%
stupid という単語の影響が大きいが、それがぼやかされてしまうから
フィッシングメールやスパムメールにも意図的なスペルミスが多く、検出システムをすり抜ける
こんなのとか: Please pya any fees you may owe to our company
この論文では、専用のコンテキストセンシティブなスペル補正器を導入し、それによって有害な文章を検出できるかを示した
Methods
スペル補正ターゲットは3つ
Perspective APIを使った toxicity検出
スパムメール検出
Twitterデータを使ったヘイトスピーチ検出
上2つは機械的に合成されたスペルミスを混入させた
下のはリアルワールドなやつ
データセットはそれぞれ
Perspectiveデータセット (Google, 2017) を使い、Perspective API で toxity score を出した。2767サンプル。
Ling-Spam データセット。960サンプル。
Twitterから持ってきた、16Kサンプル。
racist: 1937
sexist: 3117
飛ばす
Spelling Correction
二段階でやる。
その1 正しいワード候補の列挙
その2 コンテキスト補正(教師なしでイケる)
その1
ミスっている単語と、特定の単語リストからレーベンシュタイン距離が小さいやつを集める
toxicity detection とスパムdetectionでは100倍?回? (?)よく出てくる単語を wikipediaコーパスから
ヘイトスピーチ detection では wikipedia のスラングリストから
(ミススペル単語をどうやって選ぶのかは知らんけど)
その2
候補が全部でたら、その文章のコンテキストに合わせて一番フィットするやつを選ぶ
word2vec使う
https://gyazo.com/4b042617ddc80050c55cf0e202ae7174
w0はスペルミスってる単語
その前後p個ずつ集めたものをコンテキストTpと呼ぶことにする
Cは正しい単語候補の集まりとする
https://gyazo.com/9d97a947e0a811f87c4a69e459077b14
viはwiのword embedding
候補の単語とコンテキストの距離をこうやって定義する(aiってなんだ?)
コンテキストとの距離が一番小さくなる単語を選ぶ
実験と結果
いろいろなスペルチェッカーと比べてみた
Original: スペルミスじゃないやつ
Pyenchant: よく使われるライブラリ
Ekphrasis: SNSの文章をつかってやるやつ
Revised: そのまま
Google: グーグルのスペルチェッカー。context-aware っぽい
結果が悪いのはたぶん変な fuckとかに修正しないから
https://gyazo.com/53d8ced5e79078329831f4a598f9e662
https://gyazo.com/f75c48d5bc18594b8b89b4de65f1805d
https://gyazo.com/5b2a373787ce797d60d046b69ad95c8d
結論
有害なワードのスペル補正器を作った
事前に適用すると有害文章の検出をするときにかなりパフォーマンスがよくなる
他のスペルチェッカーと比較してみたけど、我々のやつが最高だった
感想
利用用途に合わせて候補単語絞るから良いのかな
Perspectiveすごい
有害なコメント弾くやつとかに使えれば運用コスト減らせそう
日本語無いからアレだけど