プログラミング

初学者が短期間でPythonを習得できるようになる勉強法!

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

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

しかし巷ではPython全盛期。

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

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

しかし現在、完全に習得したとは言い難いものの、ほぼ初学者の状態からある程度のデータ解析・Webアプリケーションなら実装できるようになりました。

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

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

Pythonの特徴

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

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

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

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

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

Pythonで習得すべきこと

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

・Pythonでの基本的な記述方法が分かる
・関数・クラスが作れる
・データ解析系のライブラリを使える
・スクレイピングが出来る
・簡単なWebアプリケーションが使える

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

まあこれは、それほど他の言語をある程度触ったことのある人なら問題ないでしょう!

簡単な条件分岐・配列計算等が分かれば問題ありません。

関数・クラスが作れる

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

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

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

データ解析系のライブラリを使える

データ解析系のライブラリは非常に多くありますが、それを全て覚える必要はありません。

リファレンスを見れば使えるくらいになっておけば問題ないでしょう!

スクレイピングが出来る

スクレイピングとは、Web上のデータを抽出する作業。

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

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

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

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

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

Pythonを習得するための課題

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ある程度基礎知識を付けるには、まずProgateがオススメ!

その次にはPythonに特化したPyQがオススメ!なかなかPythonに特化してここまで教えてくれるオンライン学習プラットフォームはありません。

ただ、強制的に目標を作るにはやはりプログラミングスクールに通うことをオススメします!プログラミングスクールならテックアカデミー!

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

教材のレベルも高く、本気で実践的なプログラミングを勉強するならテックキャンプよりもテックアカデミーでしょうか。

無料体験も行っているのでとりあえず取り組んでみるのも良いでしょう。

TechAcademy [テックアカデミー]

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

プログラミング言語を勉強する上でオススメな方法とツールを紹介!こんにちは! プログラミング言語ってなかなか一人で勉強しようとしても続かないですよね・・・ 分厚い書籍を購入してみたもののな...

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

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

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

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

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