内容
15stepで踏破 自然言語処理アプリケーション入門 を読み進めていくにあたっての自分用のメモです。
準備
- 個人用MacPC:MacOS Mojave バージョン10.14.6
- docker version:Client, Server共にバージョン19.03.2
章の概要
本に記載の通り、学習環境の構築および、演習の前提となる知識(プログラミング言語とライブラリ)について押さえる。
メモ
1 序論・自然言語処理と機械学習
メモなし
2 本書の執筆・開発環境
執筆環境をrequirements.txtとして配布されているほか、Dockerfileも配布されている。
requirements.txtは下記のようにライブラリの種類とバージョンが記載されていて、pipを使って一括でライブラリをインストールすることができる。
requirements.txt
numpy==1.15.0
scipy=1.1.0
...
mecab-python3==0.996.2
neologdn==0.3.2
...
# pipでのインストール例
$ pip install --no-cache-dir -r requirements.txt
Dockerfileを利用する場合は、DockerfileからDockerコンテナをビルドして起動する。(自分はこちらで実行)
### コンテナビルド ###
# Dockerfileが置いてある場所で実行
$ ls | grep Dockerfile
Dockerfile
# リポジトリ名:15step、タグ名:latest でビルド
$ docker build -t 15step:latest .
### コンテナ起動 ###
# デフォルトでコンテナを起動するとpythonが起動した状態
$ docker run -it 15step:latest
Python 3.6.5 (default, Jun 27 2018, 08:22:23)
>>>
# 停止はquit()
>>>quit()
$
# bashを起動したのちpythonを起動する方法も
$ docker run -it 15step:latest /bin/bash
/usr/src/app#
/usr/src/app# python
Python 3.6.5 (default, Jun 27 2018, 08:22:23)
>>>
3 機械学習のためのPythonの基礎
- リストとタプルと辞書を使い分けれるようにする
- タプルはimmutable
- 三項演算子がC言語とかと比べるとより英文的な書き方
price = 1000 if age >= 20 else 800
- age>=20ならばprice=1000、そうでなければprice=800が実行される
- for文
- listに対してはforeach的に
for val in <リスト>:
- カウンタ変数が欲しい場合はenumerateを
for i, val in enumerate(<リスト>):
- カウンタ変数のみが欲しい場合はrangeを
for i in range(5):
- listに対してはforeach的に
- 関数、クラス、モジュール
- モジュールを読み込む
import module as md
-
md.method
で関数を呼び出す
-
- モジュールの関数を読み込む
from module import method
-
method
で関数を呼び出す
-
- モジュールを読み込む
- 正規表現は正規表現パターンをあらかじめコンパイルしておけば、実行を高速化できる
4 数値計算ライブラリNumPy
- 配列は
numpy.array(<リスト>)
- 次元は
<配列>.shape
- スライス(複数の要素を指定して取得)は
<配列>[m:n]
- 要素m~n-1までを取得
- m=0やn=<要素数>の場合は省略可
- ブロードキャスティング
- ベクトル+スカラー や 配列+ベクトル の計算時、自動的に次元を揃えてくれる
- 四則演算は
<配列1> 演算子 <配列2>
で計算できる - 内積は
numpy.dot(<配列1>,<配列2>)
- 最大値を取得したい場合
- 要素の最大値を得るのは
numpy.max(<配列>)
- 要素の最大値のインデックスを得るのは
numpy.argmax(<配列>)
- 要素の最大値を得るのは
- 合計、平均、乱数、初期化(0で初期化,1で初期化)
- 配列結合
- 縦方向は
numpy.vstack(<配列1>,<配列2>)
- 横方向は
numpy.hstack(<配列1>,<配列2>)
- 縦方向は
5 本書で利用するその他の主要ライブラリ
メモなし