peiprog’s blog

情報科学を学ぶ大学4年生。主にプログラミング(機械学習寄り)の話題を書いていきます。

プログラミング

Python pickle化できないときの解決策(dill)

今回はPythonのオブジェクトをシリアライズするライブラリのdillについて書きます。 pythonのシリアライズはpickleを使っている人が多いと思いますが、pickleだと特定の条件での関数オブジェクトをシリアライズできないなどの制約があります。こんなコード…

Pythonでドキュメントの重み付け(Okapi BM25)

今回はOkapi BM25での文書の重み付けを実装します。目次 Okapi BM25とは 実装 導入してみた Okapi BM25とは TF-IDFに似た文書の重み付けの方法です。wikipedia(英語) 以下の式で表されます。 Dはドキュメント、Qは検索したい単語の集合、はQ中の単語、|D|は…

pythonで機械学習(kerasのOneHotレイヤーの作り方)

今回はkerasで学習時にOneHotベクトル化するレイヤーの作り方を書きます。テキスト分類などでは、学習の前に特徴ベクトル化するとメモリを大量に消費してしまい、PCのスペックが高くないとメモリ不足で動かなくなることがあります。それなら学習前はOneHotベ…

IT系就活についての話

私と友達の話や経験を元にIT系(主に独立系SIer、Web企業)の就活に向けてやっておくといいことをまとめてみました。目次 この記事の対象とする人 軽く自己紹介 なにをしておくといい? まとめ この記事の対象とする人 この記事は 独立系SIer、もしくはweb企…

Pythonでテキストの機械学習(相互情報量を使った特徴ベクトル選定)

今回は、ドキュメント群から生成したベクトルから、機械学習で重要な特徴ベクトルを抽出する内容です。テキストをベクトル化したものは何万次元にもなりますが、中には10000個あるドキュメントの中で1回しか出てこない単語など学習に必要のないデータが大量…

Pythonでsklearn+janomeを使って特徴ベクトル抽出

機械学習において入力データの形式はとても大事です。分類手法以上に大事かもしれないですね。今回はその重要な入力データの作り方(加工の仕方)についてです。テキストから機械学習に適した形の入力データに加工します。ライブラリを使うことで短く簡潔に…

Pythonでワードクラウド作ってみた

今回はPythonでワードクラウドを作ってみました。ワードクラウドとは 追記:英語のみ対応です。ライブラリ(pytagcloud)が日本語に対応していないので...。日本語に対応させたいなら描画のところは自前で書く必要がありますね(^^; 全体の流れは1.ドキュメント…