Pythonで人工知能を使ったWebサービスを作ってみます。具体的には、その人がニートかどうかを予測するプログラムです。
今は洗練された機械学習のオープンソースやWebフレームワークが用意されていて、とても簡単に実装できます。初心者の方でも1ヶ月ほど勉強すれば十分出来るようになるのではないでしょうか。
なお今回のWebサイトは、cssなどのデザインが超適当です。。。

順番はこんな感じです。

1.Pythonをインストールする
2.FlaskとWTFormsをインストールする
3.データを用意する
4.予測モデルを実装する
5.予測結果をHTMLに渡すプログラムを実装する
6.結果を表示するHTMLを作成する   

1.Pythonをインストールする

Anacondaを入れます。 
機械学習で必要なライブラリはほぼすべて揃います!

2.FlaskとWTFormsをインストールする

Webアプリ開発に必要なライブラリをインストールします。

Flaskとは、Python用のWebアプリケーションフレームワークです。最低限の機能に絞り込まれているため、利用するまでのハードルがとても低いです。少し開発して試してみる際には最適です。

コマンドラインで以下を叩きます。Flaskが入ります。
conda install flask

また、WTFormsとは、HTMLとデータ送受信するために必要なライブラリです。Flaskには標準でformが入っていませんのでインストールが必要です。WTFormsは、HTMLとサーバ側のPythonプログラムの間でデータを送信してくれます。

コマンドラインで以下を叩きます。WTFormsが入ります。
conda install wtforms

3.データを用意する

残念ながらニートに関するデータを持っていないため、今回は疑似データを利用します。

データの中身は、以下の通りです。
カラム:年齢、性別、学歴、趣味、兄弟の有無、ニート可否

※ファイル名 neet.csv

4.予測モデルを実装する

PythonのScikit-Learnで実装します。
csvデータの読み込みはPandasを使っていますが、モデルの作成と評価は全てScikit-Learnで実装しています。作成したモデルは、joblib関数で保存します。

◆モデル作成のプログラム
※上記のプログラムの内容を理解できない方は、こちらでPythonでAI開発の基礎を確認してもらえると良いかなと思います。

5.予測結果をHTMLに渡すプログラム実装する

4で作ったモデルを呼び出して、HTMLに引き渡すプログラムを作ります。
サーバアプリケーションのPythonからHTMLに予測結果を引き渡す部分で、Flaskを利用します。

◆予測結果をHTMLに渡すプログラム
20行目では、@app.route('/')でルートレコーダ(URL)を指定しています。次の行のindex関数を実行するURLを指定しています。

30-40行目では、HTML画面から入力された人の名前を受け取り、その人の基本情報があるかどうかneet2.csvを探します。
もし基本情報があるならばモデルで予測を行います。ニートと予測された場合「You are NEET!」と表示し、社畜と予測された場合、「You are Company farmer!」というメッセージを表示します。もし基本情報が登録されていない人の場合、「Your name is none (ToT)」というメッセージを表示します。
一応エラーになる可能性を想定し、try~exceptでエラーをキャッチしています。

42行目では、render_template関数で、'neetHello.htmlというHTMLファイルに、 formという変数を渡しています。

6.結果を表示するHTMLを作成する

入力画面であるneet_app.htmlと、出力画面のneetHello.htmlファイルを作成します。

入力画面
予測したい人の名前を入力するテキストフォームを用意します。
<form method=post action="/hello">
  <dl>{{ render_field(form.sayhello) }}</dl>
  <input type=submit value='click' name='submit_btn'>

出力画面 
モデルが予測した結果を、nameでPOSTしたものを表示させます。HTMLファイルの中に、 <div>Hello {{ name }}</div> を入力すれば動きます。


実装は以上です。全てのプログラムが完成すれば、ローカルのWebサーバとして動作できます。コマンドラインから python app1-2.py でプログラムを起動した後、ブラウザで、http://127.0.0.1:5000/と入力してください。

今回もPython機械学習プログラミングを参考に実装しました。大変勉強になりました。
なおこのWebサービスが社会的に価値があるかはかなり疑問です。。。