Python

【入門】初心者が短期間でPythonを習得できるようになる勉強法!

こんにちは!デジタルマーケターのウマたん(@statistics1012)です。

大学院時代は統計学を専攻していたのですが、ほぼRを使用しておりPythonは手を付けていない状況でした。

しかし巷ではPython全盛期。

なんとかPythonを習得したいと思うものの長続きせず、結局中途半端に終わってしまっていました。

それもそのはず、データ解析を行うにはRで事足りることが多くPythonを使う必要はなく当時はPythonを習得するメリットはこれと言ってなかったのです。

しかし現在、ほぼ初心者の状態からある程度のデータ解析・Webアプリケーションなら実装できるようになりました。

そこで、この記事ではPython初心者を抜け出すための勉強法・ロードマップについて見ていきたいと思います。

この記事で取り上げているのは以下の2つ

・初心者勉強のロードマップ
・Pythonで出来ることをまとめたコードの公開

初心者勉強のロードマップを参考に学習を進め、並行してコードを参考にしてカスタマイズした機械学習ロジックを用いたWebアプリケーションを作っていただけると学習がはかどるかと思います。

ウマたん
ウマたん
実際にPythonを習得しやすいお題に対してコーディングしていくよ!

Pythonの特徴

まずは簡単にPythonのイメージについて見ていきましょう!

Pythonはどうしてもデータ解析のイメージが強いです。

もちろんお馴染みの機械学習手法から流行りの手法まで幅広く実装することができますが、それであればRでも問題ありません。現に大学院時代はRで困ったことはありませんでした(Rはグラフ描画や多変量解析手法に強いイメージがあります)。

以下の記事でPythonとRなどデータ解析用のプログラミング言語を比較しているのでよければご覧ください!

統計解析を行う上で便利なプログラミング言語を比較!統計学を学ぶにあたって必要なプログラミングのスキル。 世の中にはプログラミング言語を使わずとも統計処理を扱えるソフトウェアが存在し...

Pythonの真骨頂は、Webアプリケーション開発。FlaskやDjangoと言ったモジュールを用いることで簡単にWebアプリケーションを開発することができるのです。

つまりクライアントサイドからデータをもらい、そのデータに対してロジックを回し、クライアントサイドに返すといったことを一気通貫で出来てしまうのです!

それでいて変数宣言等が必要なく、簡易的なコーディングで実装できる初心者にも優しい言語なのです!

Pythonで習得すべき要素と初心者のロードマップ

ここまで来たらPythonある程度習得したってことでいいんじゃない?というレベルを簡単にまとめておきます。

・Pythonでの基本的な記述方法が分かる
・関数・クラスが作れる
・データ解析が出来る(機械学習モジュールが使いこなせる)
・スクレイピングが出来る
・Webアプリケーションが作れる

Pythonでの基本的な記述方法が分かる

まあこれは、それほど他の言語をある程度触ったことのある人ならそれほど苦労しない部分かもしれません。

ただ若干記述の方法が違ったり、Python独自の概念もあるのでしっかりと学びましょう!

NumpyやPandas、Matplotlibなどデータ加工や描画に関するモジュールの使い方を覚えましょう!

このフェイズでは、以下の書籍を読んでみるとよいでしょう!プログラミング言語とはなんぞやという基本的なところから教えてくれます。

そして平行してPyQというオンライン学習サービスを利用しましょう!基本的な文法から勉強することができPythonに特化しているのでクオリティが高い!価格は3000円/月なので書籍1冊ほどのお値段です!

なかなかPythonに特化してここまで教えてくれるオンライン学習プラットフォームはありません。

クエスト形式で進んでいくので達成感もありますし、価格も安め!

ただ、実際に開発環境を作るのではなくPyQが用意してくれたプラットフォームを使うのでPyQだけやっても実務で回すときはまた違う設定が必要になります。

実際に自分でJupyter notebookを立ち上げたりコマンドプロンプトから入力して実装してみることを忘れないでください。

関数・クラスが作れる

関数・クラスの概念も他のプログラミング言語触ったことのある人なら問題ないかもしれませんが、初心者には非常に取っつきにくいところです。

一旦理解してしまえばそれほど難しくはありません。後ほど紹介する書籍に分かりやすく書いてあります。

昔、Javaのオブジェクト指向でつまづいてプログラミング投げ出した記憶があります笑

ここのフェイズでも先ほど紹介した書籍とPyQで学習してきましょう!

データ解析が出来る(機械学習モジュールが使いこなせる)

データ解析を行う上でのモジュールは比較的たくさんありますので、それが使いこなせるようになっておきましょう!

正直、Pythonは最新の手法であれモジュールとしてインポートし使用することができるのでアルゴリズムを精緻に理解する必要はありません。

しかし、まるっきり分からないと結果の解釈を誤ってしまう可能があるのである程度の理解はしておくべき。

統計学に関して不安な方はそちらも学んでおきましょう!

統計学入門に必要な知識と勉強方法を簡単に学ぼう!統計学はビジネスにも学問にも非常に役立ちます。 とは言え、統計学は小難しいイメージがどうしても付きまとうモノ。 ...

また、さらに深くディープラーニング等を学びたいのであれば、テックアカデミーのAIコースがオススメです。

テックアカデミーは個人的にめちゃくちゃオススメ!体験記事を挙げているので参考にしてみてください!

【感動】テックアカデミーの評判は?実際に受講してみて良かった6つのことこんにちは!消費財メーカーでデジタルマーケ&データサイエンティスト的なお仕事をしているウマたん(@statistics1012)です。 ...

テックアカデミー公式サイトをチェック

AIの活用に関しては以下の記事にもまとめているのでよければご覧ください!

人工知能(AI)とは?ビジネスに活かすためにはどうすればよいのか?こんにちは!ウマたん(@statistics1012)です。 大学院時代は統計科学を専攻しており、現在は消費財メーカーでデジタルマ...

スクレイピングが出来る

スクレイピングとは、Web上のデータを抽出する作業。こちらもPyQで学ぶことが可能です。

スクレイピングを自動的に行えばネットに落ちている様々な情報を一挙に吸い上げることが可能です。

スクレイピングをする上では、インターネットの構造とHTMLやCSSの理解が必要になります。

正直HTML・CSSを0から書ける必要はありません。クロームのディベロッパーツールを使ってWebブラウザを見ながら構造を勉強するとよいでしょう!

ディベロッパーツールに関しては以下の記事にまとめています!

マーケター必読!ディベロッパーツールの使い方!こんにちは! 消費財メーカーでデジタルマーケティングに携わるウマたん(@statistics1012)です。 みなさんは、C...

またスクレイピングすることができるレベルのHTML・CSS・Javascriptを学ぶ本として以下の書籍が超超超名著なので読んでみてください。Kindle版しかないみたい。

「WEBマーケターのためのテクノロジー入門:Webマーケターにとって必要十分なプログラミング・テクノロジーの基礎を解説」

「WEBマーケターのためのテクノロジー入門」はWebマーケター必読書だ!こんにちは! 消費財メーカーでデジタルマーケターやってるウマたん(@statistics1012)です! 大学院では統計学を...

Webアプリケーションが使える

ここがPythonの特徴でもあるのですが、今までサーバーサイド言語を扱ったことのない人にはハードルの高い部分かもしれません。

僕もサーバーサイド言語はノータッチでした。

実際にWebアプリケーションとして落とし込むにはHTML・CSS・Javascriptの知識も必要になってくるので同時に学習しましょう!

このフェイズでもPyQで十分OK!PyQはまじで優秀なのでPythonを短期間でしっかり勉強したいのなら是非利用しましょう!PythonにはFlaskというDjangoというWebアプリケーション作成のフレームワークがあるのですがどちらも利用することが可能です。

PyQについては以下の記事で詳しくまとめています!

Python学習に特化したPyQをレビュー!初学者にオススメ!こんにちは! デジタルマーケターのウマたん(@statistics1012)です。普段は、Python・R・Javascriptな...

Pythonを習得するための課題

先ほどのPython習得における5つの要諦。

それらを同時に習得できるプログラムを作っていきましょう!笑

僭越ながら、少し前までPython初心者だった僕でもこんなの作れるんだぞ!という証明も含めて解説していきます。

ウマたん
ウマたん
そんなのあるのか!?

正直無理やり感ありますが・・・

今回作っていくのは、

Webフォーム上にURLを入力すると、スクレイピングによってテキスト情報を抽出し、そこから形態素解析を行いテキスト類似度を算出し、データベース(これはおまけ)に格納、最終的にフォームに入力したURL同士のテキスト類似度を表示するWebアプリケーション

です。

まさにこれを作れば、先ほどの5つが習得でき・・・そう・・・?

ガツンとコードだけ先に載せちゃいます。PythonファイルとHTMLファイルを作成していきます。

いきなり長ったらしいコードが現れましたが、順番に見ていきましょう!

Pythonのスクレイピングを習得

まずは、Pythonでスクレイピングを習得していきます。

スクレイピングを行うにはbeautifulSoupというモジュールを使います。

Pythonにおけるスクレイピングに関して詳細は以下の記事をご覧ください!

Pythonのbeautifulsoupでスクレイピングを実装してみよう!こんにちは! 消費財メーカーでデジタルマーケティングに携わっているウマたん(@statistics1012)です! Webサ...

スクレイピングの部分だけ抜き出して見ていきます!

スクレイピング用のクラスを作成しています。

article1_content=soup.find_all(“p”)でpタグを指定して抽出しています。ここを変えれば別のタグの中身を抽出することが可能です。

Pythonで形態素解析をしてテキスト類似度計算

続いて、MeCabを使って形態素解析を行い、td-idfとcos類似度を用いてテキスト類似度を算出していきます。

MeCabをPythonで使うには少し設定が必要だったりするのですが、詳しくはこちらの記事をご覧ください。

PythonのMeCabで形態素解析!文書の類似度を算出してみよう!こんにちは!デジタルマーケターのウマたん(@statistics1012)です! そんな時に有用なのがMeCab(...

形態素解析・テキスト類似度の部分だけ抜き出して見ていきます!

ここでもそれらのクラスを作成しています。

形態素解析をして得られた結果から名詞だけを抜き出して、助詞等を除いています。

td-idfとcos類似度はnumpyとsklearnを用いれば簡易的に計算することが可能です。

Pythonでデータベースを操作する(おまけ)

先ほどの5つの要諦には入れてませんでしたが、Pythonを使ってデータベースを操作することが可能です。別途SQLの知識が必要になります。

詳しくは以下の記事にまとめていますのでご覧ください!

PythonのSqlite3を使ってデータベースを操作する方法を見ていこう!こんにちは! 消費財メーカーでデジタルマーケティングに携わっているウマたん(@statistics1012)です。 Pyth...

データベース操作部分だけ抜き出して見ていきます!

細かい処理が必要なのですが、基本的にはsqlite3.connect()でデータベースを作成し、executeメソッドでSQLを実行していきます。

PythonでWebアプリケーションを作成

ここの部分が一番重いですね。HTMLも作成するのでPython以外の知識もある程度必要になってきます。

こちらの記事をはじめに読んでいただくと理解が進みやすいと思います。有意差を算出してくれるWebアプリケーションを作成しています。

PythonのFlaskで簡単なWebアプリケーションを作ってみよう!こんにちは!デジタルマーケターのウマたん(@statistics1012)です! WebブラウザでアプリケーションのことをWebア...

今回のプログラムで特別行っているところはローディング時にローディングのgif画像を差し込むという処理です。

これがあるとユーザーにとっては計算中なんだなということが分かり親切ですが、あってもなくても構いません。

Flaskを使ってWebアプリケーションを作成する部分は少し複雑ですが、こういうもんだと思って覚えるしかありません。

HTMLとの整合性が合うように命名等気を付けましょう!

これで終了!Flaskを使う場合はpythonファイルと同じディレクトリにtemplatesフォルダを作成し、その中にhtmlファイルを置かないといけないので注意しましょう!

画像ファイルはimgフォルダ、css・jsはstaticフォルダと決まっています。

ちなみに今回はURLでもテキストでもどちらを入力しても判定できるようなUIにしました。

是非、このスクリプトをまねて何かWebアプリケーションを勉強がてら作ってみてください!

Python習得を挫折しないためには

最後にPython学習を挫折しない方法を少しだけお話しておきましょう。

プログラミング勉強において重要なのは、目的を明確にしておくことです。

なんとなく惰性でプログラミングを勉強しようとしてもそう簡単には上手くいきません。

実際、大学院時代に流行りの手法だからとPythonに取り組んでみましたが結局上手くいかず・・・

今回のように実際に実装したいモノが明確にあれば習得しやすいです。(作りたいモノに対する熱量にもよります)

もし、実装したいモノが特にない場合、ある程度強制的に目標を作ることをオススメします!

強制的に目標を作るにはやはり先ほど紹介したプログラミングスクールに通うことをオススメします!

基本的にはオンライン学習コンテンツを進めていくものになりますが、現役エンジニアのメンターがついて分からないことは素早く対応してくれます。

正直かなりの大金を払うことになるのでやらざるを得ない状況に追い込まれますしメンターチェックが入るのでお尻に火がつきます。AIコースを受講しましたが割と大変でした・・・

教材のレベルというよりメンタリングにお金を払っているイメージです。

【感動】テックアカデミーの評判は?実際に受講してみて良かった6つのことこんにちは!消費財メーカーでデジタルマーケ&データサイエンティスト的なお仕事をしているウマたん(@statistics1012)です。 ...

テックアカデミー公式サイトをチェック

プログラミングを習得するのにオススメな方法について以下の記事でまとめています!

プログラミングを挫折しないで勉強し続けるために重要な3つの秘訣!こんにちは! 事業会社でWebマーケ・データ解析屋さんとしてお仕事をしているウマたん(@statistics1012)です。 ...

Pythonを習得する勉強法 まとめ

長々と書いてきましたが、結局のところPythonは手段でしかないので目的がないと習得もクソもありません。

PyQ等である程度の基礎知識を付けた後は、自分で実装したいと思うWebアプリケーションを作ってみると良いでしょう。

今回紹介したWebアプリケーションをマネて何か作るもよし、強制力を付けるためにプログラミングスクールに通うもよし!

それは人それぞれ!

ただ必ずPythonを使って何を達成したいのかは念頭においておくようにしましょう!