テキスト分析の大通り#01: データのロード
この記事ではテキスト分析でよく実施される手順、つまり「大通り」を練り歩いてみようと思います。テキスト、つまり文章のデータは数字やカテゴリーのデータではないため、定量的な分析を行う前段階ですべきメインのパイプラインがある程度確立しています。まず文章のデータを単語ごとに切り刻み、誤字脱字や表記ゆれを矯正し、カテゴリーデータにする部分は多くのテキスト分析において共通で実施されます。また文章を複数のクラスに分類したり、文章の特徴づけを行ったり、文意を可視化して端的に理解したりといった方法も、他の定量的な分析からみると特殊な部分があります。ここではそれらの代表的な部分を、それぞれの回に分けて整理していきます。今回は利用するデータの取り込みとちょっとした下準備に関する部分の紹介です。
利用するデータ
以下のデータを利用します。長い文章、大量のデータを使うと全体感を掴みにくいため、ハンディな、お遊びがてらのデータです。2つのカテゴリーに分かれた複数の文章データがあります。
データの取り込みと半角全角の整形
まずはPythonのノートブックを。追って解説します。
最初にもともとExcel形式の、先にご紹介したデータをそのまま取り込みます。そして、使わない列を削り、文書の順番が後々追跡できるようにID列を付与し、列順、列名を変更します。そして件数、最大文字数を確認します。最大文字数はのちのちデータベースに収める際のデータ長を決める必要があるため、確認しておく必要があります。
つづいて、これをTeradataデータベースに一旦格納し、必要なら都度取り出すことができるようにしておきます。接続情報を定義して接続し、空のテーブルを作成し、ここまでのデータを格納し、格納されたデータを確認します。
その後英数字、カタカナの全角半角を統一しますが、これにはmojimojiというライブラリを利用しました。docidの5番が元々のデータと比べると全角カナになっているのが分かりますでしょうか。また7番のMC.Wakaは半角に、19番のトゥーーースが全角の伸ばし文字に、その後に続くビックリマークが半角に変換されています。たぶん今回のデータに関しては後々の分析において影響を及ぼすことはないと思いますが、実務においてはこのような表記ゆれを統一しないことによって集計結果が割れてしまうことはよくあるため、大事な手順の一つとなります。
いったんここまでの結果をTeradataに格納し、今回はここまでとします。言い忘れましたが、データベースとの接続にはsqlalchemyと、そのうえで動くTeradataデータベース用のアドイン(teradatasqlalchemy)を使っています。テーブル作成とデータの取得に関しては、SQLをそのまま書けます。データ挿入時は書き方が特殊ですが、ノートブックに記載されているように一括で、簡単に挿入可能です。pandasのデータフレームと挿入先のテーブルを指定して挿入します。
(TeradataやPython、およびPythonライブラリのインストールや環境構築、辞書登録、参考にしたページ等は以下にまとめています)
///
#analytics #pyhon #mojimoji #text #nlp #データ #分析 #teradata #sql