学習記録(15日目)
勉強開始:12/7(土)〜
教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/19(木)読了
・Progate Python講座(全5コース):12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12月23日(土)読了
Kaggle初参加
参加コンペ:Real or Not? NLP with Disaster Tweets 12/24(火)〜
ツイートのうち、災害に関する情報を示したものとそうでないものを仕分けするという問題です。
分野としては自然言語処理に当たります。
開催期間は来年の3月までですが、遅くとも本日から約2週間後の1月10日(金)までを目安として一度submitしたいと考えています。
今お世話になっている某大学の研究室の方々と幸運にもチームを組むことができたため、非常に心強い状況ではありますが、頼りきりにならないようしっかりとアウトプットしていきます。
データ前処理
・head(), shape, describe() でデータの概要を把握
・訓練データの欠損値及びその数を把握
・drop('データラベル名', axis=1) で不必要(と思われる)箇所をカット
・df["データラベル名"] で該当するテキスト部分を抽出し、tolist() でリスト化
データ抽出・コーパス作成
・ストップワードを定義し(and や or)、split() で分割
・lower() で全て小文字に、さらに for構文でsplitを使用し単語に分割
・pprint()で出力(pprintだと要素毎に改行が入り見やすくなる。)
・単語の出現回数をカウントし、指定回数以下のものを除外
・完成した単語列を gensimのcorpora.dictionary()を用いて辞書化(コーパス完成)
・LDAモデルに変換
ここまででベクトル化には成功したものの、ただ変換しただけなので次元数が数千に至っており、かつ、災害に関する情報かそうでないかを示すtargetと抜き出した情報が結びついていないことに気が付きました。
今の所、結びつける方法について検討も付きませんが、また明日引き続き挑戦します。