本記事ではPythonのWebアプリケーションフレームワークの一つであるFlaskのblueprintの使い方について紹介します。 blueprintを使うことによって、アプリケーションをblueprint単位で分割できます。 特に規模が大きなアプリケーションほど、blueprintの利用によってアプリケーションを分割することでプログラムを管理しやすくなり、得られるメリットが大きいです。 本記事はFlask-Large-Aplication-Exampleを参考にして、特にblueprintに関する箇所を抽出し、簡素化して自分の理解をまとめたものです。 Flaskのblueprintを使って初めてアプリケーションを実装する人の参考になるような入門記事です。
本記事ではPythonとElasticsearchを使って、日本のレストランに関するデータを使って記事を検索エンジンにbulk APIを使って登録し、検索するまでを紹介する。

個人的にはプログラミングの勉強は写経が一番頭に入る気がする、ということで読んでいた。
気になったところ データに正規分布を仮定したときのナイーブベイズ分類器について。 平均をμ、分散をσ2としたときの正規分布は
p(x;μ,σ2)=1√2πσ2{exp−(x−μ)22σ2}
これのlogをとると、
logp(x;μ,σ2)=log{1√2πσ2{exp−(x−μ)22σ2}} =−12log(2πσ2)−(x−μ)22σ2
ナイーブベイズ分類器の対数尤度関数は、データがK次元ベクトルで表現されていて、それがN個あるとすると、 logL(X,Y;μ,σ)=log(N∏n=1p(xn,yn)) =log(N∏n=1p(yn)p(xn|yn)) =N∑n=1logp(yn)+N∑n=1logp(xn|yn) =N∑n=1logp(yn)+N∑n=1K∑k=1logp(xnk|yn) =N∑n=1logp(yn)+N∑n=1K∑k=1{−12log(2πσ2ynk)−(xnk−μynk)22σ2ynk}