2012-01-01から1年間の記事一覧

cdbを使ってみた

前回のエントリでインストールしたcdbを使ってみました. 今回はmcdbを利用した例を紹介します. cdbあれこれ 実は最初はcdb++で試行錯誤していたのですが,何か上手く扱えていないらしく,なぜかハッシュ化したデータベースをメモリにのせてしまっているよ…

Constant Database (cdb) のインストール

Constant Database (cdb)のインストールをしたときのメモ. cdbは高速処理のために作られたデータベースで,変更処理ができないようになっています.mcdbとcdb++をインストールしました. mcdb のインストール これはcdbの拡張版. cdbよりも高速かつ大規模…

UTF-8テキストの簡易日本語判定

UTF-8で保存されたテキストの日本語判定をする必要があったので,そのメモ. 参考にしたのは,文字コードUTF-8の多言語を含むテキストデータの中に日本語を含むかどうかを調べる方法を探しております。 考え方 文字ずつUTF-8→UCS-2(あるいは、UCS-4)への変換…

SVMで多項式カーネルを使うメリット

SVMで多項式カーネルを使うメリットを考えてみます. 非線形カーネルである これは当然といったところでしょう. 入力空間をある特徴空間で考えられます. 例えば,2次元平面では分離できなかった標本を3次元,4次元にマッピングすることでうまく分離でき…

awkでファイル内の数値の平均を出す

ファイルに数値が入っていたときにawkを使って平均を出す方法をメモ普通にpythonとか使って書けばいいのですが,コマンドラインだけで実行できるメリットがあります. 用意するファイル 1.341055 2.124602 2.032869 1.423714 2.488840 1.098920 2.377547 2.2…

Djangoで静的ファイルを置く

Djangoでcssやimageを使いたいけど,どう設置していいかわからないときのメモです. settings.pyなどの変更 Djangoのチュートリアルで使ったmysiteの構成を考えます.まずmysiteの下にstaticフォルダを作ります. mysite/ __init__.py manage.py settings.py…

Mosesを利用したWebサービスを作る

機械翻訳のデモをやりたいと思ったときに,さすがにローカルのマシンでMosesを動かすのは自殺行為です. そこで,どこかのサーバーに置いておいて,そこにアクセスしたくなるでしょう. そのときのメモです. daemon.plを使う 詳しくはTranslating Web pages…

翻訳モデルの線形補間

前回に引き続き,ドメイン適応させるときに翻訳モデルを線形補間したくなったときのメモです. tmcombine.pyを使う 今回は言語モデルのときとは異なり,単純にmoses.iniに2つ翻訳モデルを書けば出来るわけではないようです. そこで,tmcombine.pyを使いま…

言語モデルの線形補間のパラメータチューニング

機械翻訳をやるときにドメイン適応させるために複数の言語モデルを線形補間したくなることがあります. そのときの方法をメモしておきます. 線形補間の式 各々のドメインで学習した言語モデルをとしたときの式です. IRSTLMを使ったときのチューニング IRST…

C++で正規表現(boost::regex_replace)

C++

C++で正規表現を使いたいなって思った時のことです. std::regex_replace か boost::regex_replace か? 最初は,std::regex_replaceを使うつもりで意気揚々と乗り込んだのですが, std::regex_replaceがなんちゃらってエラーメッセージが出て使えませんでし…

liblinearでマルチラベル分類をやりたいが…

liblinearというSVM学習ライブラリを用いてマルチラベルをやろうとしたときの話です. 公式サイトにマルチラベルと書いてある!? LIBSVM Tools: Multi-label classificationのページにマルチラベル分類について書いてあります. このページの案内に従って,…

MeCabを使ってみる

C++

C++でMeCabを使ってみます. いろいろなファイルは全て揃ってること前提です. プログラム #include <iostream> #include <mecab.h> #include <string> int main(int argc, char **argv) { std::string input2 = "すもももももももものうち"; const char* input = input2.c_str(); MeCab</string></mecab.h></iostream>…

ハッシュでキーを複数の値にしたいときの対処法

C++

例えば,2つのintをハッシュのキーにしたいと思ったときの対処法です. boostの利用 今回は boost/unordered_map.hpp と boost::hash_combine を利用します. この hash_combine によって、ハッシュ値を計算します. hash_combine は与える値の順番によって…

gzファイルで保存したときの速度(読み込み編)

ファイルが大きくなると、どうしても圧縮して保存しなくてはいけません。 そんなときにpythonのgzipを使ったときにどれくらいの遅延がでるのか知りたくて調べてみました。 プログラム #-*- coding:utf-8 -*- import time import gzip def test_a(): """圧縮…

gzファイルで保存したときの速度(書き込み編)

ファイルが大きくなると、どうしても圧縮して保存しなくてはいけません。 そんなときにpythonのgzipを使ったときにどれくらいの遅延がでるのか知りたくて調べてみました。 プログラム #-*- coding:utf-8 -*- import time import gzip def test_a(): """圧縮…

Mosesに挑戦(日本語編)

前回は仏英翻訳だったので,今回は英日翻訳に挑んでみた. コーパス データはTanaka Corpus - EDRDG Wikiを使わせていただく.データの中身は以下のフォーマット. A: ムーリエルは20歳になりました。 Muiriel is 20 now.#ID=1282_4707 B: は 二十歳(はた…

Mosesに挑戦(実行編)

前回でMosesをインストールすることができたので,今回はチュートリアルにそって構築する. SMTに有効な要素 まずは統計的機械翻訳に必要な要素を理解する必要がある. Mosesのチュートリアルには以下の要素によって機械翻訳が正しくモデル化できる書いてあ…

Mosesに挑戦(続き)

おさらい 前回では,MosesをインストールするためにGIZA++,IRST,SRILMをインストールした.今回はMoses,Boostをインストールする. Boostのインストール Boostを入れるためにまずは本家からソースを手に入れる.その後はチュートリアル通りに進めていく.…

Mosesに挑戦

研究でMosesを使う必要がでてきたのでメモ.MosesはSMTを利用するために必要. さすがに自分で実装する能力はないのでMosesに頼る.Mosesに関する資料はここに置いてある. マニュアルはこのPDF. Mosesに必要だと思われるライブラリ Moses Boost GIZA++ Mec…

データを追加して確認するときのリストと辞書型の速度比較

前回,データを検索する場合,リストをsetした場合と辞書型ではsetのほうが早かったけど,データの追加までを考えるとどうなのか気になったので調べた. プログラム #-*- coding:utf-8 -*- import time def test_a(list): for i in range(10000): list.appen…

データを探索するときのsetと辞書型の速度比較

前回のリストと辞書型の比較のあとsetを使えば高速化できることを思い出したので,再計測 プログラム #-*- coding:utf-8 -*- import time a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] b = {'a':1, 'b':1, 'c':1, 'd':1, 'e':1, 'f':1, 'g'…

データを探索するときのリストと辞書型の速度比較

データを探索するときのリストと辞書を速度比較してみた. プログラム 以下のプログラムで調べた #-*- coding:utf-8 -*- import time a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] b = {'a':1, 'b':1, 'c':1, 'd':1, 'e':1, 'f':1, 'g':1, …

TwitterのStreaming APIを使ってみた

PythonでStreaming APIを使ったので、そのときのことをメモ。 目的 今回の目的は、リプライ かつ 日本語のツイートを取得することでした。 だから、guess_languageというライブラリを利用しています。 また、ファイルが大きくなるのを防ぐために1000ツイート…

Oauth認証でツイートの情報を取得

少し前にtweet_idを指定して該当のtweetを取得する方法を紹介しましたが、今回はそれをOauth認証で。認証することで、APIの利用制限も緩くなるらしいので、必須! ここではpython-twitterを利用しています。 def getMentionWithOauth(tweetId): import twitt…

キーワードでツイートを検索する方法

研究でキーワードからツイートを集める必要があったのでメモ下では「"キーワード"+日付」をファイル名にしています。 保存するデータはツイートIDやユーザーIDなど。 urlopenは403エラーを返すことがあるので、正常に終了させたい人は例外処理を書いてくだ…

ニュースをつぶやくTwitterアカウント一覧

IT

今回紹介するアカウントはカテゴリに依存しないニュースをつぶやくTwitterアカウントです。 日本経済新聞 電子版 @nikkeionline読売新聞YOL @Yomiuri_Onlineasahi @asahiNHKニュース @nhk_news毎日jpニュース速報 @mainichijpnewsロイター.co.jp @Reuters_…

「グーグルで必要なことは、みんなソニーが教えてくれた」を読んで

就活中でソニーに興味があったので読んでみた. グーグルの元社長である辻野さんがソニーにいた頃の思い出と,グーグル時代の思い出を書きながら,比較する内容になっている. ソニー初期 ソニーには”エンジニアの人達の目が輝いていた”や”自分達の製品は世…

「成功のコンセプト」を読んで

楽天の三木谷社長の著書. これには楽天で大切にしている5つのコンセプトについて書いてある. 高校時代の剣道部で得た教訓ととても似ているので、照らし合わせながら思い起こす. 常に改善、常に前進 毎日毎日の努力が重要であるということ. これは万物に…

ポイントという名の足枷

ポイントはあると嬉しいけれど,それが足枷となることがある. ポイントが良い働きをするとき 商品を買ったとき ポイントが悪い働きをするとき 商品を誰かに紹介するともらえるとき なぜか 前者は商品を買うという行為が目的となっていて,ポイントはあくま…

Force-Directed Graphを触ってみた

Force-Directed Graphとは? Wikipediaの力学モデル (グラフ描画アルゴリズム)によると 力学モデルによるグラフ描画(力指向アルゴリズム)は、グラフを美しく描画するためのアルゴリズムの一つである。 ノードに大きさ,辺に重みを与えることができて,それ…