Ahogrammer

Deep Dive Into NLP, ML and Cloud

ユーザ生成型医療テキストのスペル修正

ACL 2019より以下の論文を紹介。

この論文では、ユーザ生成型の医療テキストに対するスペル修正を行う手法を提案している。ユーザ生成型の医療テキストとは、たとえばTwitterでつぶやかれた健康情報やRedditの病気関連のフォーラムに投稿されたメッセージを指す。このようなテキストは病気のトレンドを追うのに役立つが、口語調かつスペルミスが含まれ処理しにくいという特徴がある。そこで、この論文では教師なしでスペル修正をする手法を提案。実験の結果、該当ドメインのテキストに対して最高性能を記録した。

手法の全体像は、以下のパイプラインで表される。最初にテキストを小文字化し、トークナイズを行っている。次に、英語の正規化としてイギリス英語をアメリカ英語に変換する。それが終わると、一般的な略語の正規化(e.g. EU→European Union)を行う。その後、ドメイン固有の略語の正規化とスペル修正を行い、すべての処理が完了する。

f:id:Hironsan:20190925081253p:plain
前処理のプロセス

スペル修正のプロセスは以下の図で表される。手法としてはスペル修正用の辞書と編集距離を使った手法となっている。最初に、スペル修正用辞書とCELEXと呼ばれる2つの辞書を使ってフィルタリングを行う。その結果得られた修正候補のトークンに対して、辞書中のトークンとの編集距離を計算し、しきい値以上の値であれば、スペル修正を行い、辞書を更新するというプロセスになっている。

f:id:Hironsan:20190925071827p:plain
スペル修正のプロセス

ユーザ生成型の医療テキストに関するスペル修正の性能は以下の通り。比較対象のSakerの手法やTISCと比べて大きく性能が向上していることが確認できる。

f:id:Hironsan:20190925074000p:plain
スペル修正の正解率

一方、一般的なソーシャルメディアのテキストに対するスペル修正の性能は以下の通り。この結果を見ると、Sakerの手法と比べて性能が大きく劣ることがわかる。上の実験結果と合わせて考えると、一般的なソーシャルメディアのテキストに対するスペル修正がうまく行っても、ドメインが絞られたテキストに対しては上手くいかないし、逆もまた然りということがわかる。

f:id:Hironsan:20190925075010p:plain
W-NUT 2015の性能

スペル修正を行った後に、ヘルス関連の分類タスクを解いた場合の性能は以下の通り。6つのデータセット中5つで性能の改善が見られた。

f:id:Hironsan:20190925074944p:plain
ヘルス関連の分類タスクの性能

感想

個人的には読みにくい論文であった。最終的に、分類タスクで評価しているが性能の改善は僅かなものであった。これはスペル修正された単語の割合が1%程度であることと、分類タスクの場合、知らない単語が多少あっても解けてしまうことが原因なのではないか。単語修正の影響が大きいと考えられるショートテキストの分類に対してどの程度効果があるかは知りたいところ。あとは、固有表現認識のようなOOVの影響が大きなタスクではより効果的だと思われるので、今後の発展に期待したい。