タグ

ブックマーク / sile.hatenablog.jp (6)

  • HTTPリクエスト並列化のボトルネック - sileのブログ

    今日(昨日?)は、HTTPリクエストを並列化して大量のURLからのデータ取得を高速化する、というようなことを試していた。 並列化 初めは単純に、個々のHTTPリクエスト(URL)を別々のスレッドで処理すれば、(イメージ的には)総処理時間もO(1)*1に近いものになるのではないかと考えていた。 その考えを反映して書かれたのが以下のコード: 参照: tiny-http[置き場]*2 (require :tiny-http) ; 0.1.7 ;; 引数のurlリストに対して、並列的にHTTPリクエストを行う関数 (defun parallel-http-request (urls) (let ((threads (loop FOR url IN urls COLLECT (sb-thread:make-thread ; スレッド作成 (lambda () (tiny-http:request u

    HTTPリクエスト並列化のボトルネック - sileのブログ
    yuiseki
    yuiseki 2013/07/30
  • Gomokuの形態素解析部をScalaで実装してみた - sileのブログ

    ここ数日はScalaのコップを読んでいて、何かまとまったプログラムをScalaで書いてみたくなったのでGomoku(Java形態素解析器。ver0.0.6)をScalaで実装してみた*1。 ・github: scala-gomoku(ver0.0.1) 以下、使用例とJava版/Scala版の簡単な比較メモ。 使用例 $ scala -cp scala-gomoku-0.0.1.jar // インタプリタ起動 & パッケージインポート scala> import net.reduls.scala.gomoku._ // 分かち書き scala> Tagger.wakati("Scalaはオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。") res0: List[String] = List(Scala, は, オブジェクト, 指向, 言語, と

    Gomokuの形態素解析部をScalaで実装してみた - sileのブログ
    yuiseki
    yuiseki 2012/03/05
  • Sanmoku: 省メモリな形態素解析器 - sileのブログ

    GomokuをベースにしたSanmokuという形態素解析器を実装した。 Gomokuに比べて解析時に必要なメモリ量が少ないのと初期ロード時間が短いのが特徴。 将来的には解析精度を若干落として、辞書サイズ*1をさらに削減する可能性もあるけど、現状は解析結果はGomoku互換。 Android等のリソースの制限が厳しい環境での使用を想定。 最低メモリ所要量とロード時間 以下、自分の環境*2での計測結果。 ## 最低メモリ所要量 # Gomoku(0.0.4)は 26MBのメモリが必要 $ java -Xmx26m -cp gomoku-0.0.4.jar net.reduls.gomoku.bin.Gomoku < /path/to/natsume-soseki.txt > /dev/null # Sanmoku(0.0.1)は 11MBのメモリが必要 $ java -Xmx11m -cp s

    Sanmoku: 省メモリな形態素解析器 - sileのブログ
    yuiseki
    yuiseki 2011/11/07
  • Igo: GoogleAppEngineで形態素解析サーバ - sileのブログ

    IgoGoogleAppEngine上で動かしてみた。 URL URLと仕様。 トップ: http://igo-morp.appspot.com/ 形態素解析: http://igo-morp.appspot.com/parse 'text'パラメータに入力テキスト*1をセットしてリクエスト(POST or GET)を投げると、形態素解析結果がUTF-8で返ってくる。 分かち書き: http://igo-morp.appspot.com/wakati 'text'パラメータに入力テキストをセットしてリクエスト(POST or GET)を投げると、分かち書き結果がUTF-8で返ってくる。 形態素解析と分かち書きの結果の書式はmecabコマンドのそれと同様。 $ curl -d text='すもももももももものうち' http://igo-morp.appspot.com/parse すもも

    Igo: GoogleAppEngineで形態素解析サーバ - sileのブログ
    yuiseki
    yuiseki 2010/11/23
  • HAMT: 実装してみた感想等 - sileのブログ

    HAMT(Hash Array Mapped Trie) - sileの日記の続き。 前よりはちゃんとしたものを実装したので、それをうけての感想など。 作成物: hamt-0.2.0 前回からの相違点 基的には『Ideal Hash Trees』*1に合わせた実装に修正*2。 変更点を挙げると、 HAMTのエントリ列(key/value及びamt-node構造体)用のアロケータを作成 エントリ列(simple-vector)のプールを作成してそれを使いまわすように HAMTは基的に挿入毎に新たなエントリ列を要求する(かつ古いものは捨てる)ので、その度に新規作成(make-array)するのは非効率 ルートではAMTノードの代わりにハッシュテーブルを用いるように変更 これはただのハッシュテーブル。配列の各要素はAMTノードのエントリと同様。 効率のため ルートのハッシュテーブルのリサイズ

    HAMT: 実装してみた感想等 - sileのブログ
    yuiseki
    yuiseki 2010/09/29
  • Igo : MeCabと形態素解析速度比較 - sileのブログ

    Igo(0.4.0)とMeCab(0.97)の形態素解析速度を再度比較してみた。 計時用のプログラム MeCabの計時用のプログラム。 参照: ReadLine /** * ファイル名: mec.cc * コンパイル: g++ -O3 -omec mec.cc `mecab-config --libs` * 計時方法: time mec <対象ファイル> * * gcc: 4.2.4 (Ubuntu 4.2.4-1ubuntu4) */ #include <mecab.h> #include "read_line.h" #include <cstdio> int main(int argc, char** argv) { mecab_t* m = mecab_new2("-Owakati"); ReadLine rl(argv[1]); const char* line; while(li

    Igo : MeCabと形態素解析速度比較 - sileのブログ
    yuiseki
    yuiseki 2010/03/21
  • 1