動機 URLをカテゴリ分けしたいと考えb-Bit MinHashを使ってみました。 具体的には以下のようなことをするためです。 cookieから抽出したサイト閲覧情報を素性としてユーザのCV確率を求める場合、素性ベクトルがかなりスパースになってしまいます。そこで、URL単位でカテゴリに分け、ある程度素性ベクトルの密度を上げたいと考えました。そのために標題について実験をしています。 このブログに書いたこと b-Bit MinHashの概要 参考コード b-Bit MinHashの概要 参考文献 b-Bit Minwise Hashing b-Bit Minwise Hashing in Practice: Large-Scale Batch and Online Learning and Using GPUs for Fast Preprocessing with Simple Hash F
ビタビアルゴリズムを理解も兼ねて実装してみました. # -*- coding:utf-8 -*- states = ("rainy","sunny") observations = ("walk","shop","clean","shop","walk") start_prob = {"rainy":0.6,"sunny":0.4} transit_prob = {"rainy":{"rainy":0.7,"sunny":0.3}, "sunny":{"rainy":0.4,"sunny":0.6}} emission_prob = {'rainy' : {'walk': 0.1, 'shop': 0.4, 'clean': 0.5}, 'sunny' : {'walk': 0.6, 'shop': 0.3, 'clean': 0.1}} def viterbi(observs,state
追記: 使用しているDjangoのバージョンをはじめ、いくつか古くなってきている点があります。DjangoCongress JP 2018で認証に関する発表を行ったのですが、ブログ記事も用意しています。そちらを参照してください nwpct1.hatenablog.com 追記終わり Djangoでユーザ認証をしたかったので調べてみると,DjangoではUserモデルがはじめから用意されているらしい.そこでDjangoの提供する機能をそのまま使ってログイン・ログアウトを実装してみた. さらに調べてみるとpython-social-authというライブラリを使えば、TwitterやFacebook,Google、Github等のアカウントを使ったOAuth認証が簡単に実装できるみたいなのでそれも試しておく. ソースコードはGithubで公開してます. https://github.com/c-
2015-01-05 Pythonで基本のアルゴリズムを書いてみた Programming アルゴリズムを学ぶ意義みたいなものはいろいろなところで語り尽くされていると思うので私からは特にコメントしませんが、今回の勉強に利用した書籍でも引用されていた言葉が印象的なので、記しておきます。 最先端の機械を使って製品をつくるのは簡単で、しかも楽なことだが、基本技術を固める前に楽なほうに流れていってしまった。俺のような基本的なことがきちんとできるローテクが、今、我が世の春を謳歌しているんだ。 岡野雅行さんという職人さんの言葉のようです。そういえば随分前にこんな記事が盛り上がりました。 今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 最新技術だけではなくて、その基礎となる技術をしっかり理解しなければダメだよということでしょう。ということで基本のアルゴリ
LSB方式とは LSBとはleast significant bitの略で、末尾のビットのことである。LSB方式のsteganographyとはLSBを書き換えることで、あまり見た目に影響させずにデータを隠すものである。 コード Python2、3両対応。RGBまたはRGBAなPNGにのみ対応。Pillowという画像処理ライブラリを使っている。 #!/usr/bin/env python # coding: UTF-8 import binascii from PIL import Image def stegano(source_path, message): ''' convert LSB steganography ''' img = Image.open(source_path) if img.mode in ('RGBA'): message_bit = str("{0:b}".
前、自作ライブラリをコマンドで使えるようにするときに知ったけど、完全に記憶から飛んでたのでメモ。 たとえば、test.pyがあってそれをtestというコマンド名で実行したいときは、setup.pyでscriptsに指定してあげるといい。 from setuptools import setup import os import shutil if not os.path.exists('scripts'): os.makedirs('scripts') shutil.copyfile('test.py', 'scripts/test') setup( #ホントはnameとかversionとかいろいろ書かないといけない。 scripts=['scripts/test'] )
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー mechanizeはWeb上の操作を自動化してくれる便利なPythonのライブラリ。Pure Pythonなのでいろんなところで動くよ。PerlのWWW::Mechanizeにinspireされて作られた。RubyにもMechanizeという同種のライブラリがある。Perl偉い! 「Web上の操作を自動化する」っていうのは,例えばどこかのサービスにログインしてあれこれするとか,そういったことをプログラマブルに行える,ということ。フォームの操作などもオブジェクトを使って実行できるのでとても手軽。Webアプリの開発などではテストに使われたりするんだけど,結局僕がなにをしたかったかというと,
pythonにはnetowrkxという便利なグラフ解析ライブラリが存在します。 このライブラリはかなり良くできていて ・Rのigraph等のライブラリと比較してサブグラフの出力結果へのアクセス手法が用意 ・numpyやscipy等との連携がかなり進んでおり、大規模なグラフや高速演算を求められるグラフにおいても適している。 という特徴があります。 ここでは、同ライブラリを使ってPageRankによるグラフ解析を実施する手法を紹介します。 利用ライブラリ networkxを利用するにあたり必要なライブラリは以下の通りです。 networkx http://networkx.lanl.gov/ numpy http://numpy.scipy.org/ scipy http://www.scipy.org/ numpyとscipyはnetowrkxを利用するにあたり必須のライブラリではありません
先日こんな実験をして、大量のオブジェクトを作った時にはそのオブジェクトが持っている__dict__の1048バイトが無視できなくなってくることを確認した: Pythonでメモリ消費量のプロファイルを取る 今日はその解決編。先日のコードに1行書き足してみよう。__slots__で始まる行がそれだ。 from guppy import hpy h = hpy() N = 100000 class Hoge(object): __slots__ = ['x', 'y', 'z', 'a', 'b', 'c'] def __init__(self): self.x = 1 self.y = 1 self.z = 1 self.a = 1 self.b = 1 self.c = 1 x = [Hoge() for x in range(N)] print h.heap() これによって、変更前ではH
For many people, testing their Django applications is a mystery. They hear that they should be testing their code but often have no clue how to get started. And when they hit the testing docs, they find a deep dive on what functionality is available, but no guidance on how to implement. This is the first in a series of blog posts to try to help alleviate this & get everyone on the testing bandwago
SPSSで簡単テキストマイニング View more presentations from SPSSはPythonと連携することが出来ます。SPSSは大変多機能ですが、業務で実際扱うデータは一筋縄にはいきません。様々な前処理が必要です。SPSSに落とし込めるよう、データの整備やクリーニングをPythonで簡単にやってしまいましょう。今回はテキストをSVMにかけるための下準備をPythonで行います。形態素解析にはMeCab-野良ビルドを用います。まずは頻度カウントしてみます #coding:utf-8 import sys import MeCab #MeCabを呼んで使えるようにする tagger = MeCab.Tagger("-Owakati") #分かち書きをする指定 read_file = sys.argv[1] #コマンドラインから読み込むデータファイルを指定する all_te
slaさん主催のNumpy/Scipy勉強会でLTをします。 内容はNetworkXというPythonのネットワーク分析パッケージの紹介です。 Pythonで簡単ネットワーク分析 View more presentations from AntiBayesian ネットワーク分析と言えば、PajekやRのigraphが定評有りますが、 これらはどうしてもサブグラフの扱いに不満がありました。 ネットワークからサブグラフを抽出するところまでは出来ますが、 各サブグラフがどのような性質を持つか分析したい場合、 指定したサブグラフを形成しているノード、エッジ、重みの情報を簡単に取り出す方法がありません。 NetworkXであれば、指定したノードやエッジだけ隣接行列や辺行列の形で入出力することが可能です。 また、ネットワーク分析は非常に計算量が大きく、高速な演算が求められるため、データをNumpyへ
Pythonでグラフ構造を扱うには,networkxというライブラリが便利です.Overview — NetworkX v1.5 documentation# 使い方$ sudo easy_install networkx$ python>>> import networkx# ノードとエッジの貼り方>>> graph = networkx.Graph()>>> graph.add_node("youzaka")>>> graph.add_node("seiryo")>>> graph.add_edge("youzaka", "seiryo")>>> print graph.nodes()['youzaka', 'seiryo']>>> print graph.edges()[('youzaka', 'seiryo')]# 隣接ノードへのアクセス>>> print graph.neighb
解説は後日…しないかも. #!/usr/bin/env python #encoding: utf-8 from sys import stdin from optparse import OptionParser from collections import defaultdict def sign(x): if abs(x) return 0 elif x > 0: return 1 return -1 def clip(x, c): return sign(x) * max(0., abs(x) - c) def parse(line, bias, discount): label, document = line.strip().split(" ", 1) features = {} for feature in document.split(" "): key, value =
解説は後日. #!/usr/bin/env python #encoding: utf-8 from sys import stdin from optparse import OptionParser from collections import defaultdict from random import shuffle, seed from math import sqrt def sign(x): if abs(x) return 0 elif x > 0: return 1 return -1 def clip(x, c): return sign(x) * max(0., abs(x) - c) def parse(line, bias, discount): label, document = line.strip().split(" ", 1) features = {}
よる年の瀬の最中、Web開発者のための大規模サービス技術入門という本を読んでる。 ソーシャルゲームが流行っている昨今、大規模サービスの運用論や方法論について、少しは学んでおくか的なノリで読んでる。 こいつは、株式会社はてなで行われたインターン実習が元になってて、負荷対策の基本等が分かりやすく実習形式で解説されてるオシャレな本だ。 OSのページキャッシュの仕組みとかデータの分散とか検索アルゴリズム等、もろもろ興味深いのだ。 今回は、整数データをコンパクトに持つ為の圧縮技術VBCodeをPythonで実装してみたメモり。(本の中ではPerl) はてなのインターン生に混じった気分で、疑似コードを参考に実装してたら、なんだかんだ1時間ぐらいかかった。 もっとさくっと組めたらいいのに。 つっかかった点は以下2点。 ・Pythonにおけるバイトコードの取り扱い(pack, unpack) ・128とい
はじめに この文書は、 Steven Bird, Ewan Klein, Edward Loper 著 萩原 正人、中山 敬広、水野 貴明 訳 『入門 自然言語処理』 O'Reilly Japan, 2010. の第12章「Python による日本語自然言語処理」を、原書 Natural Language Processing with Python と同じ Creative Commons Attribution Noncommercial No Derivative Works 3.0 US License の下で公開するものです。 原書では主に英語を対象とした自然言語処理を取り扱っています。内容や考え方の多くは言語に依存しないものではありますが、単語の分かち書きをしない点や統語構造等の違いから、日本語を対象とする場合、いくつか気をつけなければいけない点があります。日本語を扱う場合にも
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く