すなぶろ

Pythonistaを目指しているつもりが、Hyのおかげで無事脱線。Clojurian目指すことになりました。

Python初心者に送る「人工知能の作り方」 Part2

前回はAIを作るにあたって、全体の骨組みとインターフェイスを作ってみました。結果として「○○ってなに?」としか発言しない、とてもAIとは呼べないものになっていますが、今回はもう少し反応を改善してみます。

sandmark.hateblo.jp

前回のおさらい:

  • Responderクラス
    • 入力にもとづいて応答を返す思考エンジン。
  • Unmoクラス
    • 人工無脳コア。
    • 思考エンジンResponderを持ち、ユーザーと思考エンジンを接続する。
  • フロントエンド
    • とりあえずコンソールアプリケーション。
    • ユーザーからの入力を受け取り、Unmoオブジェクトへ渡し、応答結果を表示する。

しかし改善するといっても、どうやって行えばいいのでしょうか。また、Responder, Unmo, インターフェイスがひとつのmain.pyに記述されているのもいただけません。ひとつひとつ見ていきましょう。

f:id:sandmark:20171007192138j:plain
改善(?)されたAIとの会話

今回のソースはsandmark/unmoに置いてあります。

続きを読む

Python初心者に送る「人工知能の作り方」

f:id:sandmark:20171007025609j:plain
プログラムと会話(?)しよう!

昨今、機械学習ディープラーニングといったキーワードで注目を集めているPython。簡潔な文法から初心者向けの学習目的にも採用されています。

とはいえ、入門書を読んだだけではよくわからないという人も多いはず。「何をどうやって作ればいいの?」「文法はわかったけど書き方がわからない」という疑問は初心者にありがちで、「英語の文法はわかっても読めない・書けない」のと似ています。解決方法はズバリ、人と会話したり、手を動かしてみることです。

この記事ではPython初心者、ひいてはプログラミング初心者に「チャットbotを作る」という目標を設定してもらって、具体的な作り方や設計方法を見てもらいます。Microsoftりんなほど高度なものではありませんが、プログラムとチャットする楽しさを感じながら、プログラミングテクニックを身に着けてもらえればと思います(今回扱うAIは機械学習とは無関係です)。

初めて'Hello, World!'を出力させたときの感動をもう一度味わってください。

今回の目標は「とりあえずプログラムと会話する」です。最初はバカバカしいくらい退屈ですが、徐々に成長させていくのでゆっくりやっていきましょう。

続きを読む

django-rest-frameworkのチュートリアルを超意訳してみた。第07回「スキーマとクライアントライブラリ」

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。

欲しかった機能はこんな感じ。

  • モデルデータのCRUD
  • モデルの特定フィールドの検索
  • 多対多(ManyToMany)でよろしくやる
  • 登録ユーザのみ許可する認証処理
  • pythonスクリプトからAPIを使う(おまけ)

可能なのかどうか半信半疑で使ってみましたが、チュートリアルに全部書いてあったので参考になれば。

今回はTutorial 7: Schemas & client libraries(version 3系)の超意訳です。

続きを読む

django-rest-frameworkのチュートリアルを超意訳してみた。第06回「ViewSetとRouter」

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。

欲しかった機能はこんな感じ。

  • モデルデータのCRUD
  • モデルの特定フィールドの検索
  • 多対多(ManyToMany)でよろしくやる
  • 登録ユーザのみ許可する認証処理
  • pythonスクリプトからAPIを使う(おまけ)

可能なのかどうか半信半疑で使ってみましたが、チュートリアルに全部書いてあったので参考になれば。

今回はTutorial 6: ViewSets & Routers(version 3系)の超意訳です。

続きを読む

django-rest-frameworkのチュートリアルを超意訳してみた。第05回「リレーションシップとハイパーリンクAPI」

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。

欲しかった機能はこんな感じ。

  • モデルデータのCRUD
  • モデルの特定フィールドの検索
  • 多対多(ManyToMany)でよろしくやる
  • 登録ユーザのみ許可する認証処理
  • pythonスクリプトからAPIを使う(おまけ)

可能なのかどうか半信半疑で使ってみましたが、チュートリアルに全部書いてあったので参考になれば。

今回はTutorial 5: Relationships & Hyperlinked APIs(version 3系)の超意訳です。

続きを読む

django-rest-frameworkのチュートリアルを超意訳してみた。第04回「認証と許可」

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。

欲しかった機能はこんな感じ。

  • モデルデータのCRUD
  • モデルの特定フィールドの検索
  • 多対多(ManyToMany)でよろしくやる
  • 登録ユーザのみ許可する認証処理
  • pythonスクリプトからAPIを使う(おまけ)

可能なのかどうか半信半疑で使ってみましたが、チュートリアルに全部書いてあったので参考になれば。

今回はTutorial 4: Authentication & Permissions(version 3系)の超意訳です。

続きを読む

django-rest-frameworkのチュートリアルを超意訳してみた。第03回「クラスベースのビュー」

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。

欲しかった機能はこんな感じ。

  • モデルデータのCRUD
  • モデルの特定フィールドの検索
  • 多対多(ManyToMany)でよろしくやる
  • 登録ユーザのみ許可する認証処理
  • pythonスクリプトからAPIを使う(おまけ)

可能なのかどうか半信半疑で使ってみましたが、チュートリアルに全部書いてあったので参考になれば。

今回はTutorial 3: Class-Based Views(version 3系)の超意訳です。

続きを読む