テキスト分析の大通り#11: ナイーブベイズテキスト分類用の横持ち連結
前回SQLでのナイーブベイズ利用について整理しました。また次回以降はPython Scikit-learnを使って同じことをしようと思いますが、その前にScikit-Learn用のデータを今回は作ります。入力として一つの文書が半角スペースで区切られた1列に入れる必要があります。英語の半角スペース区切りの文書なら、ワンチャンそのまま利用できるデータの形式です。一方でSQLでは単語ごとに分解し、縦持ちしており、その中で不要語を削除したり、矯正したりしてきました。これはこれで扱いやすいのですが、ことそれが特定のライブラリ、アルゴリズムが求めるデータの形式でない場合は、求める形に変形する必要があります。
実施した処理としては、以下の通りとなります。もっとうまいやり方があるのかもしれませんがとりあえずこれで。
まずSQLのナイーブベイズでも使ったデータ、縦持ちの分解済み、不要語の除去や、矯正を行ったデータをダウンロードします。そして単語部分をリストにしてあげて、その文字列内にあるカギかっこやカンマを取り除いてあげます。SQLでダウンロードする際のorder by句に気を付ける必要があります。順番が変だとそのまま連結されてしまうので注意が必要です。そして元のデータから落としてしまっていたカテゴリー列を再度結合させ、明日また作業できるよう一旦データベースに保管しています。また横の単一列にしたときに出来上がった文字列の長さを確認し、それが入るようにテーブルの文字長を調整しています。
以上、たいした面白みはない内容ですが、横持ち連結の処理でした。
(TeradataやPython、およびPythonライブラリのインストールや環境構築、辞書登録、参考にしたページ等は以下にまとめています)
///