データの前処理 (Pythonによるビジネスデータサイエンス 第2巻)


本リポジトリは朝倉書店発行書籍『データの前処理』(Pythonによるビジネスデータサイエンス 第2巻)のサポートサイトです。
※本リポジトリに関する更新履歴はwikiページをご参照ください。


目次


1. サンプルプログラム

1.1. ファイル構成

サンプルプログラムはjpyter notebook(もしくはjupyter lab)で動作するipynbの形式で配布しています。以下に示したインストール方法を参考に実行環境を構築しコードを実行してください。

フォルダ名 説明
Chapter_2 2章「データの収集」で使用するデータと.ipynb形式のノートブック
Chapter_3 3章「表構造データの処理技術」で使用するデータと.ipynb形式のノートブック
Chapter_4 4章「実践:公的統計」で使用するデータと.ipynb形式のノートブック
Chapter_5 5章「実践:マーケティング」で使用するデータと.ipynb形式のノートブック
Chapter_6 6章「実践:ファイナンス」で使用するデータと.ipynb形式のノートブック
Chapter_7 7章「実践:自然言語処理」で使用するデータと.ipynb形式のノートブック
Appendix_A 付録A「付録A:Pythonの基礎」で使用するデータと.ipynb形式のノートブック

1.2. ダウンロード

このページの上の緑の「Code」ボタンから「Download ZIP」でZIPファイルを作業をするフォルダにダウンロードし解凍してください。もしくは、以下に示す通り、gitコマンドでcloneして利用してください。

gitがインストールされていない場合は下記サイトを参照してインストールしてください。

サンプルプログラムをダウンロード(clone)する作業用のフォルダ/ディレクトリを適当に作成してください。
作成できたら下記コマンドを実行してください。サンプルプログラムがダウンロード(clone)されます。
[作業用フォルダ/ディレクトリへのパス]の部分は作成した作業用フォルダ/ディレクトリのパス(絶対パスもしくは相対パス)に置き換えてください。

cd [作業用フォルダ/ディレクトリへのパス]
git clone https://github.com/asakura-data-science/preprocessing.git .

2. 実行環境の構築

ご自身でライブラリ等をインストールせずに、インストール済みのDockerイメージを利用される場合は、4. Docker実行環境の利用を参照してください。Docker環境を使えばWindows環境でもNYSOLライブラリを使用できます。

2.1. Pythonのインストール

Python 3がインストールされていない場合はPython 3をインストールします。

2.1.1. Windowsの場合

下記コマンドを実行してPython 3がインストールされているか確認します。

python --version

コマンドプロンプトを起動して上記コマンドを入力し、enter/returnキーを押して実行してください。 以降、「コマンドを実行する」という表現は、コマンドプロンプト上でのコマンド実行を表します。

Python 3.x.xのように表示されればPython 3がインストールされています。
python: command not foundのように表示された場合は、下記サイトを参照してPython 3をインストールしてください。

2.1.2. Mac,Linuxの場合

下記コマンドを実行してPython 3がインストールされているか確認します。

python3 --version

ターミナルを起動して上記コマンドを入力し、enter/returnキーを押して実行してください。 以降、「コマンドを実行する」という表現は、ターミナル上でのコマンド実行を表します。

Python 3.x.xのように表示されればPython 3がインストールされています。
python3: command not foundのように表示された場合は、下記サイトを参照してPython 3をインストールしてください。

また、同一PC内にPython 3の複数バージョンをインストールしたい場合などではpyenv等を利用します。pyenvのインストール方法については下記サイト等をご参照ください。 なお、pyenvPython 3をインストールした場合は、以降のインストールガイドにおけるpython3 pip3コマンドはpython pipに差し替えて(コマンド末尾の3を除いて)実行してください。

2.2. パッケージのインストール

本書内で利用するPythonパッケージをインストールします。以下では、Windows, Mac, Linuxに分けてその方法を示します。また、NYSOLのインストールについても最後に説明しています。

なお、LinuxについてはCentOSのインストール方法のみ紹介しています。CentOS以外のディストリビューションのLinuxについては本ページでのインストール方法を参考に、各ライブラリのインストールガイドなどに沿ってインストールを行ってください。

2.2.1. Windows

WindowsではAnacondaをインストールし、Anacondaに同梱されていないライブラリをpipで追加インストールします。

  1. anaconda3のインストール https://www.anaconda.com/products/individual よりPython3.8 の64-Bit Graphical Installerをダウンロードしてインストールしてください。

  2. pipのアップグレード インストールに用いるpipコマンドは頻繁に更新されていますので、まずpipコマンド自体をアップグレードしておきます。

pip install -U pip
  1. anacondaに入っていないライブラリのインストール WindowsメニューのAnaconda3(64-bit)よりAnaconda Powershell Prompt(anaconda3)を起動して以下のインストールしてください。 7章の「実践:自然言語処理」の章末問題で利用するMeCabJumanについてはインストールが簡単ではないので省略しています。ネット上に詳細な解説記事がありますので検索し参照してください。 以下のPS>はPowershellのプロンプトを表しています。
PS> pip install python-Levenshtein
PS> pip install spacy
PS> python -m spacy download en_core_web_sm
PS> install sudachipy sudachidict_core
PS> install wordcloud
PS> install janome
PS> install nagisa

動作確認したWindowsのバージョン:

  • Windows 10 Pro version 20H2(OSビルド19042.964)
  • Windows 10 Home version 1803

(Windows Homeでは、nagisaのインストールではコンパイル済のパッケージ(wheel)が用意されていないため、コンパイラが必要となります。)

2.2.2. Mac

  1. pip3のアップグレード
    インストールに用いるpip3コマンドは頻繁に更新されていますので、まずpip3コマンド自体をアップグレードしておきます。
pip3 install -U pip
  1. Homebrewのインストール
    Homebrewによるアプリケーションのインストールをしているため、以下のサイトを参考にHomebrewをインストールしてください。 https://brew.sh/index_ja

  2. 本書のプログラムを実行するために必要なライブラリ
    次に下記コマンドを実行し、各パッケージをインストールします。

pip3 install pandas
pip3 install numpy
pip3 install bs4
pip3 install xlrd
pip3 install pymysql
pip3 install python-Levenshtein-wheels
pip3 install matplotlib
pip3 install seaborn
pip3 install spacy
python3 -m spacy download en_core_web_sm
pip3 install sudachipy sudachidict_core
pip3 install wordcloud
pip3 install networkx
pip3 install janome
pip3 install nagisa
pip3 install mlxtend
pip3 install jupyterlab

# Mecabの環境構築
brew install mecab
wget -O mecab-ipadic-2.7.0-20070801.tar.gz 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM'
tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
sudo make install
pip3 install mecab-python

# JumanとKNPの環境構築
brew install jump
pip3 install pyknp

2.2.3. Linux(CentOS)

  1. pip3のアップグレード
    インストールに用いるpip3コマンドは頻繁に更新されていますので、まずpip3コマンド自体をアップグレードしておきます。
pip3 install -U pip
  1. ライブラリのコンパイルなどで必要なツール
    下記コマンドを実行してインストールします。
sudo yum install wget
sudo yum install cmake
  1. 本書のプログラムを実行するために必要なライブラリ
    次に下記コマンドを実行し、各パッケージをインストールします。
pip3 install pandas
pip3 install numpy
pip3 install bs4
pip3 install xlrd
pip3 install pymysql
pip3 install python-Levenshtein-wheels
pip3 install matplotlib
pip3 install seaborn
pip3 install spacy
python3 -m spacy download en_core_web_sm
pip3 install sudachipy sudachidict_core
pip3 install wordcloud
pip3 install networkx
pip3 install janome
pip3 install nagisa
pip3 install mlxtend
pip3 install jupyterlab

# Mecabの環境構築
## Mecabのインストール
wget -O mecab-0.996.tar.gz 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE'
tar zxvf mecab-0.996.tar.gz
cd mecab-0.996./configure --with-charset=utf8
make
sudo make install
## Mecab辞書のインストール
wget -O mecab-ipadic-2.7.0-20070801.tar.gz 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM'tar zxfv mecab-ipadic-2.7.0-20070801.tar.gzcd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
sudo make install
## mecab-pythonのインストール
pip3 install mecab-python

# JumanとKNPの環境構築
## Juman++のインストール
wget https://github.com/ku-nlp/jumanpp/releases/download/v2.0.0-rc3/jumanpp-2.0.0-rc3.tar.xz
tar xvf jumanpp-2.0.0-rc3.tar.xz
cd jumanpp-2.0.0-rc3
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make
sudo make install
## pyknpのインストール
pip3 install pyknp

2.2.4. NYSOL(Mac,Linuxのみ)

  1. NYSOLの特徴
    NYSOL(「にそる」と読む)は、データマイニング(大規模データの探索的な知識発見手法)を柔軟に実施することを目的に開発されてきたソフトウェアです。それをPythonで利用できるようにしたのがnysol_pythonで、いくつかのライブラリ群から構成されます。その中でも大規模CSVデータを高速かつ柔軟に処理する目的で開発されたライブラリがmcmd(「えむこまんど」と読む)で、nysol.mcmdで参照できます。mcmdは、pandasで記述された多くの処理を実現でき、以下のような特徴を持ちます。
  • 利点
    • メモリに収まらないような大規模データでも処理可能
    • テキスト処理を基本とするのでデータ型をほとんど意識しなくてよい。
    • コマンドラインでもほぼ同じ書式で利用できる。
  • 欠点
    • 現在のところUnix系OSでしか動作せず、Windows環境では利用できない。
    • ネット上で参照できるドキュメントが少ない。
  1. サンプルプログラム
    mcmdによるサンプルプログラムは、オリジナルのプログラム名に'_mcmd'を加えたファイル名で同梱しています。例えば、'3/3-2_mcmd.ipynb'というコードは、オリジナルの'3/3-2.ipynb'と同じ処理をmcmdで記述したものです。 Windows環境で利用するには仮想環境のDockerを利用してください。 Mac/Linux環境でnysolライブラリを使用したい場合は追加で下記をインストールします。
  1. Macでインストール
# 以下のライブラリをHomebrewでインストールする。
brew install autoconf
brew install automake
brew install libtool
brew install boost

# nysol_pythonのインストール
pip3 install nysol
  1. Linux(CentOS)でインストール
# 以下のライブラリをyumでインストールする。
sudo yum update
sudo yum groupinstall "Development Tools"
sudo yum install boost-devel
sudo yum install libxml2-devel

# nysol_pythonのインストール
pip3 install nysol

3. 実行方法

下記コマンドを実行して、jupyterlabを起動してください。

cd [作業用フォルダ/ディレクトリへのパス]
jupyter-lab

すると、Webブラウザが起動してjupyterlabのページが開き、サンプルプログラムのフォルダ構成が表示されます。
jupyterlabの使用方法については、本書籍 付録B「Jupyterを使ったプログラミング環境」をご覧ください。

4. Docker実行環境の利用

4.1. Dockerのインストール

Dockerがインストールされていない場合は下記サイトを参照してインストールしてください。


下記コマンドを実行してDockerがインストールされているか確認できます。

docker --version

※Windows 10の場合はデスクトップにある「Docker for Windows」、Docker Toolboxを使用する場合はデスクトップにある「Docker Quickstart Terminal」を起動します。コマンドプロンプトと同様の画面が開きますので、そこでコマンドを実行します(以下、Dockerの操作について同様)。

4.2. Dockerでの実行方法

下記のdockerコマンドを実行すると、本書用に作成したDockerイメージがダウンロードされ、コンテナが起動します。Dockerイメージのダウンロードはネットワーク環境によって5〜20分ほど要します。また、Dockerイメージのサイズが9GB近くありますので、ディスクの空き容量が十分にあるか確認してから実行してください。

docker run --rm asakurads/preprocessing:1.0

画面に表示される実行ログにhttp://127.0.0.1:8888/labという表示が出力されればjupyterlabの起動完了です。

Webブラウザを起動して下記URLを入力するとjupyterlabのページが開き、サンプルプログラムのフォルダ構成が表示されます。
jupyterlabの使用方法については、本書籍 付録B「Jupyterを使ったプログラミング環境」をご覧ください。

http://127.0.0.1:8888/lab

4.3. Dockerでの実行方法(ローカルPCのポート番号を指定したい場合)

ローカルPCのポート番号8888が別のプロセスで使用されている場合はdockerコンテナの起動コマンドを下記のように変更してください。下記オプションのxxxxの部分にローカルPCで使用可能なポートを指定します。

docker run --rm -p xxxx:8888 asakurads/preprocessing:1.0

WebブラウザのURLは下記になります(xxxxは上記コマンドで指定したポート番号)。

http://127.0.0.1:xxxx/lab

4.4. Dockerでの実行方法(同じdockerコンテナを継続して使用したい場合)

上記4.2、4.3のdockerコマンドで起動したコンテナは--rmオプションが指定されているため、コンテナ終了時に自動的に削除されます(dockerコマンドを実行するごとに新しいコンテナが作成されます)。

起動したdockerコンテナを削除せずに継続して使用したい場合は下記dockerコマンドで起動します。--rmオプションを外し、--nameオプションでコンテナ名(ここではasakura_pre)を指定します。また、-dオプションでバックグラウンド実行になります。

docker run -d -p 8888:8888 --name asakura_pre asakurads/preprocessing:1.0

dockerコンテナの操作で最低限必要なコマンドを下記に紹介しておきます(asakura_preはコンテナ名)。その他のdocker操作コマンドは公式サイト日本語)やネットで調べてください。

#コンテナの実行ログの出力
docker container logs -f asakura_pre

#コンテナの起動
docker container start asakura_pre

#コンテナの停止
docker container stop asakura_pre

#コンテナの削除(コンテナが停止した状態でしか削除できない)
docker container rm asakura_pre

5. 関連リンク集

5.1. 共通

5.2. 公的統計

5.3. マーケティング

5.4. ファイナンス

5.5. 自然言語処理