すなぶろ

フリーランスのWebエンジニアがPythonを中心にプログラミング情報を紹介していきます。Rubyも書きますが、今はPython勉強中。一緒にPythonista目指しましょう!

IPythonにモジュールを自動リロードしてほしいとき

IPython上でモジュールをimportする。 コードスニペットを書いてテストしてみる。 エディタでモジュールを書き直す。 反映させるにはIPythonごと再起動する必要がある。 「なんで?」ってなる。 では、自動化を始めましょう。

ディープラーニングするPython製の将棋AIを見つけたら2 years ago

AlphaGoってどのくらいの強さなんでしょう。とりあえずべらぼうに強いとは聞いたんですが、囲碁にまったく明るくない私にとっては、ドラゴンボールにおける「宇宙一強い」くらい現実味のないふわふわした印象です。 そんな私にもわかることはあって、なんで…

AIが人類を超える日は来るの?→もう来てるよ

先日買い物に行きました。ごま油が欲しかったのですが、目の前にあったのは 298円のごま油(250g、セール中) 378円のごま油(340g、通常価格) の2つ。私は安ければ何でも良いのですが、オトクなのはどちらだ?と考えたとき、暗算が苦手なのですぐに答えが…

unmoをsetup.pyを使ってパッケージにしてみた

Pythonのパッケージと言えばsetup.pyです。依存関係も解決してくれるし、必要ならwheelを使ったプリビルトパッケージも含めることができます。 でも書くのが面倒くさいと思ってずっと放置していたんですが、先日知人にUnmoを試してもらおうと思ったら思いの…

Pythonのテストで悩むあなたへ送るnoseフレームワーク

nose = unittest + coverage + doctest + and more! 前回はデコレータを使ってコードのインデントを浅くし、ボイラープレートとなっていた繰り返し処理をひとつにまとめました。しかしその際、「挙動が変わってしまったらどうしよう」と怯えながら書き換えて…

Pythonのデコレータをイチから展開・解説してみた 【あれ? ただのクロージャじゃん】編

前回のコードは思い返すだけでも寒気がするほどひどいものでした。そこで今回はPython固有の機能であるデコレータを使って、ちょっとPythonっぽいコードに変更します。 sandmark.hateblo.jp このデコレータ、LispやHaskellのように関数や処理を頻繁に渡す言…

Radonで始めるコードリファクタリング 【ランクAよりもPython力をつけろ】編

スマートPythonプログラミング、引き続き読んでます。 sandmark.hateblo.jp 読み進めていると、Radonという循環的複雑度を調査するパッケージが紹介されていたので、今回はそれを用いてsandmark/unmoのdictionary.pyのリファクタリングに挑戦します。 先に言…

Python初心者が中級者になるためのスタートダッシュ 【ググるのは時間の無駄】編

皆さん今日もググってますか? 私のようにRubyから転向したPython初心者にとっては、Googleは神のようなサービスです。「Rubyではこう書けたけど、Pythonではどう書けばいいの?」という質問に、Google先生は(基本的には)誠実に応えてくれます。 しかし、…

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

前回はマルコフ連鎖で学習・応答するモジュールを作りました。それなりに複雑な処理が含まれていましたが、設計時点で仕様を決めておき、それをコメントを含めたコードにすることで、メンテナンス性を保っています。 sandmark.hateblo.jp 今回はmarkov.pyをD…

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

前回は「マルコフ連鎖とはなんぞや」に始まり、それをプログラムの設計に落とし込むところまで行きました。今回はいよいよ実装に移ります。 sandmark.hateblo.jp Python的には『オブジェクトのコピー』『オブジェクトの永続化』を扱っていきます。今回のソー…

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

このシリーズも佳境となり、ついにAIが初めての自分の言葉を発しました。人間の赤ちゃんだって親の真似をするのですから、前回は猿真似をする猿から一気に人間の赤ちゃんまで進化したと言えます。 sandmark.hateblo.jp 今回はさらに踏み込んで、「ゼロから言…

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

前回は形態素解析による学習と、名詞に関連した文章を返すPatternResponderを追加しました。キーワードで連想的に応答を生成させることで、そこそこ文脈を保った会話が実現した気がします。とはいえ一文をまるごと保存しているため、オウム返しされている感…

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

前回はリスト内包表記と正規表現を使って新しい思考エンジンを作りました。しかし依然として辞書はユーザーが手作業で作らなければならず、チャットをしても新しい発見があるとは思えません。 sandmark.hateblo.jp 今回はDictionaryに学習機能を組み込みます…

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

前回はAIに思考エンジンを追加しました。まだまだ会話にはなりませんが、継承を使ってコードを簡潔に保つことで、機能を追加しやすい状況にしています。今回のソースはこちら。 sandmark.hateblo.jp チャットボットっぽくなってきた? 今回のテーマは『Respo…

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

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

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

プログラムと会話(?)しよう! 昨今、機械学習やディープラーニングといったキーワードで注目を集めているPython。簡潔な文法から初心者向けの学習目的にも採用されています。 とはいえ、入門書を読んだだけではよくわからないという人も多いはず。「何を…

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

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。 欲しかった機能はこんな感じ。 モデルデータのCRUD モデルの特定フ…

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

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。 欲しかった機能はこんな感じ。 モデルデータのCRUD モデルの特定フ…

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

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。 欲しかった機能はこんな感じ。 モデルデータのCRUD モデルの特定フ…

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

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。 欲しかった機能はこんな感じ。 モデルデータのCRUD モデルの特定フ…

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

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。 欲しかった機能はこんな感じ。 モデルデータのCRUD モデルの特定フ…

django-rest-frameworkのチュートリアルを超意訳してみた。第02回「リクエストとレスポンス」

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。 欲しかった機能はこんな感じ。 モデルデータのCRUD モデルの特定フ…

django-rest-frameworkのチュートリアルを超意訳してみた。第01回「シリアライズ」

このあいだ自分がプライベートで運営している動画サイトにAPIが欲しかったので、django-rest-frameworkを使ってみました。日本語の資料が少なかったので、布教目的でここに置いておきます。 欲しかった機能はこんな感じ。 モデルデータのCRUD モデルの特定フ…

火の神『ヒノカグツチ』ってどんな人? インタビュー形式でまとめてみた

ゲームやアニメなどに登場するカグツチ。パズドラではキャラクターとして、白猫プロジェクトでは召喚獣付きの武器として登場します。様々なゲームに『カグツチ』の名を冠したキャラクターが登場していますが、共通点はすべて火を操るということ。『ヒノカグ…

まずはごあいさつ

「腰痛持ちの半端者エンジニアが真人間になるのはどんなとき? 答え ―― ネットでそれらしい言葉を呟くとき」 sandmark 自己紹介 こんにちは、sandmarkです。フリーランスのWebエンジニアであり、フリーランスの翻訳家であり、趣味でピアノを嗜み、パイプをふ…