最近話題の人工知能ですが、その人工知能関連のプログラムで使う言語としてよく名前が挙がるのが「Python」です。
そんな事もあり、弊社でもPythonについて色々調べ始めました。
■環境を作ろう
Pythonはプログラム言語ですが、同時に動作環境でもあります。
昔あったDISK-BASICや、webではよく使われるPHP同様、コンパイルして実行ファイルを作るのではなく、テキストファイルのソースをそのまま1行づつ解釈して動くもの(インタプリタ)だからです。
そのため、動作する環境を作らないといけません。
人工知能用言語のように言われているからと言って、特別な機器は必要ありません。
普通にwindowsパソコンで環境を作れます。
https://www.python.org/ からインストーラをダウンロードして、インストールすると環境が出来上がります。
ちなみに、これでインストールするPythonはwindows用といっても、ウインドウの開く普通のアプリではありません。
コマンドプロンプトで動作するので、まぁ、DOS用ソフトのような感覚で居ればいいでしょう。
なお、私の環境ではパスが長すぎるとか表示が出て、環境変数の追加ができませんでした。
環境変数PATHの指定がないと、コマンドプロンプト上で起動するときに不便なので、インストール後にpythonと打ってみて
「’python’は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
なんて言われたら、PATHにインストール先を追加しましょう。
私がインストールした時は、デフォルトに任せたら
C:\Users\********\AppData\Local\Programs\Python\Python36-32
(******** はユーザー名)
などという、とんでもない所に入りましたが。
(普通は C:\Program Files (x86) とかに入るものですが…)
■サンプルを動かそう
ネット上には検索すれば色々なサンプルが見つかると思います。
また、Python関係の書籍が手元にあれば、それにも掲載されているでしょう。
と言う訳で、とりあず簡単なサンプルが動けば、正常に環境ができたと言えるでしょう。
■ライプラリを追加しよう
Pythonがなぜ人工知能に向いているのか。
色々理由はあるようですが、一番大きなメリットが「人工知能用のライブラリが豊富にある」でしょう。
別にライブラリさえあれば、どんな言語でも(どんなと言っても限度はありますが)問題ないのですが、C#やphp、Javaなどより充実しているので、向いているとされているのでしょう。
で、そのライブラリですが、付属している pip というツールで簡単に追加できます。
コレも私の環境ではpathが通ってないので、パス指定して起動しました。
Python本体はpathを通していましたが、pipはさらにその下のディレクトリに入っているので、通っていなかったのです。
人工知能とは無関係ですが、plotly というライブラリを追加したときは、こんな感じになりました。
C:\Users\********\AppData\Local\Programs\Python\Python36-32\Scripts\pip install plotly
本来なら
pip install plotly
で済みます。
■webで動かそう
Pythonですが、phpと同様にweb用に使うことも出来ます。
ただ、そんなに向いてはいないと思いました。
・phpのようにhtmlとプログラムコードを「混ぜて」記述することはできません。
これは個人的には問題なしです。混在しているのは見難くて好きではないので。
・環境によってはperlよろしく最初に#!でpythonのパスを指定しないといけない。
これはローカルで開発して本番サーバーにアップというやり方をする際に不便極まりないし、ローカルでは動いていたのに本番では動かないという事故の元なので、パスの指定が要らないようなやり方があれば、採用すると良いでしょう。
ちなみに弊社のサイトが使っているサーバーでは不要ですが、ローカル環境では必要でした。
■ライブラリを使ってみよう
さて、環境も出来て、動作確認もできました。ライブラリのインストールも出来たようです。
少なくともインストールではエラーは起きていません。
本当にライブラリが正しく入っているのか確認するためにも、ライプラリを使ったプログラムを動かしてみることにしましょう。
使ったライブラリは「ライプラリを追加しよう」で入れたグラフ用のライブラリである「plotly」です。
人工知能用のライブラリはすぐに使うにはハードルが高いので、今回はグラフ用のを使うことにしました。
今回やってみたのは、最終的に plotly.offline.plot を使ってグラフを表示するhtmlファイルを生成するというものです。
グラフのサンプルをダウンロードする
zipを解凍して、ブラウザで開いてみてください。
コレ、マウスで動かすとぐりぐり動くグラフですが、htmlファイルと言っても、実際に出力されている内容はほとんどjavascriptコードです。
以下のようなPythonのプログラムで生成させました。
ちなみにmathは標準で入っているので、別途ライブラリを入れる必要はありません。
import plotly import math import plotly.graph_objs as go from plotly.graph_objs import * t1 = 1 p1 = 1.6 r1 = 20 r2 = 6 xx = [] yy = [] zz = [] for t1 in range(1,100): xx.append( r1 * math.cos(t1) + r2 * math.cos(p1) * math.cos(t1) ) yy.append( r1 * math.sin(t1) + r2 * math.cos(p1) * math.sin(t1) ) zz.append( r2 * math.sin(p1) ) trace1 = go.Scatter3d( x=xx, y=yy, z=xx, mode='markers', marker=dict( sizemode='diameter', color = 'rgb(255, 0, 0)', colorscale = 'Portland', line=dict(color='rgb(200, 200, 255)'), opacity=0.9, size=2 ) ) data=[trace1] layout=dict(height=700, width=600, title='3d グラフサンプル') fig=dict(data=data, layout=layout) plotly.offline.plot(fig, filename='g3d.html')
与えているデータは適当で手抜きです。
というかプログラム自体も手抜きですが、動作確認だけなら問題ないでしょう。
ちゃんとやればもう少しマシなグラフになると思います。
という訳で、今回はPythonの話題をお送りしました。
なお、どうでもいい話ですが、タイトルと見出しの命名基準は騎士と魔法の世界に行ってしまったプログラマーのコミックス風になっております。