こんばんは。プログラマーのhakatashiです。2ヶ月ぶりですね。普段はpixivコミックやpixivノベルの開発を手伝っていますが、今回もそれとは全く関係ない話をします。 pixiv×機械学習 「機械学習」「深層学習」といった単語がプログラマーの間でも広く囁かれるようになって既に幾年月経とうとしています。ここpixivの開発陣においても、人口に膾炙する機械学習の輝かしい成果に関する話題は尽きることがなく、常に最新のトピックに目を光らせています。 そんな取り組みの一環として、今回は弊社が運営するpixivの小説機能の投稿データで機械学習を行ってみたので、簡単に紹介したいと思います。 ※この記事における「pixiv小説」とは「pixivの小説投稿機能およびそれによってpixivに投稿された小説」を指し、「pixivノベル」とは異なります。 word2vecとは 自然言語処理における機械学習
以前、PyAutoGUIを使って自動化する記事を書きましたが、 PyAutoGUIはあくまで表面的な自動化でしかありません。 例外に弱く、処理も遅いという問題があります。 例えば、テキストボックスの値を読み取って、 その値に応じて処理を変えたいなんてこともできないわけです。 そこで今回はWindowsAPIを使っての自動化を試みます。 PyWin32という外部ライブラリもあるのですが、 あえて、標準ライブラリのみで実装する方法を考えてみます。 Pythonからmessageboxを呼び出す PythonでWindowsAPIを呼び出してメッセージボックスを表示させてみます。 【コード】 # -*- coding: utf-8 -*- import ctypes if __name__ == "__main__": ctypes.windll.user32.MessageBoxW(0, "t
【読了時間:5分】 みなさん、はじめまして!! Sengoku Labインターン生の宮本と申します。本日よりこのブログで、インターンシップを通じて学んだことを随時更新させていただきます。 一連の記事を通じて、プログラミングや地理情報解析を全くやったことのない人が徐々にソフトやコードを扱えるようになっていければ幸いです。よろしくお願いします。 第1回目となるこの記事では、地理情報を取り扱うにあたって大切な道具である「プログラミング言語」と「GISソフト」について取り上げたいと思います。 それでは早速、順番に見ていきましょう! プログラミング言語 人口データや交通データといった、現在取り使われている地理データは、複雑・大量なものばかりです。手作業ではとても編集し切れません。 そこで、私たちはプログラミング言語を習得し、コードを実行することによってコンピュータに演算させることになります。 プログ
強引に実現させました。よりスマートなやり方を模索中です。 この記事の方法で、basic 認証も無理やり入力しています。 自分の環境 Windows7 Firefox 18.0.2 Selenium IDE 1.10.0 (結局この記事の方法では使いません) Selenium Client & WebDriver Python 2.29.0 Python 2.7.3 まず最初に とりあえずググったら以下のページを見つけました。 Seleniumの証跡をHTMLソースで http://tanakanbb.blogspot.jp/2010/04/seleniumhtml.html ここではアドオンのショートカットキー操作を、selenium で実現しています。 なるほど、こやつの応用で MHT 保存をショートカットキーで 実現できるかなぁと思い、以下のアドオンをインストール UnMHT http
Pythonで楽譜を扱うのが面白いです。ABC記譜法であれば、楽譜を「文字」として扱えるのでPythonだと比較的にラクに処理できます。ただ、楽譜のインプットやアウトプットのことを考えるとMIDIファイルを扱えるようにしたほうが便利なように思えます。 pretty_midiを使う PythonでMIDIを扱う場合、パッケージ『pretty_midi』をインポートすれば良さそうです。MIDIファイル内のトラックごとに、ノートをリストとして取得できるようになります。 pretty_midi - pretty_midi 0.2.8 documentationnull インストールはpipコマンドだけで済むのでラクチン。 pip install pretty_midi MIDIを読み込む PrettyMIDI()でファイル名を指定すれば、あとはトラックとノートがリストで取得できます。 import
最近、引越しをしたWebエンジニアの本間です。 引越しの作業は大変面倒でしたが、新しい街に来た時のワクワク感がやっぱりいいなーと感じております。 さて、弊社のサービスである「写真サービス るくみー」では、毎日たくさんの写真をアップロードしていただいているのですが、中には内容がほとんど同じ写真が入ってしまうことがあります。 これらの写真がそのまま販売されてしまうと、写真を選ぶ際に邪魔になったり、間違って複数枚購入してしまうことがあるため、可能な限り避けたい事象です。 「同じ内容」の写真を自動で判別する方法がないか調査していたところ「Perceptual Hash」という手法を見つけました。 Pythonでの画像処理の勉強も兼ねて、今回この手法を紹介してみようと思います。 Perceptual Hashとは ハッシュ値は、「あるデータをハッシュ関数に入れて得られる値」で「同じデータからは常に同
PyImageSearch You can master Computer Vision, Deep Learning, and OpenCV - PyImageSearch Today’s blog post is on image hashing — and it’s the hardest blog post I’ve ever had to write. Image hashing isn’t a particularly hard technique (in fact, it’s one of the easiest algorithms I’ve taught here on the PyImageSearch blog). But the subject matter and underlying reason of why I’m covering image hashin
メッセージキューやりたくなったので 環境 CentOS 6.2 Python 2.7.2 Django 1.4 インストール django, celery, redis のセットで使う場合のパッケージ $pip install django-celery-with-redis redis $sudo yum install redis 設定 redis起動 $sudo /etc/init.d/redis start settings.pyに追記 import djcelery djcelery.setup_loader() BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis' BROKER_TRANSPORTにdjangoも指定できるっぽいので 開発環境ではこちらの設定を適用できるようにしておくのも、
動機 PythonにはFlaskというRubyでいうsinatraライクなマイクロフレームワークがあり、こいつのテンプレートエンジンにはJinja2というPHPでいうSmartyライクなテンプレートエンジンが使われている。 で、Flaskでユニットテストを書いていた時に本番環境とテスト用のディレクトリ分けたいと思った。 というのはディレクトリ構造同じにしておいて期待通りのテンプレートがちゃんとレンダリングされてればいいかぐらいのノリだったため。 Jinja2から直接テンプレートディレクトリを指定する ググってもやはり日本語情報は引っかからなかったのと公式ドキュメントとりあえず10分ほど探してみても見つからないということで、とりあえずついったーに投げたら反応あるかもという他力本願全開で投げたらid:shimizukawaさんからレスを頂いた(id:shimizukawaさん情報ありがとうござ
久々にFlaskドキュメントページ見てたら、 Streamingのsnipetが掲載されてました。 (もしかして結構前から?) Werkzeugには0.5から機能としてはあるみたいなんで、 きっと昔からできたんでしょう。 なかなか使い道ないけどTwitterのようなStreamingAPIとかかっこ良いですよね。 つーことでコード。 from flask import Flask from flask import Response import time app = Flask(__file__) @app.route("/streaming") def streaming(): def generate(): while True: time.sleep(1) yield "test\n" return Response(generate(),direct_passthrough=Tr
こんにちは、むさしです。 引き続きflaskでwebアプリを作っていきましょう。 前の記事: playwao.hatenablog.com base.htmlを編集する base.htmlを編集しましょう。 htmlについては僕はあまり詳しくないのでうまく説明できないので自分で調べて貰えばと思います。 また、デザインを楽にするために今回はBootStrapを使います。 getbootstrap.com こちらにアクセスしてbootstrapファイルをstaticフォルダに入れてもいいです。今回は面倒なのでcndを使います。 また、jQueryも使うので同様の方法で導入してください。 jquery.com つまりファイル構造はこういう風になります。 flask_app |---static |---js | |---jquery-2.1.4.min.js | |---bootstrap.mi
前回はファイルを書き込んで閉じてから、また開いてと、かなり気持ち悪かったのですが、 と、修正案を頂いたので、適用してみました。 これで余分な一時ファイルも作られないのですっきり。 StringIO を使うのか!と、また1つ勉強になりました。 V 様に感謝。 # -*- coding: utf-8 -*- import codecs import csv import cStringIO from flask import Flask, Response, make_response, render_template app = Flask(__name__) @app.route("/") def root(): return Response("<a href='/dl/'>DL</a>") @app.route("/dl/") def make_csv(): """ CSV 出力 ""
あけましておめでとうございます。 今年もよろしくお願いいたします! ブロックチェーンに入門 なんだかスゴいらしい!と前から気になってはいたものの、実際にどんなものかはよく知らなかったので、手を動かしてみることにしました。 まずは事前のインプット。ブロックチェーンに関する説明スライドがあり、分かりやすいです。 mayonez.jp つまりはハッシュコードの数珠繋ぎなのですねー。ふむふむ。 「前のブロックのハッシュコードを次のブロックに渡す」を延々と繰り返すので、もし途中で割り込んだり改ざんするとつじつまが合わなくなってドカーン。納得。 コードを書いてみよう 今回の教科書はこちらです。ありがとうございます! qiita.com ブロックを定義&ハッシュ生成 # cryptocurrency_block.py import hashlib class Block(): def __init__(
この記事は移転しました。約2秒後に新記事へ移動します。移動しない場合はココをクリックしてください。 こんなことをしてみたい ↑これがしたい pythonによる機械学習の勉強をしたので、実践ということで、人気アイドル「乃木坂46」の個人的に好きな5人のメンバーを区別して見ました。大きな流れはこんな感じです。 web上から五人の画像を100枚ずつ取ってくる 画像から顔部分を取り出して保存、テストデータの取り出し 画像の水増し モデルを定義して、学習 テスト(顔を四角く囲って、その人の名前を出力) 説明はこんなもんにして、彼女らの可愛さについて語りたいところですが、そういうブログではないので、少し技術的なことを書きます。 今回はjupyterを使って作業を進めました。notebook形式なので結果が見やすく初心者にはいい環境でした。環境は以下。 macOS:10.13.1 python:3.6.
今日は久しぶりに時間が取れたので、pythonでツイッターの認証ページを作りました。 認証ページというのはこういうやつです。誰もが一度は見たことあると思います。 これをPythonとFlaskとHerokuで実装しました。 デモはこちら!(認証が完了すると、oauth_tokenとoauth_token_secretが表示されます) ツイッター認証デモページ ネット上には、コピペでそのまま認証ページを作れるようなコードはなかなか見当たらなかったので、GitHubにプロジェクトをすべて載せておきます。 github.com Twitter Application Management で callback_urlなどを適切に設定して各コードに書いてある各自設定するの部分を変更してherokuにデプロイすれば動くはずです。(たぶん) 認証出来たら、その oauth_tokenとoauth_to
こんにちは、@yoheiMuneです。 今日は、[Python] 軽量WebフレームワークのFlaskに入門(準備、起動、HTML、静的ファイル、GET、POSTなど)の続きで、FlaskでControllerを分割する方法をブログに書きたいと思います。 目次 Blueprintを用いてコントローラーを複数のファイルに分割する Webアプリケーションが大きくなってくると、リクエストを受け取るコントローラー処理が肥大化してきます。app.pyなどの1ファイルでサーバー起動が気軽にできるFlaskですが、Blueprintを用いることで、コントローラーの処理を分割することができます。 今回は以下のようなファイル構成として話を進めます。 app.py controllers action.py それではここでは、controllers/action.pyに、分割したコントローラーを記載します。B
Flask なんでそこまで大規模ではないですが、 1ファイルでは厳しくなってたので分割しました。 Flask 0.7.2 を使用で、 より大きなアプリケーション ― Flask v0.5.1 documentation http://a2c.bitbucket.org/flask/patterns/packages.html に従って、Module で定義すると、起動時に次のような警告。 (起動はするので動きはする main.py:7: DeprecationWarning: Modules are deprecated. Upgrade to using blueprints. Have a look into the documentation for more information. If this module was registered by a Flask-Extensio
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く