読者です 読者をやめる 読者になる 読者になる

Python

キモオタがやってみるデータサイエンス〜その3:ミスコン支援アプリを作ってしまった話〜

きょうはこんなこと書くよ ミスコン出場者の相関関係がわかるアプリつくったよ ついでだから、Mr用にも作ってやったよ。 みんな投票してね♡ テクニカルにはこんな内容だよ 文書データを次元圧縮して、相関図にした話 python/bokehを使って、簡単にインタラク…

キモオタがやってみるデータサイエンス〜その2:RBMでミスコンっぽい顔を知る〜

この記事ではこんなこと書くお RBMで特徴量の学習をしてみる pylearn2を本格的に使ってみる 記事の本文だお どうも、キモヲタです。 さて、前回はDeepLearningで共通顔画像の抽出と題してやってみましたが、あまりうまくいきませんでした。*1 さて、前回はCh…

キモオタがやってみるデータサイエンス〜その1:DeepLearningでミスコンっぽい顔を知る〜

注:この記事はキモヲタがキモヲタ同業者のために書いたとぉってもきも〜い記事です。それ以外の方は吐血するかもしれないので気をつけてくださいね♩ こんばんは。キモオタです。ブヒブヒ さて、10月になりましたね。10月といえば、そろそろ学園祭のシー…

クラスの内部で並列処理を利用したメソッドを利用する

やりたいこと pythonクラスで、並列処理を利用したメソッドを実装したい。 つまり、classの中で、multiprocessing.Pool を利用したい。 しかし、普通のやり方ではできない。そこで、ちょっとした工夫が必要になる。 ※ ただし、multiprocessing.Process なら…

プリキュアとセーラームーンはどちらの方がサザエさんに近いのか?

この記事ではこんなことを書くよ テキストマイニング的に次元削減とプロットする話 t-SNEとかいうイケてる名前のアルゴリズム プリキュアとセーラームーンはどっちの方がいいか はじめに 計算機分野に所属する人たちは時々、本当に間抜けなことを真面目に取…

Dockerで処理をまとめておく

やりたいこと 処理をまとめて簡単に動かせるようにしておきたい。 環境設定とか毎回するの面倒なので、コマンド一発で動かせるくらいにしておきたい。 解決策 Docker使う。 ソースコードを動かせる状態にしておいて、Dockerの仮想環境の中で稼働させる。 そ…

早く、簡単に共起語ペアの頻度を数える

やりたいこと 共起語ペアのカウントを取りたい。 単に基礎集計をやりたいだけなので、matrixを作る必要はない。 解決策 タプルで共起語ペアを作って、カウントする 手順は 共起語のタプルを作って、リストに放り込んでいく collection::Counter.most_common(…

MeCabの制約付き解析モードを利用する

MeCabの制約付き解析モードを利用する やりたいこと 標準の辞書だけだと、どうしても不要な単語まで分割してしまう。 かといって、辞書ファイルの内容をいじるのは割と手間がかかる作業だ。 そこで、「制約つき解析モード」を利用することにした。工藤さんに…

nltkでタプルのbigramカウントをする

やりたいこと (word, POS)のタプルの状態でbi-gramのカウントを取りたい 解決法 nltkで普通にできた。 import nltk list_input = [('I', 'Noun'), ('feel', 'Verb'), ('happy', 'Adj'), ('You', 'Noun'), ('feel', 'Verb'), ('happy', 'Adj')] corpus = nltk…

nltkでbigramを共起語カウントする

やり方を忘れてたので、復習にやってみた。 入力はリスト In [49]: tokens = ['I', 'am', 'a', 'stupid', '.', 'You', 'are', 'a', 'stupid', '.', 'he', 'is', 'a', 'stupid', '.'] In [50]: corpus = nltk.Text(tokens) bigramクラスのインスタンスができ…

男のための機械学習〜RBMでA◯女優さんの共通特徴量を得よう〜

いま、巷で話題(3年くらい前からだいぶ話題だけど)のDeep learningをア◯でも使えるpylearn2を使って見る。 Deep learningとは? 一言で言うと「教師なしのニューラルネットをいっぱいつなげて多層ネットワーク化したもの。」 いままでは 前処理職人の丹精…

theanoライブラリを使えるようになるまでにがんばったこと

やろうとしたこと theanoライブラリを使って、deep learningの勉強してみようとした。 しかし、theanoのインストールがなかなかうまくいかず、いろいろ作業をしたので、その時のログを残しておく。 theanoのインストールがうまくいかなかった原因 pip instal…

グループ化集計して、上位N件の取得

やりたいこと データフレームをグループ化して集計(平均)し、その上で、各グループについて上位N件を取得したい。 つまり、やることを分解すると、 1 グループ化して数値集計(今回は平均) 2 集計した数値で、各グループごとに上位N件取得 1 グループ…

PCAをもうちょっと理解した上で使ってみる

恥ずかしながら、パッケージユーザーなもので、PCAがきちっとwかっていない状態で使おうとしてハマっていた感があった。 そこで、「何をしているか?」を明確にして、扱ってみることにする。 ちなみに、この記事で扱ってるscikit-learnはバージョンが0.15で…

管理者権限がない環境でのpython環境構築のまとめ

管理者権限がない環境(共用サーバーなど)でpythonの便利環境を構築するためのまとめをしてみた pip関係 pipを使ったライブラリのインストール ここで、以前も紹介したが、 pip install ライブラリ名 --user pipを使った場合のライブラリが保存されるディレ…

numpy memmapを利用する

やりたいこと numpy arrayを使った行列計算をしたい。 が、マシンスペックから行列をメモリ上に保持しておくことができない。 どうするか? 解決策 arrayをディスクに保存しておき、一気にすべてのarrayをメモリに載せなくてもいいようにする。 こんな解決策…

pythonで最大ヒープサイズを設定する

やりたいこと pythonのコード中で、メモリの最大ヒープサイズを設定する。 と、いうのも、メモリサイズが大きかったせいで、サーバーからプロセスがkillされてしまったらしいのだ。 これはマズイ。ということで、きちんとメモリ量を制御する。 どう解決する…

Scikit-learnのPCAの正しい使い方

先日、PCAとkmeansを使った分析の話を書いたが、ハマったところがあったので、書いておく。 ハマったところ やりたいことは、実数空間を、別の軸ではられる空間に射影することだった。 従って、射影ベクトルは入力次元と同じだけ必要となる。 が、なんどやっ…

PCAとkmeansを組み合わせた分析

いままで知らなかったのだが、常套手段らしい。 どういう時に役にたつか? 大目的 あるデータがあって、そのデータをクラスタリングしたい。(つまり、データをkmeasnで分離したい。) 問題どころ データの状況によっては、実数空間のままではうまく分離がで…

numpyの行列をpandasのdataframeに変換したい

やりたいこと numpyの行列をpandasのdataframeに変換したい。 以前、pandasのdataframeをnumpyの行列にしたいということを書いたが、今度は逆のことをしたい。 どう解決するか? ここに書いてあった。 pd.DataFrame(numpy_array) とすればいい。 引数にいろ…

numpy型の行列の要素を型変換

やりたいこと numpy型のarrayの中身をぜんぶ型変換したい intからfloatみたいな感じで どうするか? array_obj.astype() とかく 64ビットのfloatなら numpyMatrix = numpyMatrix.astype(np.float64) で変換できる

pandasのdataframe型をnumpyのarray型に変換する

やりたいこと dataframeを行列として扱いたい。 なので、numpyのarray型(np.arrayかnp.adarrayにしたい) どう解決するか? ここに書いてあった。 なんだか、いろいろな人が回答しているが、一番シンプルでわかりやすかったのがこれ。 df.as_matrix() すで…

try exceptをしっかり使う

やりたいこと try exceptによる例外処理を行うときに、組み込みの例外クラス以外も扱いたい。 ちなみにtry exceptの基本的な使い方はここにまとめられている。 具体的にどんな状況か? twitter APIから情報取得をしている時にこんなエラーが発生してしまった…

htmlのスクレイピングをする

やりたいこと webページのスクレイピング これを全部pythonから実行したい。 解決方法 うまいことライブラリを組み合わせてスクレイピングをする htmlページの取得: urllib2ライブラリを使う。(wgetで代用してもおk) htmlの解析: lxml.htmlライブラリを使…

pythonスクリプト中でログを出しておく

やりたいこと pythonで作成したスクリプト中で、実行ログをきちんと出力しておきたい。 どう解決するか? loggingライブラリを使う。 ありがたいことに、loggingライブラリの使い方を説明してくれたページがあったので、リンクを貼っておく。

2次元のdictから隣接行列を生成する

やりたいこと 隣接行列を作りたい。 で、隣接行列の元データは2次元のdict型で保存されている。 例えば、ノードAとノードCからノードBへと接続されていおり、そのエッジの重みが1という状態を作りたい。 {ノードA: {ノードB: エッジの重み}, ノードC: {ノ…

pythonで作成しているプロジェクトディレクトリを綺麗に保つ

やりたいこと pythonで作成しているプロジェクトがあって、ディレクトリ構造をきれいにしておきたい。 まちがっても、プロジェクト直下のディレクトリに~py ~pyc ~datが大量に並んでいる状態は避けたい。 そこで、慣習的なディレクトリ構造の作り方はあるの…

管理者権限のない環境でpip installを行う

やりたいこと pip installコマンドを使って、pythonライブラリを簡単にインストールしたい。 ただし、管理者権限はもっておらず、「試すための目的でいちいちインストールを管理者に頼む。」なんてことはできない状況。 解決方法 --userのオプションを利用す…

twitter APIにアクセスして情報取得

やりたいこと Twitterのユーザー情報を取得してきたい。Pythonで! PythonのTwitter APIライブラリを使う python-twitterを使えば、非常にお手軽にapiを利用できる。 なので、以前からちょいちょい利用していたのだが、最近、試してみたら、あれ!?ユーザー…

アダルトビデオコミュニティで人気のビデオは?

前回は、「blackでblowjobな内容なビデオが人気である」であると仮定して、視聴数とコメント数で人気度を表現しようとした。 視聴数とコメント数の分布を確認すると、べき乗分布になっており、べき乗分布の最大セグメントは同じビデオだろうと考えた。 そこ…

ビッグデータで見るアダルトビデオコミュニティ

※この記事はpandasやMコマンドの練習お題として選んだ「アダルトビデオコミュニティの分析」をコードと共に紹介するシリーズです 以前、アダルトビデオコミュニティの統計データの紹介をしたことがある。 長いこと放置していたが、せっかくなので、このデー…

xargsを使ってお手軽に分散処理をしよう!

複数のパラメータがあって、どのパラメータの組み合わせがいいのか?調べたい。でも多重for文を使うと大変なことに(ただでさえRのforはク・・) →bashコマンドのxargsを併用して、お手軽に分散処理をする。 参考にしたサイト:ここ 用意するもの 1 パラメ…

WebブラウザでIpythonを使おう!(Rstudioのpython版)

なんとIpythonにwebインターフェースが存在するんだそうな。 そんなにメリットがあるとも思えないが、とりあえず使ってみたい! そんな思いからまたサーバーでIpythonを稼働させてみることにした。 使うサーバーは恒例のAmazon EC2。 まずはここを参考にしつ…

numpy型の文字列クラスについて

最近になった知ったことなのだが,NumpyにはPython標準の文字列クラスとは別の'numpy.string_'という型が使われていた. ちなみにunicode型であれば,Numpyでは'numpy.unicode'型に対応している. 調べてみてもそんなに情報がなく,ぼくが見つけられたのは,…

word2vec利用のおぼえ書き

理論的なことはほとんどわかってない. だけど,単語n-gramをembeddingsと呼ばれるベクトル表現にしてくれることだけはわかっている. そのうち,しっかり勉強しますから...そのうち... とりあえず,「toolとして使う.」を第一目標にしてみた. word2…

マルチラベル分類用のライブラリMulanをjythonから使ってみる

マルチラベル問題とは,「ひとつの事例に複数のラベルがつきうる場合の問題」のことを指す. 例えば,文書分類だと,「サッカーのフーリガンのニュース記事はスポーツのジャンルだし,社会のジャンルでもある」っていうラベルが付く場合を指す.こういうマル…

LDAで,トピックと文書の生成確率を考える

ある時,「LDAのトピックと文書の生成(同時)確率」を求めるにはどうすればいいですか?と聞かれた. 正確には,LDAで生成されるトピックをクラスタと考えて,そのクラスタに文書が属する確率が知りたい.できれば,コードがあるとありがたい.とのことだっ…

よくできたstanford-core-NLPのpythonラッパー

stanford-core-NLPは英語の上でNLPをやっている人なら知ってるものだと思う. 既存のNLP技術を色々盛り込んで一気に使えるようにしてくれている,かなりの優れものだ. スタンフォード大学はこういう点で,本当によい仕事をしていると思う(上から目線だけど…

Gensimを使ったトピック単語抽出 LSAを使ったトピック語抽出まで

以前,ちょろっとだけGensimを使ったことがあったんだけど,久しぶりに本格的に使うことになりそうなので,メモに残しておく Gensimでのコーパスの作り方 - kensuke-miの日記 gensim 文章をベクトル空間にする方法 - kensuke-miの日記インストールができてな…

pythonの内部表現からxmlへの出力

主に使うのは,etreeオブジェクト.これは標準で入っているモジュール(のはず)なので,一般的な話ができるはず.基本的な書き方は DrunkBoarder · yuki_B's web site XML ドキュメントを作成する - Python Module of the Week を見りゃいいのだが,細かい…

perlexのバグ情報

Perlexは何度もこのページで紹介しているが,要は形態素辞書.しかし,よくよく調べてみると,不可解な現象がいくつも発生していた. 例えば,以下 anga¹tn 108 V [pred="anga¹tn_____1",cat=V,@2*3plPreparfFam] anga¹tn_____1 Default 2*3p…

acute accentの処理

世の中にはacute accentという文字があるそうだ. Charbase U+00B4: ACUTE ACCENTアポストロフィーに形が似ているが,その実体はラテン系の言語に使用するアクセント記号である.Latin-1 supplemetの文字セットの中に含まれている.ところで,acute accentを…

Pythonのxmlパーザ minidom

以前に,xmlからデータの抽出を行う xml.dom.minidom - kensuke-miの日記で,自分で書いたにもかかわらず,また忘れていたので,今回はもう少し書く.あるコーパスがあって,xmlで保存されているのだが,いろいろと扱いづらい(タグが日本語で記述されている…

Pythonスクリプト内でbashコマンドを呼び出す

方法はcommandモジュールを使うか,subprocessモジュールを使うか?という選択肢があるようだ.で,commandモジュールには前に失敗した記憶があるので(自分が悪い),どっちかというとsubprocessを好んでいる.使い方は,importして import subprocesssubpr…

xmlからデータの抽出を行う xml.dom.minidom

基本的な追加方は19.7. xml.dom.minidom — 軽量な DOM 実装 — Python 2.7ja1 documentationを見ればわかることなのが.ただ,ちょっとわかりにくいので,Python で XML 操作 | TM Lifeを見た方がよい.ところで,「コメントのみを記述したxmlノードを抽出す…

Pythonでスマートなファイルの読み込み方法は?

元は http://blog.lampetty.net/blog_ja/index.php/archives/418あまり考えてなかったんだけど,どでかいファイルを扱う時はメモリの消費を抑える書き方が一番いい(特にNLPはメモリの消費がデカい場合がそれなりにある)結論からいうと,「ぼくの書き方はま…

ギブスサンプリングの実装

長いことわかっていなかったのだが、実装してようやく頭に入って来た気がする。今回は「道具としてのベイズ統計」涌井良幸 日本実業社 の説明にあるギブスサンプリングをPythonで実装してみた。 パラメータは全部、本にある通り。 #! /usr/bin/python # -*- …

Pythonの絶対パスの範囲の拡張をするには?

http://www-al.nii.ac.jp/~kameda/blog/cmlog/1102051601.htm

Emacsでのpython環境

自分のローカル環境ではemacs+jediでpythonの自動補完を行っている(これはこれでインストールが苦労したのだが...) ただ、サーバーの方ではまだ未設定で、長い変数名とか、めんどくさい状態だった。そこで、きちんと補完機能を入れようとした時のまとめまず…

Subdirectoryのfileまでを自動的に獲得

例えば、ファイルが大量にあって、そのすべてに同じ処理を施した時、しかも、階層構造になっている。 こんな時には、 ・ファイルを全部くっつけてまとめて処理してしまう(テキストファイルだと割と使える手) ・連続的にファイルを処理するがあるけど、メン…