LoginSignup
2
2

More than 5 years have passed since last update.

Kaggleのデータからbag of wordsを作ってみた(1/3)

Last updated at Posted at 2017-07-30

初めに

この記事はKaggleのデータ「Bag of Words Meets Bags of Popcorn」のデータでbag of wordsを作り、Random Forestで予測するまでを説明する初心者向けの記事です。
英語記事でいいものを見つけたので、英語が苦手な方向けに和訳+初心者向けに補足したものになっております。
また、投稿自体が初めてのなのでアドバイスをいただければ幸いです。

Kaggleのデータからbag of wordsを作ってみた(2/3)
Kaggleのデータからbag of wordsを作ってみた(3/3)

環境

  • Python 3.6.0 :: Anaconda custom (x86_64)
  • Mac OS X 10.12.5

データの読み込み

import pandas as pd       
train = pd.read_csv("labeledTrainData.tsv", header=0, \
                    delimiter="\t", quoting=3)

これで、"labeledTrainData.tsv"がtrainに読み込まれます。
細かい補足
- header=0, 最初の一列目は各行の名前であることを示している。
- delimiter="\t", データはタブによって別れていることを示す。
- quoting=3, Python用のエラー防止

train.shape #学習データのデータ数と次元数の確認
(25000, 3)

これでこのデータはデータ数25000,次元数3であることがわかります。
以下のようにtrainと打ち込むだけでも見ることもできます。

train

スクリーンショット 2017-07-11 15.22.49.png

データのクリーニング

まずは一番最初の人のレビューを見てみます。

print (train["review"][0])

スクリーンショット 2017-07-11 15.31.18.png

実はこのデータは汚い状態(扱いにくい)にあります。
これから、このデータを綺麗にしていきます。具体的には以下のことをします。
- タブの消去
- 文字以外(?,.,')の処理
- 大文字、小文字の処理

BeautifulSoupを使ったタブの消去

スクリーンショット 2017-07-11 15.45.33.png

ちゃんとタブが消えているのが確認できます。

reを使った文字以外の処理
ここからは、(?,.,/,#,",')のような文字以外のものを処理していきます。

import re
letters_only = re.sub("[^a-zA-Z]",           #この条件に合致するものを
                      " ",                   #これ(今回は空白)に置換する
                      example1.get_text() )  #対象とするテキストデータ
print(letters_only) 

ちょっと見えにくいですが、「.」や「"」が消えているのが確認できます。
スクリーンショット 2017-07-11 15.55.49.png

大文字、小文字の処理
最後に全ての文字を小文字にします。このままだた、Withとwithが別の文字として処理されてしまうためです。

lower_case = letters_only.lower()        #全て小文字に変換する
print(lower_case)

スクリーンショット 2017-07-11 16.02.29.png

ちゃんと小文字になっていますね。
今回はこれで終わりです。
次回から本格的にbag of wordsを作っていきます。

参考文献

Part 1: For Beginners - Bag of Words

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2