タグ

ブックマーク / tech.preferred.jp (7)

  • Compressed Permuterm Index: キーワード辞書検索のための多機能&省メモリなデータ構造 - Preferred Networks Research & Development

    はじめましてこんにちわ。 4月からPFIで働いているまるまる(丸山)です。最近のマイブームはスダチです。 リサーチブログの更新が再開されたので、私も流れに乗って初ブログを書いてみようと思います。 今回は社内の情報検索輪講で少し話題にあがったCompressed Permuterm Indexを紹介したいと思います。 Paolo Ferragina and Rossano Venturini. “The compressed permuterm index”, ACM Transactions on Algorithms 7(1): 10 (2010). [pdf] これを実装したので以下のgoogle codeに晒してみることにします。 http://code.google.com/p/cpi00/ 修正BSDライセンスです。ソースコードは好きにしてもらって構いませんが、完成度はまだまだな

    Compressed Permuterm Index: キーワード辞書検索のための多機能&省メモリなデータ構造 - Preferred Networks Research & Development
  • STL風に使えるマップ型コンテナの紹介と性能比較 - Preferred Networks Research & Development

    最近スマートフォンに乗り換えました。徳永です。 C++は世に数あるプログラミング言語の中では比較的メモリをわない方ですが、それでもメモリ使用量が問題となる場合はあります。そのような場合の対処方法はいくつか有りますが、手軽に選択できる方法として、今日はSTLのmapやunordered_mapと同じ感じで使えるデータ構造をいくつか紹介したい思います。 以下、計算量の表記をする際には、要素数をnとします。 Loki::AssocVector LokiはModern C++ Designというの作者であるAndrei Alexandrescuが開発したライブラリです。AssocVectorはその中の一つとして提供されているクラスで、vector<pair<key, value> >という型のベクターをkeyでソートした状態で持つ事により、二分探索による要素の探索を可能にしたデータ構造です。こ

  • モダン並列・並行プログラミング ~ Concurrent Revisions による実装と現実 ~ - Preferred Networks Research & Development

    日社内向けのTechTalkにて、並列・並行プログラミングに関する話を行いました。 昨今、プログラムの並列化はなくてはならないものとなっています。しかし、そのプログラミング環境は依然としてロックを用いたものが主流です。今回の発表の主張を端的に申し上げますと、 “Locks must go!” ということになります。並列プログラミングに銀の弾丸はありません。しかし、ロックは別の何らかの安全性を確保したプログラミングモデルで置き換えられなければいけません。そうでなければ、再現しにくいバグに苦しめられ、終電を逃す日々と決別することはできないでしょう。また、ロックによるプログラミングの抱える質的問題にも言及しています。 この界隈の最新の動向として、去年OOPSLA’10にて発表されたConcurrent Revisionsについての解説も行なっております。また、弊社研究開発において、先日Con

    モダン並列・並行プログラミング ~ Concurrent Revisions による実装と現実 ~ - Preferred Networks Research & Development
  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • 専門知識の仕入れ方 - Preferred Networks Research & Development

    今日は,普段どのようにして専門知識を仕入れているかについて書いてみようと思います.特に自分が得意でない分野を知りたいと思った時に,どうするかに注目したいと思います.自分の専門の場合は,いくらでも時間を注ぐことが出来るので,世界中のリソースを全て探し当てて勉強すれば良いのですが,ちょっと興味が有るぐらいではそこまでやる時間は取れません.なので出来るだけ効率的に分かった気になるのが目標です. まず,論文を直接読むのはあまり効率的では無いと思います.論文は広い分野の中の或る問題に対して一つの解決方法を書いているだけで,分野全体を俯瞰することは目指していません.論文だけ読んで分野全体を理解するには,最低50ぐらい読む必要が有ると思います.

    専門知識の仕入れ方 - Preferred Networks Research & Development
  • twitterで自然言語処理 - Preferred Networks Research & Development

    勢い余ってスイカを買ったら、毎日べるハメになってしまいました。海野です。 どんな業界もそうだと思いますが、世の中の流行りものの論文が増えるという面が自然言語処理界隈にもあります。Web、blog、と来て、最近のトレンドはやはりtwitterに代表されるmicro blogでしょうか。今年の言語処理学会の年次大会でtwitterセッションは大盛況でしたが、国際会議でもtwitterを題材として発表が増えています。 数えてみたら、重要国際会議であるACLで6件、EMNLPでも3件、twitterをタイトルに含む発表が今年ありました。ちなみに2010年の会議では1件もありませんでした。そんなわけで、私も今日はそんな流行りに乗っかって、twitter言語処理関連の論文を3つ紹介します。 Cooooooooooooooollllllllllllll!!!!!!!!!!!!!! UsingWord

    twitterで自然言語処理 - Preferred Networks Research & Development
  • 分散データベース「HBase」の安定運用を目指して - Preferred Networks Research & Development

    1年経ってiPhone4の電池がヘタってきた、太田です。 指数関数的にエントリ数が少なくなってきたブログですがw、景気付けのためにエントリを投稿したいと思います!日はHBaseについてです。 Linux と Hadoop と HBase と ZooKeeper に詳しいあなた!あなたがターゲットです。 HBaseとは? HBaseとは、HDFS (Hadoop Distributed File System)上に構築された分散データベースです。大量の非常に細かいデータをリアルタイムに読み書き出来るのが特徴です。最近ではFacebook Messageの基盤技術として使用された事で注目を集めています。 HBase公式サイト Apache HBase ブック 保存されたデータはHDFS上に保存され、HDFSの仕組みによってレプリケーションされるため安全にデータを保持することが出来ます。 ま

    分散データベース「HBase」の安定運用を目指して - Preferred Networks Research & Development
  • 1