2017年8月8日火曜日

テキストクレンジングの難しさ

今回はテキストマイニングに関するお話です。テキストマイニング(※1)における解析の進め方については以前のブログ(テキストマイニングとは何を解析するの?)でご説明いたしました。
今回はそのうちの「前処理」工程の難しさについてお伝えできればと考えております。

 

テキストマイニングの「前処理」工程とは

前処理工程には大きく「クレンジング」「分かち書き(形態素解析)」があります。
まずはクレンジングから説明します。クレンジングには大きく以下の2つの処理があります。

1.表記ゆれの統一
  1-1.全半角の統一…例:「ネモト」「ネモト」→「ネモト」に統一
  1-2.大文字・小文字の統一…例:「NEMOTO」「nemoto」→「NEMOTO」に統一)

2.不要文字群の削除…例:「」()、。!?などの記号を削除


1の表記ゆれの統一についてはどの位で統一するのかを検討する必要があります。
例えば1-2の大文字・小文字の統一を英数字について適用したとします。この場合では小文字で表現されたい単語も大文字としてしまう可能性があります。

例えば弊社の解析エンジンである「bodais」も先のルールでは「BODAIS」と変換されてしまいます。そうなった場合は全体のルール(英数字小文字は大文字に変換する)を適用した後に、個別ルール(BODAISに関してはbodaisに変換する)を適用する、といったことを検討いたします。
しかし、そのような個別ルールを増やすと処理が煩雑になってしまうため、最終結果を読み解く際に置き換える、ということも一つのやり方です。

また、2の不要文字群の削除においてわかりやすいのは、「句読点や記号群を削除する」といったことがあげられますがこの場合でも以下のようなことの検討が必要です。

ⅰ)記号の適用範囲(どのくらいの記号を削除対象にするのか)
ⅱ)削除方法(削除して詰めるのか、それともスペースに置換するのか)


まず、ⅰ)記号の適用範囲についてお伝えします。
一言で記号といいましても「%」「&」など一般的に記号といわれるものから、「①」などの機種依存文字といわれるものまで多種あります。例えば日本語用の符号化文字集合を規定した JIS_X_0213のうちの漢字以外の文字群のうち平仮名・カタカナを除いたものでも約1,000字が該当します。

 新聞記事などであればこれらの記号を削除してもよいかもしれません。しかしツイッターなどSNSのデータを解析する場合、記号群を削除してしまうとアスキーアートといわれる絵文字などは削除されてしまいます。

ⅱ)の削除方法について、よく行われることとして「スペースに置換」が挙げられます。例としては以下です。

   【マグロ】【アボカド】 → 【】を削除 → マグロ アボカド


この場合では特に問題がありませんが、次の場合は問題が発生します。

   10,000円 → ,を削除 →10 000円


この場合10000円が「10」と「000円」なってしまい、その後の形態素解析では異なる単語として扱われてしまいます。

では別の方法として、「削除し左寄せする」場合はどうでしょうか。要するにBackSpaceで削除することと同じことをします。 先ほどの例に当てはめてみます。

   10,000円 → ,を削除 →10000円


この場合は、10000円が一つの単語として認識されそうです。では次の場合はどうでしょうか。

   1,2017年8月…中略…。 2,2016年5月…中略…。 → ,を削除
   →12017年8月…中略…。 22016年5月…中略…。


※順番を列挙するような場合に1,2,3,…と列挙していくような場合を想定しています。

この場合は「削除し左寄せする」というのは適切ではないと考えられます。
さて、一部の方は「そんな細かいケースを想定していったら対応しきれないのではないか」と考えられる方もいらっしゃると思います。それは実際そうだと私は考えます。

過去の個別プロジェクトではこういったクレンジング仕様を決めるだけで数週間を要しました。その上で
「句読点と判断されるものを除いた全角記号を半角に統一する」
「桁区切りの半角カンマを削除し左寄せする」
といったような仕様を決めていきました。それでもすべての解析に不要な記号をクレンジングで来たか、というとできていないと想定されます。

今回は非常に特殊な例をご紹介しました。公な報告書などテキストマイニングをするテキストの内容によってはクレンジングの仕様を細かく決める必要があります。しかし、多くのテキストマイニングのプロジェクトでは、あまり細かい仕様は決めずに「アルファベットや数値は半角に統一」「指定した記号群を空白置換により削除」といった程度でとどめます。それはテキストマイニングのクレンジングを完璧にするには相当の時間と手間を要するためです。今後テキストマイニングを検討する際に参考になれば幸いです。

 なお、弊社ではテキストマイニングプロジェクトをはじめとした様々な解析プロジェクトを一緒に進めていくメンバーを募集しています。詳しくは(https://bodais.com/company/recruit/)まで

※1 テキストマイニングの手法・事例詳細については、eBookよりご覧いただけます。

データサイエンス部 根本(株式会社アイズファクトリー