[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Python

【Python独学勉強法】Python入門を3ヶ月で習得できる学習ロードマップ

Python独学勉強法
記事内に商品プロモーションを含む場合があります
ウマたんウマたん
ウマたん
当サイト【スタビジ】の本記事では、過去僕自身がPythonを独学を駆使しながら習得した経験をもとにPythonを効率よく勉強する方法を具体的なコード付き実装例とあわせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。

こんにちは!

事業会社でのデータサイエンティストを経て現在は会社経営をしているウマたん(@statistics1012)です。

今では毎日何時間もPythonを触ってる僕ですが、Pythonを勉強しようとして結局投げ出してしまった過去もあります。

プログラミング学習って特に初心者は学び方を間違えるとなかなか続かず挫折してしまうんですよね・・・

この記事では、そんな僕が圧倒的にオススメするPythonの勉強ロードマップやオススメサービス・教材を徹底的に解説していきます!

数あるサービスを使ってきましたが、Python学習におすすめできるサービスはこちら!ドドン!

サービス名オススメ度価格の安さサポート体制どんな人におすすめ?公式サイト
テックアカデミーパーソナルメンターが欲しいテックアカデミー
PyQ環境構築せずとりあえずPythonを触ってみたいPyQ
ウマたんウマたん
ウマたん
これであなたもPythonをマスター!!

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

・Pythonで習得すべき要素と出来ること
・Pythonで出来ることをまとめたコードの公開
・Pythonを効率よく勉強できるサービス

この記事で紹介している初心者勉強のロードマップを参考に進めてみてください!

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

ロボたんロボたん
ロボたん
Webアプリケーション作成まで出来るのか・・・
ウマたんウマたん
ウマたん
データ分析だけの言語だと思ったら大間違い!実際にPythonを習得しやすいお題に対してコーディングしていくよ!

ちなみにデータ分析の文脈においてはNishikaKaggleなどのデータコンペを使ってガシガシ学んでいくことをオススメします。

また僕の経験を詰め込んだデータサイエンス特化のスクール「スタアカ(スタビジアカデミー)」を運営しておりますので興味のある方は是非チェックしてみてください!

Pythonの特徴

pc pythonpc python

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

ちなみにPythonの勉強法については以下の動画でも解説していますので、あわせてチェックしてみてください!

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

もちろんお馴染みの機械学習手法から流行りの手法まで幅広く実装することができますが、それであればRでも問題ありません。

現に大学院時代はRで困ったことはありませんでした(Rはグラフ描画や多変量解析手法に強いイメージがあります)。

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

統計解析を行う上で便利なプログラミング言語統計解析を行う上で便利なプログラミング言語
統計解析を行う上で便利なプログラミング言語を比較!当サイト【スタビジ】の本記事では、統計解析において便利なプログラミング言語「Python/R/Stan/SQL」を比較していきます。それぞれのプログラミング言語にどのような特徴があるのか、どのように勉強していけばよいのか見てきますよー!...

Pythonの真骨頂は、Webアプリケーション開発。

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

Flask DjangoFlask Django
Flask vs Django!PythonのWebアプリケーションフレームワークを徹底比較!当サイト【スタビジ】の本記事では、PythonのWebアプリケーションフレームワークである「Flask」と「Django」の違いを徹底的に比較していきます!なんとなーく分かっているようで分からない2つのフレームワークの違いをこの機会にしっかりおさえておきましょう!...

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

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

ロボたんロボたん
ロボたん
なんだその最強の言語は・・・
ウマたんウマたん
ウマたん
出来ることの幅の広さと分かりやすい記述方法で非常に人気なんだよー!

Pythonでできることはまだまだたくさんあります!以下の記事で解説しているので是非チェックしてみてください!

PythonでできることPythonでできること
【初心者向け】Pythonでできること7選!サンプルコードをまじえて解説!当サイト【スタビジ】本記事では、Pythonでできることを7つまとめていきます!!Pythonで何ができるのか分からない状況から深い理解にもっていきますよー!実際にPythonでの実装例や勉強方法も取り上げているのでぜひご自分の環境で手を動かして実装してみてくださいね!...

初心者がPythonで勉強すべき基礎・応用

python python

Pythonで出来ることはたくさんあるのですが、その分初心者にとっては何から手を付けようか迷うかと思います。

そのため、まずは自分がPythonを使って何をしたいか明確にしておくと良いです。

もし詳しくPythonで出来ることに具体的なイメージをつかみたい!という方は手前味噌ですが以下の僕の書籍で小説形式で分かりやすく解説していますので是非チェックしてみてください!

ストーリー形式でPythonを使ってどんなことができるかまとめていますので、最初にこの本に目を通していただけると学習がスムーズに進むかと思います。

価格は300円ちょっとですし、Kindle unlimitedであれば無料で読めるのでぜひチェックしてみてくださいね!

概要を掴んだ後、実際に手を動かすパートでは、僕自身が講師を務めている以下の講座で色んな出来ることを実装しているのでよければ見てみてください。

この記事ではPythonを勉強する中でこれだけはおさえておきたい内容を基礎編と応用編に分けてまとめていきます!

Pythonを勉強する内容Pythonを勉強する内容

勉強のスケジュールは以下を目安にすることをおすすめします。

最初の1ヶ月でPythonの基礎を学んで、その後Pythonで出来ることを一つずつ習得していきましょう!

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

【基礎編】勉強すべき基本要素

ここでは何を作るにしろ共通して習得しておいた方が良い基礎要素をまとめていきます。

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

CodingCoding

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

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

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

理論を学ぶのは書籍をオススメしているのですが、Pythonの勉強には書籍はおすすめしません。

基礎文法の習得にはPyQというオンライン学習サービスを利用しましょう!

【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当サイト【スタビジ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!...

基本的な文法から勉強することができPythonに特化しているのでクオリティが高い!価格は3000円/月なので書籍1冊ほどのお値段です!

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

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

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

PyQ インターフェイスPyQ インターフェイス

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

関数・クラスが作れる

Data TrendsData Trends

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

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

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

ここのフェイズでもPyQで学習してきましょう!

チームで開発する上でのクラスや関数・モジュールの扱い方に関してここまで詳しく解説している教材は見たことないです。

データ解析では関数・クラスは一見いらなそうですが、オートメーションに組み込む際などは必要になってきます。

【応用編】Pythonで出来ること

ここまでは、基本的にPythonを使用する上で誰しもある程度必要になる基礎要素をお伝えしてきました。

ここからは、自分がPythonを使ってやりたいことを明確にしてどれかつまみ食い的に勉強して大丈夫な領域です。

まあ色々出来た方がPythonを使用する意味は高まるのでなるべく色々できるようになることをオススメします。

ロボたんロボたん
ロボたん
出来ることの幅が広くてどのように勉強すればよいか迷っちゃいそうだなー・・・
ウマたんウマたん
ウマたん
出来ることを実際に見ていくから参考にしてぜひ自分の目指す姿を明確にしてね!

データ解析が出来る(機械学習ライブラリが使いこなせる)

stories pcstories pc

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

手前味噌ですが、データ解析に関しては僕自身が作っているUdemyコースがオススメです!

このコースは、なかなか勉強する時間がないという方に向けてコンパクトに分かりやすく必要最低限の時間で重要なエッセンスを学び取れるように作成しています。

アニメーションを使った概要編ハンズオン形式で進む実践編に分かれており、概要編ではYoutubeの内容をより体系的にデータ分析・機械学習導入の文脈でまとめています。

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

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

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

【初心者必見】統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!...
機械学習独学勉強ロードマップ機械学習独学勉強ロードマップ
【5分で分かる】機械学習の独学勉強ロードマップを徹底的にまとめていく!当サイト【スタビジ】の本記事では、機械学習の独学勉強ロードマップについて徹底的にまとめていきます。機械学習をいきなり理論からしっかり勉強しようとすると挫折しかねません。そこで、この記事ではなるべく挫折しないロードマップをお伝えしてきますよ!...

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

テックアカデミーは、なかなかモチベーションが保てない人におすすめ!

パーソナルメンターが寄り添ってくれるので挫折せず学習を進めやすいです。

体験記事を挙げているので参考にしてみてください!

【体験談】テックアカデミー評判は?3か月本気受講してみたので徹底レビュー!当ブログ【スタビジ】では、様々なプログラミングスクールの中からテックアカデミーのメリット・デメリット・評判について3か月の体験談をもとに赤裸々にレビューしていきます。...
\今すぐ試す/Pythonコースを見てみる

ディープラーニングの勉強方法については以下の記事でも詳しくまとめています!

【初心者向け】ディープラーニングの勉強ロードマップまとめ!当サイト【スタビジ】本記事では、ディープラーニングの学習方法について詳しくまとめていきます!ディープラーニングは難しいと思われがちですが、アルゴリズムは意外とシンプルで実装自体も非常に簡単なんです!Pythonでの実装もおこなっていきますよー!...

スクレイピングが出来る

Visual dataVisual data

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

スクレイピングに関してはUdemyの以下の講座がおすすめ!

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

ウマたんウマたん
ウマたん
スクレイピングが出来ると幅が広がるから是非マスターして欲しい!

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

正直HTML・CSSを0から書ける必要はありません。

クロームのディベロッパーツールを使ってWebブラウザを見ながら構造を勉強するとよいでしょう!

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

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

Kindle版しかないみたい。

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

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

APIを利用できる

Mobile MarketingMobile Marketing

世の中にはたくさんのサービスが提供してくれているAPIが存在します。

APIを利用することで自分で0から作り込まなくても様々なことができるんです!

APIをPythonで利用する方法については以下の記事で詳しく解説していますので是非チェックしてみてください!

PythonのAPIを利用PythonのAPIを利用
【5分で分かる】Pythonを使って様々なサービスのAPIを利用してみよう!当サイト【スタビジ】の本記事では、Pythonを使ってSlackやGoogleのAPIを利用していきます!APIを利用することで非常に様々なことができるので是非試してみましょう!APIを使えるようになると幅が広がりますよ!...

データベースを操作できる

Site StatsSite Stats

Sqlite3というライブラリを使用すればSQLと同様なカタチでデータベース操作を行うことができます。

もちろんSQLの記法が分かっていないといけないので以下の記事も参考にしてみてください。

SQLSQL
SQLを最速でマスターできる勉強方法とオススメ本・サイト当サイト【スタビジ】の本記事では、SQLを勉強するのにオススメな本と勉強法についてまとめていきます!SQLはデータサイエンスの基本であり必ずマスターしておかなくてはいけない言語です。早い段階から手を動かすことで理解が深まりますよー!...

Webアプリケーションを開発できる

StoriesStories

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

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

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

PythonでWebアプリケーションを開発するなら以下のUdemy講座がオススメ!

Flask: 【実践】ビジネスケースとつなげてPythonで出来ること5つを学べる3日間集中コース
→楽天の在庫情報をスクレイピングしてそれをAPIを使ってSlackに通知するプログラムをFlaskでWebアプリケーション化していきます

Flaskは軽量で簡易的なWebアプリケーションを開発するのにオススメですが、本格的なWebアプリケーションを実装するのであればDjangoがオススメです。

Django 学習Django 学習
Djangoの学習におすすめのサイトと勉強を進める上での注意点 こんにちは! データサイエンティストのウマたん(@statistics1012)です! Pythonを使ってWebア...

FlaskとDjangoの違いは以下の記事でまとめています!

Flask DjangoFlask Django
Flask vs Django!PythonのWebアプリケーションフレームワークを徹底比較!当サイト【スタビジ】の本記事では、PythonのWebアプリケーションフレームワークである「Flask」と「Django」の違いを徹底的に比較していきます!なんとなーく分かっているようで分からない2つのフレームワークの違いをこの機会にしっかりおさえておきましょう!...

また、PythonでのWebアプリケーション開発について詳しくは以下の記事でまとめていますよー!

Webアプリ開発Webアプリ開発
【入門初心者向け】PythonでWebアプリを作ってみた!開発方法徹底解説!当サイト【スタビジ】の本記事では、PythonのWebアプリケーションフレームワークを用いてWebアプリを開発していく方法を徹底解説していきます。実際にDjangoでの実装とFlaskでの実装をおこなっていったあと、勉強法についても見ていきましょう!...

初心者がPythonを習得するための勉強課題

CodingCoding

先ほどのPython習得におけるいくつかの要素。

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

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

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

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

今回作っていくのは、

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

です。

Python テキストPython テキスト

URLを入れると・・・・

Python テキストPython テキスト

類似度が算出されます!

まさにこれを作れば、先ほどの様々な応用要素が習得でき・・・そう・・・?

ガツンとコードだけ先に載せちゃいます。

PythonファイルとHTMLファイルを作成していきます。

ロボたんロボたん
ロボたん
な、何が何だか、、、

いきなり長ったらしいコードが現れましたが安心してください。

順番に見ていきましょう!

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

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

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

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

PCPC
【初心者向け】Pythonのbeautifulsoupでスクレイピングを実装してみよう!当サイト【スタビジ】の本記事では、初心者向けにPythonでスクレイピングを行う上での注意点や実装方法そして勉強方法についてまとめていきます!スクレイピングは比較的カンタンに実装できますが、奥が深く他の知識と組み合わせることで高いシナジーが見込める分野です。...

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

#スクレイピングして文書加工
class Scr():
    def __init__(self, urls):
        self.urls=urls
#スクレイピング
    def geturl(self):
        all_text=[]
        for url in self.urls:
            r=requests.get(url)
            c=r.content
            soup=BeautifulSoup(c,"html.parser")
            article1_content=soup.find_all("p")
            temp=[]
            for con in article1_content:
                out=con.text
                temp.append(out)
            text=''.join(temp)
            all_text.append(text)
            sleep(1)
        return all_text

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

article1_content=soup.find_all(“p”)でpタグを指定して抽出しています。

ここを変えれば別のタグの中身を抽出することが可能です。

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

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

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

Mecab 形態素解析Mecab 形態素解析
Pythonで文書類似度算出!MeCabで形態素解析後にTf-idfとCos類似度を使ってみよう当サイト【スタビジ】の本記事では、形態素解析器であるMeCabとPythonを用いて形態素解析を行いその後Tf-idfとCos類似度を使い最終的に文章の類似度を算出していきます。また、文章の著者が誰なのかをMeCabとLight gbmを用いて予測していきます。非常に簡単に実装できるかつ応用度が高いです!自然言語処理の世界に入るきっかけにしてくださいね!...

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

#メカブで形態素解析
def mplg(article):
    word_list = ""
    m=MeCab.Tagger()
    m1=m.parse(article)
    for row in m1.split("n"):
        word =row.split("t")[0]#タブ区切りになっている1つ目を取り出す。ここには形態素が格納されている
        if word == "EOS":
            break
        else:
            pos = row.split("t")[1]#タブ区切りになっている2つ目を取り出す。ここには品詞が格納されている
            slice = pos[:2]
            if slice == "名詞":
                word_list = word_list +" "+ word
    return word_list

#文書類似度計算
class CalCos():
    def __init__(self,word_list):
        self.word=word_list
#tf-idf&cos類似度で文書類似度算出
    def tfidf(self):
        docs = np.array(self.word)#Numpyの配列に変換する
        #単語を配列ベクトル化して、TF-IDFを計算する
        vecs = TfidfVectorizer(
                    token_pattern=u'(?u)bw+b'#文字列長が 1 の単語を処理対象に含めることを意味します。
                    ).fit_transform(docs)
        vecs = vecs.toarray()
        return vecs

    def cossim(self,v1,v2):
        return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))

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

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

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

Pythonでデータベースを操作する

続いてはPythonを使ってデータベースを操作していきます。

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

PythonのSqlite3を使ってデータベースを操作する方法を見ていこう!当サイト【スタビジ】の本記事では、PythonのSqlite3を使ってデータベース操作をおこなっていきます。PythonでSQL扱えると便利!もちろんPythonだけでなくSQLの知識も必要になるので注意してくださいねー!...

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

class Db():
    def __init__(self,dbname):
        self.db=dbname

    def db_input(self,article):
        #値をデータベースに格納
        conn=sqlite3.connect(self.db)
        c = conn.cursor()
        # executeメソッドでSQL文を実行する
        create_table = '''DROP TABLE IF EXISTS article_match;
                        create table article_match (text_1 verchar,text_2 verchar,match_rate double)'''
        c.executescript(create_table)
        # SQL文に値をセットする場合は,Pythonのformatメソッドなどは使わずに,
        # セットしたい場所に?を記述し,executeメソッドの第2引数に?に当てはめる値を
        # タプルで渡す.
        sql = 'insert into article_match (text_1, text_2, match_rate) values (?,?,?)'
        c.execute(sql, article)
        conn.commit()
        c.close()
        conn.close()

    def db_output(self):
        #データベースから値を抽出
        conn=sqlite3.connect(self.db)
        c = conn.cursor()
        select_sql = 'select * from article_match'
        c.execute(select_sql)
        match_rate=c.fetchone()
        conn.commit()
        c.close()
        conn.close()
        return match_rate

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

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

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

こちらの記事をはじめに読んでいただくと理解が進みやすいと思います。

有意差を算出してくれるWebアプリケーションを作成しています。

macとsurfacemacとsurface
Flaskでできることを確認しながら簡単なWebアプリを作ってみよう!当サイト【スタビジ】の本記事では、Pythonの軽量WebアプリケーションフレームワークであるFlaskを使って簡単なWebアプリケーションを作成していきたいと思います。Pythonを開発言語としても使えるようになると、幅が広がりますよー!...

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

/* ローディングGIF */
  #loading {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0,0,0,.5);
  background-image: url(../static/images/325-88.gif);
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-position: center center;
  background-size: 50px 50px;
  }
$.ajax({
        type:'POST',
        url:'/output',
        data:textData,
        contentType:'application/json',
        //リクエストが完了するまで実行される
        beforeSend: function(){
          $('#loading').removeClass('hide');
          },
        // 非同期通信が成功したら実行される
        success:function(data){
          $('#loading').addClass('hide');
          var result = JSON.parse(data.ResultSet).result;
          $("#match1").text("類似度は"+result+"%です");
        }
      });

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

nc = Flask(__name__)
bootstrap = Bootstrap(nc)

@nc.route("/")
def check():
    return render_template('sr_all.html')

@nc.route('/output', methods=['POST'])
def output():
    #json形式でURLを受け取る
    url1 = request.json['url1']
    url2 = request.json['url2']

    word_list=[]
    url=[url1,url2]
    sc=Scr(url)
    texts=sc.geturl()
    for text in texts:
        word_list.append(mplg(text))

    wl=CalCos(word_list)
    vecs=wl.tfidf()
    match_rate=wl.cossim(vecs[1],vecs[0])
    #DB格納
    article = (url[0], url[1], match_rate)
    dbname = 'article.db'
    db=Db(dbname)
    db.db_input(article)
    match_rate=db.db_output()

    return_data = {"result":round(match_rate[2]*100,1)}
    return jsonify(ResultSet=json.dumps(return_data))

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

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

これで終了!

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

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

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

おまけですが、最後に作ったWebアプリケーションをHerokuというサービスでデプロイするステップを記事にしています!

herokuheroku
Herokuを使ってPythonのflaskで作ったアプリケーションをデプロイする方法と注意点!当サイト【スタビジ】の本記事では、PythonのWebフレームワークであるFlaskを使って作成したWebアプリケーションをインターネット上に公開するためにHerokuというサービスを使ってデプロイしていきます。Herokuを使えば簡単にWebアプリケーションを公開することが可能なんです。...

Webアプリケーションを作ったら色んな人に見てもらいたいですよね!

そんな時はぜひHerokuを使ってみてください!

昔はHerokuには無料プランがあったのですが、現在は無料プランがなくなってしまっています。もし簡易的にアプリを作って共有したい場合はngrokというツールを使うとよいでしょう!

以下にGoogle Colabにてngrokを使って類似度アプリを実行するコードを置いていきますので参考にしてみてください。

途中のAuthtokenは自分でngrokに登録して取得し記載する必要があります。

https://colab.research.google.com/drive/1ZkmyE6_2vQttOVQKfmpiDwb7vUtQjuLO?usp=sharing

ngrokに関しては以下の記事をチェックしてみてください!

ngrokngrok
ngrokの使い方解説!Pythonで作ったアプリを外部公開してみよう!当サイト【スタビジ】の本記事では、ngrokの使い方を解説していきます!ngrokを使うとローカル環境で作成したWebアプリをグローバルに公開できる便利ツールです!ぜひ使い方をマスターしていきましょう!...

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

ウマたんウマたん
ウマたん
これが出来ればPythonの勉強は一通り出来たことになるよ!

Python勉強におすすめのサービス

最後にこれらのPython勉強を進めるおすすめサイト・サービスを紹介していきます。

ある程度、本で学ぶこともできますが正直しっかり学ぶならサービスを利用した方が効率が良いです。

何回か登場しているサービスもありますが、最後にまとめておきましょう!

サービス名オススメ度価格の安さサポート体制どんな人におすすめ?公式サイト
テックアカデミーパーソナルメンターが欲しいテックアカデミー
Udemy特定の領域を深堀りして独学で学習したいUdemy
PyQ環境構築せずとりあえずPythonを触ってみたいPyQ
スタアカデータサイエンスをガッツリ学ぶならスタアカ

PyQ

PyQ トップページPyQ トップページ公式サイト:https://pyq.jp

【価格】3040円/月~
【オススメ度】

PyQはPythonに特化したサービスです。

完全オンライン学習サービスで、定額制で全ての講座を受講することができます。

実際に手を動かすことをかなり重視しているので、楽しくモチベーションを保ちながら進めることが可能です。

インターフェイスが使いやすくてサクサク進められます。

PyQ インターフェイスPyQ インターフェイス

プランはプロに質問ができて過去の質問も閲覧できるスタンダードプランと講座の受講だけできるライトプランがあります。

不安ならスタンダードプランをオススメしますが、ライトプランでも問題なく進められます。

正直Pythonを素早く身に付けて実装してみたい!かつお金も安く済ませたい!ならPyQ一択です。

ただ完全自力なので、モチベーションが続かないと厳しいです。

以下の記事でPyQの体験を基に詳しくレビューしています。

【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当サイト【スタビジ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!...

Udemy

UdemyUdemy

公式サイト:https://www.udemy.com/

【価格】1200円~(コース売り切り型)
【オススメ度】

Udemyは様々な専門知識が学べる世界最大の教育プラットフォーム!

Pythonに特化したプラットフォームではありませんが、Python関連の講座も大量にあります。

実際にPython関連のコースを20個以上受講して比較した記事を以下にまとめています!

Udemy PythonUdemy Python
【20コース以上受講】UdemyのおすすめPythonコースを徹底レビュー!当サイト【スタビジ】の本記事では、世界最大の教育プラットフォーム「Udemy」のPython講座を20コース以上受講した僕がそれぞれのコースを徹底的にレビューしていきます!ぜひムダな時間を費やさず目的に沿った効率の良いPython学習を進めてくださいね!...

ちなみに僕自身がデータ分析×PythonやPythonで出来ることを網羅した講座を公開していますので是非こちらもチェックしてみてください!

Udemyでは、好きな講座を売り切り価格で購入することができるので自分のレベルに合った講座だけをつまみ食いして勉強することが可能です!

また講座別の評価も明記してあるので、選びやすいです!

自分のレベルややりたいことにあわせて受講することが可能なのがいいですねー!

僕自身が講師のUdemy講座に関しては以下の記事で限定クーポン(最大94%OFF)を配布しているのでチェックしてみてください!

\30日以内なら返金無料/UdemyのPythonコースを見てみる

テックアカデミー

テックアカデミートップページテックアカデミートップページ

公式サイト:https://techacademy.jp/

【価格】163,900円~
【オススメ度】

テックアカデミーは、オンライン学習ですが現役エンジニアのパーソナルメンターがつくので分からないところも解消しやすく書籍などで進めるよりは圧倒的に進みが早いです。

テックアカデミー 価格表テックアカデミー 価格表

価格が高い分お尻に火が付きます。

メンターのレベルは非常に高いので自分のやる気さえあれば教材の範囲を超えた内容をガツガツ学ぶことが可能!

僕自身3か月のコースを1か月で終わらせて、応用をガツガツ学んでました。

やる気があって良い意味でメンターを使い倒せる自信があるのであればテックアカデミーは非常にオススメです!

※メンターは変更を願い出れば変えられます。

Python関連のコースは以下の3つがあります。

Pythonが全くはじめての場合はPythonコースを受講して、その後に画像認識などAIの活用まで踏み込みたいならAIコース、機械学習などを使った予測やデータ分析を深めたいならデータサイエンスコースに移りましょう!

複数コースを並行して学習するセットパックもあります。

テックアカデミーについては 以下の記事で体験談をまとめていますので是非チェックしてみてください!

【体験談】テックアカデミー評判は?3か月本気受講してみたので徹底レビュー!当ブログ【スタビジ】では、様々なプログラミングスクールの中からテックアカデミーのメリット・デメリット・評判について3か月の体験談をもとに赤裸々にレビューしていきます。...

無料体験は事前に出来るので不安な方は試してみることをオススメします!

スタアカ

スタアカトップスタアカトップ公式サイト:https://toukei-lab.com/achademy/

【価格】ライトプラン:1280円/月
プレミアムプラン:149,800円
【オススメ度】
【サポート体制】
【受講形式】オンライン形式
【学習範囲】データサイエンスを網羅的に学ぶ
実践的なビジネスフレームワークを学ぶ
SQLとPythonを組みあわせて実データを使った様々なワークを行う
マーケティングの実行プラン策定
マーケティングとデータ分析の掛け合わせで集客マネタイズ

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!

当メディアが運営するスクールです。

24時間以内の質問対応と現役データサイエンティストによる複数回のメンタリングを実施します!

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解などもあわせて学べるボリューム満点のコースになっています!

Pythonが初めての人でも学べるようなカリキュラムしておりますので是非チェックしてみてください!

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったり・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践してもらったりする盛りだくさんの内容になってます!

・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析
・世界最大手小売企業のウォルマートの実データを用いた需要予測
・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定
・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践して稼ぐ

ここで紹介した意外にもPythonを勉強できるスクールやサイトはあります。

以下の記事でまとめていますので是非こちらも参考にしてみてください!

Python おすすめ スクールPython おすすめ スクール
【2022年最新】Python学習に最適なオンラインスクールおすすめ6選当サイト【スタビジ】の本記事では、実際にスクールに通ったりWebサービスを利用したりしながらPythonを習得した僕がおすすめするオンラインメインのスクールを紹介していきます。正直Python学習スクールは乱立し過ぎていてどれを選べばよいのか難しい!そんな人にぜひ読んで欲しいです...
Python サイトPython サイト
【入門者向け】Python学習サイトおすすめ9選を徹底比較!当サイト【スタビジ】の本記事では、入門者向けにPythonを効率よく学習するサイトを紹介していきます!複数のサイトがありますのでメリット・デメリットについて見ながら点数付けをしていきます。ぜひ自分に合ったPython学習サイトを見つける上での参考にしてください!...

初心者がPython勉強を挫折しないためには

Feeling badFeeling bad

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

初心者にとっては最初はわからないことだらけで不安なことが多いと思います。

ロボたんロボたん
ロボたん
確かにプログラミングって結局勉強し始めても挫折しちゃうことが多いんだよ・・・
ウマたんウマたん
ウマたん
分かる分かる!ちょっとだけTipsを伝えておくよ!

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

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

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

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

仮にPythonでできることのイメージを掴むためにはぜひ以下の書籍に目を通してみてください!

created by Rinker
¥361
(2024/12/22 17:40:59時点 Amazon調べ-詳細)

手前味噌で恐縮なのですが、僕自身が書籍を出版しています。

Pythonで出来ることやデータサイエンスの業務イメージをつけてもらうのに最適だと思います。

ストーリー形式で分かりやすく書いていますので、ぜひ最初に目を通していただけると具体的な目標のイメージが湧くと思います。

価格は300円ちょっとですし、Kindle unlimitedであれば無料で読めるのでぜひチェックしてみてくださいね!

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

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

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

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

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

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

PCPC
【これだけ!】プログラミングを挫折しない!たった3つの方法当サイト【スタビジ】の本記事では、プログラミングを挫折しないで独学で勉強し続けられる方法についてまとめていきます。プログラミングを挫折し続けてきたからこそ伝えられる価値があると思い、今までの経験を基に徹底的にお話しいていきますよー!...

Python勉強でよくあるFAQ

Social strategySocial strategy

最後にいままでの内容を簡単にPython勉強でよくあるFAQとしてまとめておきましょう!

Pythonを勉強するのにどんなサービスがあるの?

独学ならUdemyPyQがおすすめで自力はしんどいならプログラミングスクールがおすすめです

Pythonの勉強を挫折しないようにするためには?

なぜPythonを勉強したいのか、Pythonを習得して何がやりたいのか、目的を明確にしておくことがまず大事です。「Python勉強を挫折しないためには

Pythonでどんなことができるの?

データ分析はもちろんのこと、スクレイピングやWebアプリケーション開発もできます。「Pythonで勉強すべき基礎要素・応用

初心者のPythonの勉強法 まとめ

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

なかなか続かないなー強制力が欲しいなーという人はテックアカデミースタアカなどのプログラミングスクールに挑戦してみることをオススメします!

Python おすすめ スクールPython おすすめ スクール
【2022年最新】Python学習に最適なオンラインスクールおすすめ6選当サイト【スタビジ】の本記事では、実際にスクールに通ったりWebサービスを利用したりしながらPythonを習得した僕がおすすめするオンラインメインのスクールを紹介していきます。正直Python学習スクールは乱立し過ぎていてどれを選べばよいのか難しい!そんな人にぜひ読んで欲しいです...

どれを選ぶかは人それぞれですが、必ずPythonを使って何を達成したいのかは念頭においておくようにしましょう!

サービス名オススメ度価格の安さサポート体制どんな人におすすめ?公式サイト
テックアカデミーパーソナルメンターが欲しいテックアカデミー
Udemy特定の領域を深堀りして独学で学習したいUdemy
PyQ環境構築せずとりあえずPythonを触ってみたいPyQ
スタアカデータサイエンスをガッツリ学ぶならスタアカ
ロボたんロボたん
ロボたん
なんだかワクワクしてきたよ!!Pythonを勉強したい!
ウマたんウマたん
ウマたん
是非Pythonをマスターしようー!

Pythonを習得しつつも統計学・機械学習・ディープラーニング、そしてデータサイエンティストになるための勉強は続けていきましょう!

ぜひ以下の記事を参考にしてみてくださいね!

【初心者必見】統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!...
機械学習機械学習
【入門】機械学習のアルゴリズム・手法をPythonとRの実装と一緒に5分で解説!当サイト【スタビジ】の本記事では、入門者向けに機械学習についてカンタンにまとめていきます。最終的にはどのように機械学習を学んでいけばよいかも見ていきます。細かい手法の実装もPython/Rを用いておこなっていくので適宜参考にしてみてください。...
【初心者向け】ディープラーニングの勉強ロードマップまとめ!当サイト【スタビジ】本記事では、ディープラーニングの学習方法について詳しくまとめていきます!ディープラーニングは難しいと思われがちですが、アルゴリズムは意外とシンプルで実装自体も非常に簡単なんです!Pythonでの実装もおこなっていきますよー!...
【5分で分かる】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。...
本記事で紹介したサービス

Udemy
PyQ
テックアカデミー
スタアカ
Nishika

スタビジアカデミーでデータサイエンスをさらに深く学ぼう!

スタアカサービスバナースタアカサービスバナースタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。

プレミアムプランでは私がマンツーマンで伴走させていただきます!ご受講お待ちしております!

スタビジアカデミーはこちら