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

スロベニアに行ってきた話をする

自然言語処理データセット系の国際会議LRECに参加してきた。 立ち位置は微妙な会議なのだが、データセット(コーパス)という視点で見ると、間違いなく世界最大である。 自然言語処理という立ち位置で見ると、上から6番目くらいの会議だろうか。 (個人的に…

このブログの使い方をメモっておく

結論として、このブログはポエムを書くブログにすることにした。 元々は技術ブログとして始めたのだが、その立ち位置はすでにQiitaに移ってしまっている。 ぼくもQiitaのほうが使いやすいし、他の人への役立ち度もQiitaのほうが大きい。 では、はてなブログ…

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

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

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

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

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

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

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

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

Rスクリプトの実行パスを取得する

R

やりたいこと Rスクリプトでスクリプトファイルが存在しているパスを取得したい。 pythonでいうとこの__file__を実現したい。 もうちょい踏み込んだ説明 なんでかっていうと、コマンドラインインターフェースだけ独立させて存在させたいわけですよ。 私、分…

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

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

SPARQLで人類の知にアクセスしよう

NLP

やりたいこと DBpediaにアクセスして、人類の英知を我が物にしたい。 どうやって解決するか? SPARQLをマスターする。 DBpediaはRDFモデル(正確にはOWL)で記述されているデータである。 データの実体はXMLで記述されるが、データを効率良く取得するには、ク…

Dockerで処理をまとめておく

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

文書分類タスクでよく利用されるfeature selection

"Bias Analysis in Text Classification for Highly Skewed Data"(Lei and Huan)を読んでいて、「文書分類タスクでよく使われるfeature selectionは4つある。Information GainとChi-squared testとOdds ratioとBi-Normal Separationだ」みたいなことが書い…

MacでKH coderを動かす

やりたいこと MacでKH coderを利用可能な状態にしたい MacはOS X Yosemite 解決法 Macをやめる もう少し噛み砕いて言うと、Windowsの仮想マシンを立ち上げて、Windows内でKH coderを利用する やるべきこと 1 Virtual Boxを利用できる状態にする 特に詳しい説…

ggplot2で日本語入りのグラフが入ったhtmlレポートメールをサーバーから送る

R

やりたいこと ggplot2で日本語を利用できるようにする 前提 サーバーでRを実行している レポートhtmlを作成している レポートのグラフ中に日本語が含まれる ggplot2ではデフォルトの設定では日本語はサポートされていないので、フォントの指定が必要。 でも…

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

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

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

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

USERS 顧客主義の終焉と企業の命運を左右する7つの戦略 を読んだ

「USERS 顧客主義の終焉と企業の命運を左右する7つの戦略」を読んだ USERS 顧客主義の終焉と企業の命運を左右する7つの戦略作者: アーロン・シャピロ,萩原雅之,梶原健司,伊藤富雄出版社/メーカー: 翔泳社発売日: 2013/09/03メディア: 単行本(ソフトカバー)…

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…

スゴいと噂のsparkを動かしてみる

やりたいこと sparkとかいう分散処理系の何かがスゴいらしいので、とりあえず動かしてみたい sparkって何ができるの?? 一言「分散処理」 ただ、分散処理でも、Hadoopと違って、ストレージに保存せずにon memoryで分散処理を実行できる いちいちストレージ…

sbtでプロジェクト管理をする話

やりたいこと scalaのプロジェクトを管理したい。 (なんだかよくわからないけど、みんながsbtを使っているので、自分も使ってみたい。) やってみたこと sbtのインストール macなら、 brew install sbt まあ、公式マニュアルの通りなんですけどね。 sbtで管…

macでtreeコマンドを使う

やりたいこと macのコマンドラインでtreeコマンドを使う 解決策 まずはbrewでtreeをインストール % brew install tree 特定の階層数で制限をつけて表示するときは、--dirsfirstと-L 階層数のオプションをつけて実行する。 % tree -d --dirsfirst -L 2 試しに…

マダガスカルという国に行ってきたーその4(マダガスカルという国とマダガスカル人という人々)

滞在中に見たり、聞いたりしたマダガスカルという国とマダガスカル人という人々について書いていこうと思う。 ただし、あくまで個人的な見解であり、いわば何の根拠もないクソ以下の感想も混じっている。 なので、クソみたいな雑記と解釈しながら読んでいた…

マダガスカルという国に行ってきたーその3(郊外の自然公園)

やはりマダガスカルというと、イメージするのは、野生動物と豊かな自然だろう。 ということで、郊外の公園にも行ってきたことも書いておく。 もともとの目的地だったところ 本当ならば、友人と「ムルンタヴァ」という街に行く予定だった。 しかし、当日の朝…

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

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

マダガスカルという国に行ってきたーその2(首都アンタナナリボ)

現地で行った場所を、つらつらと述べていく。 アンタナナリボ 首都アンタナナリボ 通称"Tana"(タナ)と言われ、現地の人も"Tana"と呼んでいる。 レミューパーク タナの郊外にある。 その名の通り、レミューが飼育されている公園。 フランス人と日本人の夫妻…

マダガスカルという国に行ってきたーその1

マダガスカルという国に行ってきた。 良い国だったので、良さを少しでも知ってもらうため、記事を書くことにした。 準備編 旅行日程について 休みを2015年2月3日から2月13日まで確保できたので、この期間で旅行に行くことにした。 後述もするが、結…

はてなブログに戻した

記事を投稿する先をはてなブログに戻した。 しばらくレンタルサーバーを借りて、movable typeでブログを作成していたんだけど、はてなブログを超えるメリットをあまり感じなくって、戻した感じです。 movable typeで作成していた記事はexportが簡単にできた…

scalaでmapを連結する方法

やりたいこと mutable.Mapが複数あるとして、このMapを連結してしまいたい。 PythonでいうところのUpdateメソッドを利用したい。 書き方 ++=メソッドを利用する。 val Map1 = mutable.Map\[String, Int]() val Map2 = mutable.Map\[String, Int]() Map1 += (…

scalaの命名規則

あるとき、ふと「そういえば、scalaの命名規則ってどうなっているんだろう?」と思ったので、調べてみた。 すると、割りと簡単に見つかった。「キャメルケースを使いなさい」とのことだ。 原文をここからもってくると、 Scalaは「キャメルケース」命名規約を…

scalaのクラスを別ファイルに分離

やりたいこと コードを別ファイルに分離したい。 pythonでいうところの、モジュール化を行ないたい。 どうやって解決するか クラスをパッケージ内に定義して、別ファイルに分離する。 別ファイルに定義したクラスの書き方 package パッケージ名 class クラス…

Witten-Bell smoothingのおぼえ書き

NLP

witten-bell smoothingを実装することがあったのだが、「えっ、何するんだっけ?」となってしまったので、忘れないうちに書いておく。 そもそもスムージングとは? 確率的言語モデルを使うときに役に立つ便利道具。 もっともベーシックな言語モデルは学習コ…

movable typeのmarkdownでコード表記する

やりたいこと movable typeで記事を書くときにmarkdownを使うが、コードを表記したい。 でも、毎行4つのスペース挿入はかったるいし、複数行コードを記載する表記(バッククオート3つ)は機能しない。 解決策 <pre><code>タグを使用する。 こんな感じ。 `` print('hoge'</code></pre>…

メソッドパラメータの型指定でHigher Kinded Typesを使う

やりたいこと メソッドのパラメタで、Mapを使いたい。 で、Mapのキー(または値)の型を明示的にしておきたくない。 いくつかの種類の型をキー(または値に持てるようにしておきたい) 解決法 Higher Kinded Typesを使う。 日本語にすると、「高階型変数」と…

男のための機械学習〜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を使った分析の話を書いたが、ハマったところがあったので、書いておく。 ハマったところ やりたいことは、実数空間を、別の軸ではられる空間に射影することだった。 従って、射影ベクトルは入力次元と同じだけ必要となる。 が、なんどやっ…

Arulesを使う上で、つまったところ

R

やりたいこと データに対して、連関規則を見つけたい。 いわゆる、「バスケット分析」や「アソシエーション分析」を行ないたい。 RではArulesパッケージが用意されているので、簡単に活用できる(はずなんだけどなあ) arulesの使い方はここやここなど、とっ…

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から情報取得をしている時にこんなエラーが発生してしまった…

AWSのバックアップツールが動作しない

やりたいこと AWSのインスタンスバックアップを取りたい。 簡単に使えるという、AWSのバックアップツール群を使いたい。 ちなみにS3へのバックアップの手順はこんなサイトにありがたく説明されている 問題 Amazon AWSのインスタンスのバックアップをとるため…

ヘッダを維持したまんまファイルをunixコマンドで結合したい

やりたいこと headerがあるファイルを連結したい。 イメージ的には、ヘッダ付きのcsvとかtsvをcatコマンドで結合する感じ。 でも、catコマンドだと、結合したファイルのあっちこっちに ヘッダ行が出現してしまう。 これは困った。 どう解決するか? awkコマ…

固有値分解と特異値分解の違いってなんだっけ?

ある日、行列を前にして、「さて、これを固有値分解。。。あれ、特異値分解。。???ん、そもそも固有値分解と特異値分解って何が違うんだっけ」と混乱に陥った。 そこで、もう一度、「何がどうちがうのか?」をおさらいしてみた。 勉強したのはここのサイ…

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

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