タグ

ブックマーク / d.hatena.ne.jp/nokuno (20)

  • 情報系の学生がやっておくべき10000のこと - nokunoの日記

    「情報系の学生がやっておくべき10000のこと」というタイトルの記事があったので、何事かと思いました。10000 things all ICS students should do before graduating | Tagide10000個もあるのか…とびっくりしましたが、よく読むと2進数で書かれていて、16個という意味でした。内容もとても良いことを言っていると思うので、簡単に紹介してみます。 0000 – 自分のドメインを買う 0001 – Apacheをインストールして設定をいじる(複数ドメイン対応とか) 0010 – WordPressをインストールしてブログを書く。文章スキルも大事。 0011 – 自分のウェブサイトを運営する 0100 – LAMPでウェブアプリを書く。少なくとも1つ、できればPHPPythonで。 0101 – 自分のサーバー(物理orクラウド)を持つ

    hiromark
    hiromark 2011/07/04
    原文読んでませんが、もっと計算機科学の基礎をおさえようよー、とか思っちゃうんですけど。
  • K-meansアルゴリズムの導出 - nokunoの日記

    引き続き東大の「創造情報学連携講義VII」より栗原さんの課題2を解きました。創造情報学連携講座 問題個のデータをk個のクラスタにクラスタリングしたい。このとき番目のクラスタの中心をとして、minimize: となるような各データからクラスタへの割り当てとクラスタ中心を求めるためのアルゴリズムとして以下のk-meansクラスタリングが導出できることを示せ。 クラスタ中心をランダムに初期化する 収束するまで以下を繰り返す ステップ1:それぞれのデータ点に最も中心が近いクラスタを割り当てる ステップ2:それぞれのクラスタの中心をクラスタ内のデータ点の平均によって計算する 回答 ステップ1ステップ1では、 を固定して を更新する。minimize: for all これの最小化は全てのに対し、データ点に最も中心が近いクラスタを割り当てることで達成される。minimize: for all iよって

  • Evernoteのアーキテクチャ概要 - nokunoの日記

    みなさん、Evernoteは使っていますか? Evernoteは「全てを記憶する」が合言葉のメモアプリで、クラウド上にデータを保存してWin/Mac/iPhone/Webから共通のデータにアクセスしたり同期したりできるのが特徴の便利なサービスです。開発元はシリコンバレーの会社ですが、日人のユーザも非常に多いそうで、Evernoteの使い方についての記事は日語でも星の数ほどありますのでここでは触れません。 今回は、そのEvernoteの裏側のシステム概要を解説する記事が今月開設されたばかりの技術ブログに公開されていましたので、翻訳してみました。Architectural Digest | Evernote Tech Blog はじめにこのブログの手始めとして、Evernoteの構築について大雑把な概要を述べる。ここではそれぞれのコンポーネントの詳細に踏み込むことはしない。それらについての

  • Facebookの新しいリアルタイム解析システムとは? - nokunoの日記

    Facebookの新しいリアルタイム解析のシステムでは、HBaseで1日200億件のイベントを処理しているそうです。以下の記事の翻訳です。High Scalability - High Scalability - Facebook’s New Realtime Analytics System: HBase to Process 20 Billion Events Per DayFacebookがまたやってくれた。彼らは巨大なリアルタイムデータのストリームを処理するもう1つのシステムを構築したのだ。以前にもFacebookはリアルタイムなメッセージシステムをHBaseで構築している(http://highscalability.com/blog/2010/11/16/facebooks-new-real-time-messaging-system-hbase-to-store-135.ht

  • Quoraを支える技術 - nokunoの日記

    勉強になる記事を見つけたので気になったところを翻訳してみました。Quora’s Technology Examined | Phil Whelan's Blog はじめにQuoraはハイテク起業家の世界を体現しており、問題を見つけるのが難しいほどなめらかなシステムを提供している。この巧妙なシステムは回答者と質問者だけに支えられているわけではなく、よく練られたバックエンドシステムによっても支えられている。それは共同創業者がFacebookで磨きをかけた技術でもある。さほど驚くべきことでもなく、賢い人々は良く考えられたたくさんの賢い道具を使う。NoSQL信者たちはこう言って頭をかかえる:「なぜQuoraはCassandraやMongoDBやCouchDBのようなNoSQLではなく、MySQLをデータストアとして使うのか?」このエントリではQuoraについての技術的な情報をまとめ、考察を行う。彼

  • Googleのエンジニアに必要とされるスキルセットは何か? - nokunoの日記

    以下のQuoraの翻訳です。この質問に対して、秘密主義で知られるGooglerたちが答えているのがいいですね。What are the skill-sets needed to be a Google Engineer? - QuoraGoogleエンジニアに必要とされるスキルセットは何か? 回答1ほとんどのプログラマはブラックボックスを使用しています。データベースはブラックボックスです:SQLを与えると、答えが返ってきます。コンパイラもまたブラックボックスです:ソースコードを与えると、実行バイナリ(またはエラーメッセージ)が返ってきます。たくさんのプログラマがこれらのブラックボックスを所与のものとして扱うことでハッピーになります。よりよいプログラマは、そのなかで何が起こっているのかを不思議に思い、中身を開けてみてみるのです。私が言いたいのは、Googleエンジニアに必要とされているス

    hiromark
    hiromark 2011/02/10
    一見当然の事だけど実は結構難しいことが回答に。
  • ねんがんの Hadoop徹底入門 を手に入れたぞ! - nokunoの日記

    というわけで届いたのでざっと読みました。ともにHadoopを実際に活用するために必要な情報をコードを示しながら説明しているため、象Hadoopとかぶっている部分もありますが、いくつかの点で異なっているのでその点を挙げてみたいと思います。 Hadoop0.21系の情報がある 0.21系は使ったことがないので、hdfsコマンドが分離されたことなどは初めて知りました。 利用者の目線で書かれている 象が開発者の目線で書かれているのに対し、利用者の視点で書かれています。 コマンドオプションやログファイルの管理方法などが分かりやすいと思いました。 MapReduceのユニットテスト(MRUnit)やデバッグの方法は非常に役に立ちます。 Hiveについて詳しい 私は使ったことがないのですが、Java MapReduceの次に1章を割いてHiveについて説明されています。 「SQLに似ている」というこ

  • Hidden CRFを用いた評判分析 - nokunoの日記

    Google社員の公開論文のRSSを購読しているのですが、そこで面白い論文を見かけたので流し読みしました。この論文自体はGoogleでインターンをした学生の研究のようですが、Hidden CRFを用いた評判分析というテーマでなかなか面白いと思いました。“Discovering fine-grained sentiment with latent variable structured prediction models”, Oscar Tackstrom, Ryan McDonald, European Conference on Information Retrieval, 2011.(pdf) 問題設定入力文書が複数の文で成り立つとき、「文書単位の評判」と「文単位の評判」を判別したい。ここで評判とはポジティブ/ネガティブ/中立の3値を取る。評判の対象の決定は手法に含まれない。与えられた

    hiromark
    hiromark 2011/02/06
  • 動的計画法再入門(1) - nokunoの日記

    プログラミングコンテストチャレンジブックを読みながら、動的計画法の復習をしています。プログラミングコンテストチャレンジブックこのはコンテストの紹介とか環境構築の説明はほとんどなく、普通にアルゴリズムの教科書として優れているのでタイトルに騙されないようにしましょう(笑)。それはさておき、この記事ではp.52のナップサック問題を例に、動的計画法の考え方と実装方法について検討してみます。 ナップサック問題重さと価値がそれぞれw_i, v_iであるようなn個の品物があります。これらの品物から、重さの総和がWを超えないように選んだ時の、価値の総和の最大値を求めなさい。制約:1 1 1 <例>入力:n = 4(w, v) = {(2,3), (1,2), (3,4), (2,2)}出力:7 (0,1,3番の品物を選ぶ) 方法1最初に書いたコードがこれです。再帰による全探索で、荷物を左から順番に選んで

    hiromark
    hiromark 2011/01/20
    この本読んで良かったと思ったことの1つは動的計画法を徹底的に復習できたことだと思っている。
  • 第9回 データマイニング+WEB 勉強会@東京に参加してきた - nokunoの日記

    というわけで行ってきました。第9回 データマイニング+WEB 勉強会@東京 ( TokyoWebmining 9)?1st Week? 大規模解析・機械学習・クオンツ 祭り? : ATNDFirst Weekって。■大規模解析:1. Mahout Canopy Clustering (講師:@hamadakoichi)(発表30分+議論60分) Canopy Clusteringは通常の多くの手法と異なり、クラスタ数指定を必要とせず、指定距離 離れたクラスタ算出を実現する。 Hadoop上で動作する大規模データマイニング・機械学習ライブラリ Mahoutでの実行法も含めお話しします2. 機械学習=機械の代わりに人間が学習 (講師:@shuyo))(発表20分+議論40分) Gihyo.jp でも機械学習の連載し裾野を広げる活動をされている @shuyo さん。 今回、機械学習歴史や専門外

  • NLP関係のリソースまとめ - nokunoの日記

    先日オープンソースのtrieライブラリについてまとめましたが、それ以外にも家での開発に使えるリソースが増えてきました。 コーパス WikipediaコーパスTwitterコーパスBaiduコーパスWebコーパスWikipedia対訳コーパスオープンソース対訳コーパスMS-IMEコーパス 辞書 WikipediaタイトルはてなキーワードIPAdicUnidicalt-cannadicSKK評判辞書

    hiromark
    hiromark 2010/12/19
  • オープンソースのTrieライブラリまとめ - nokunoの日記

    最近、趣味で開発しているStaKKのためにTrieライブラリを書いているのですが、参考にするためオープンソースのTrieライブラリについて調べました。簡潔データ構造を用いたものが中心です。 @hillbig氏によるもの tx LOUDSによる圧縮でメモリ使用量を削減したTrieライブラリ。 関連記事:Tx: Succinct Trie Data Structure Engineering the LOUDS Succinct Tree Representation - 射撃しつつ前転ux txの改良版。tailの圧縮によりtxの1/2くらいのサイズになるらしい。要チェック。 関連記事:ux... - ny23の日記id:s-yata 氏によるもの taiju LOUDSを含む簡潔データ構造を用いた大規模Trieライブラリ。sumire-triesインメモリの簡潔データ構造を実装した大規模T

    hiromark
    hiromark 2010/12/16
    必要なときに詳細チェックする。
  • スペル訂正エンジンを作ってみた - nokunoの日記

    紫蘇カンファレンス2010というイベントでLTをしました。紫蘇カンファレンス 2010 - しソ部Togetter - 「紫蘇カンファレンス 2010」内容は、StaKKのスペル訂正機能についての解説です。統計的自然言語処理エンジンStaKK - nokunoの日記shisoconf 2010 Spelling CorrectionView more presentations from nokuno. 他の人は画像会話用の画像検索エンジン「tiqav(ちくわぶ)」や、Flickrのお気に入りをふぁぼったー的に表示してくれる「flistr」など、幅広いサービスや技術やネタが満載の楽しいイベントでした。tiqav / ちくわぶFlistr - View Flickr Photos Favorited by Your ContactsWWSみんなが頑張っているのを見ると刺激になりますし、今の環

  • 統計的自然言語処理エンジンStaKK - nokunoの日記

    統計的自然言語処理エンジンStaKK を開発しました。nokuno’s stakk at master - GitHub 以下、READMEからの引用です。 現在の機能 かな漢字変換 予測変換 または サジェスト スペル訂正 形態素解析 HTTPによるAPIサーバ Trieの直接操作現在は、StaKK は辞書として Mozc (Google日本語入力のOSS版)のデータを使っています。 リバースモードについてStaKK はノーマルモードとリバースモードの2つのモードを持っています。 ノーマルモードでは、かなを入力し、単語(主に漢字)を出力します。 リバースモードでは、単語を入力し、読みや品詞を出力します。これらの2つのモードの応用例をまとめると、次の表のようになります。 機能 ノーマルモード リバースモード Convert かな漢字変換 形態素解析 Predict 予測変換 検索ワードのサ

  • 「言語処理のための機械学習入門」を参考に各種モデルに対するEMアルゴリズムを実装したよ - nokunoの日記

    Amazonにもレビューを書いたのですが、高村さんの「言語処理のための機械学習入門」を読みました。実はこのを読むのは2回目で、1回目はドラフト版のレビューをさせていただく機会があったのですが、そのときは「言語処理研究者のための機械学習入門」というタイトルで、ちょっと敷居が高いのではないかとコメントしたら「研究者」の部分が削られたという経緯があったりしました。 それはともかくとして、以前読んだときは時間もなくて実装までする暇はなかったのですが、今度はもうちょっとじっくり読みたいなということで、このブログに書いてみようと思います。EMアルゴリズムは教師なし学習を確率モデルと最尤推定でやろうとするときに必ず出てくる手法で、隠れ変数や欠損値を含む色々なモデルに適用できる汎用的なフレームワークになっています。一般的には混合ガウス分布の場合をまず説明して、それがk-means法の一般化した形になって

    hiromark
    hiromark 2010/08/08
    しらふのときにエントリちゃんと読む。この本買ったけど他の専門書が読み終わってなくてまだ手付かず。。。
  • SVMによる予測変換 - nokunoの日記

    Google日本語入力のOSS版であるMozcが公開されたので、ソースコードを読んでみました。Google Japan Blog: Google 日本語入力がオープンソースになりました mozc - Project Hosting on Google Code変換アルゴリズムや学習のロジックに関しては、id:tkngさんが早速ブログにまとめていますので、そちらを読むとよいと思います。また何か気づいたことがあったら書いてみたいと思います。Mozc(Google日本語入力)のコードを読んだメモ - 射撃しつつ前転 Mozcのコードで個人的に興味深かったのは予測変換のアルゴリズムでした。私はもともと修論の時に予測変換の研究をしていて、予測変換のトレードオフという問題に取り組んでいました。予測変換は、単純に考えると候補の頻度が高ければ高いほど良いのですが、それだけだと常に最も短い候補が出力されてし

    hiromark
    hiromark 2010/05/17
  • pLSI をハードクラスタリングに使おうとしたけどイマイチだった - nokunoの日記

    きっかけはPythonでpLSA(pLSI)を実装している人がいたので、文書クラスタリングに使えないかな、と考えたことでした。satomacoto: PythonでPLSAを実装してみるただpLSIはいわゆるソフトクラスタリングで、以下のような問題がありました。 結果の解釈が直接しづらい 処理時間がかかるこのうち1つ目の問題は文書が与えられたときのクラスタへの所属確率 P(z|d) の最大値を取ってハードなクラスタリングの結果を得れば解決します。しかし、処理時間のほうはEMアルゴリズムの途中で0でないパラメータが多いことが原因なので、単にP(z|d)をハード化しても他のパラメータ (P(z|w,d)など) がなくならないのでイマイチでした。そこで P(z|w,d), P(w|z), P(d|z) の各パラメータをハード化することで高速化できないかなと考えたのですが、結果はかなり劣化してしま

  • Google技術講演会@東大に行ってきました - nokunoの日記

    id:tsubosakaに教えられて東大へ。Web上での告知は工藤さんのつぶやきだけだったのですが、最後に挙手をしてもらっていたのを見るに、他にも他大学や社会人の方がいらしていたようです。内容的には1/30に行われた大阪での講演と同じもので、詳しいレポートも上がっているのですが、自分の目で見て話を聞くとやっぱり情報量が違うな、ということが分かりました。 の虫: Google日本語入力技術講演会Google Tech Talk in Osaka に出るために梅田まで - 生駒日記以下、適当なメモ。 IMの一般的な紹介 キーバインドとかやたら多いというのは、私もSocial IMEの開発を初めてから知りました‥ 堅牢な設計について 大事なことなので3回言いますといって「IMEはクラッシュしてはならない」と6回言った(笑) 従来法は単一のDLLに実装されていた…? MS-IMEやATOKは別

  • Thriftインストールメモ - nokunoの日記

    かな漢字変換エンジンのような複雑なソフトウェアの開発には、シンプルなLAMPのアプローチだけでは限界があると最近は感じています。以前SWIGを使ってAnthyのライブラリをPHPから使えるようにしたのですが、SWIGのような拡張モジュールによる連携ではスクリプトが呼ばれるたびに初期化が必要となる、という問題点がありました。 というわけで多言語RPCフレームワークであるところのThriftを使ってみることにしました。まずは以下のページから体をダウンロードします。Apache Thrift次に公式Wikiを参考に、体と利用言語ごとのインストールを行います。FrontPage - Thrift Wiki以下のページのサンプルを実行してみます。Ubuntu 8.04 で Thrift を試してみた - なんとなく日記やり方はURLの通りですが、PHPの場合が紹介されていなかったので、thrif

    hiromark
    hiromark 2009/07/27
    メモっておく。
  • 予測変換APIを公開しました! - nokunoの日記

    Social IMEではWeb APIを公開していますが、昨年11月に公開したかな漢字変換APIに続き、予測変換APIを公開しました。 このAPIを使うと、たとえば次のような予測変換ができます。「はてな」で予測変換はてな はてなブックマーク はてなブック はてなダイアリー (以下略) ローマ字入力の途中での予測を行うと、このように展開されます。「わt」で予測変換私 私は 私の 私も 私が(以下略) また、長文を入力したときのかな漢字変換候補との統合にも対応しています。「きょうのてんきはは」で予測変換今日の天気は晴れ予測変換にはWebから抽出された大規模な統計量(Google提供)が用いられています。APIを活用したクライアントを開発されている方は、ぜひご利用ください。

  • 1