タグ

ブックマーク / takeda25.hatenablog.jp (12)

  • ぼくはこうやって(8年前)Googleに入った - アスペ日記

    入って1年ちょっとで辞めたぼくだが、流れに乗って書いてみる。 正直なところ、ぼくが書く意味はないと思った。 「どうやって」という話になると「入社試験を受けたら入れた」ということになるし、それはもう他の人が書いているからだ。 しかし、他の人の記事を見ているうちに、これならぼくが書けば違った視点からの記事が書けるんじゃないかと思った。 テーマは「光と影」。 ぼくの生い立ちを少し語る。 両親は京大卒。 父親は大学教授(最終的に)。 母親はぼくが2歳のときに統合失調症を発症、17歳のときに自殺。 子供は姉(2歳年上)とぼくの二人。 母親が統合失調症で病院に出たり入ったりしていたため、ぼくは家で姉と二人になることが多く、壮絶にいじめられた。 自閉的傾向が強かったぼくは、姉からしたら気持ち悪い存在だったんだろう。 その当時(ぼくは1974年生まれ)は自閉症なんて知られていなかった。 ぼくはどこからどう

    ぼくはこうやって(8年前)Googleに入った - アスペ日記
    InoHiro
    InoHiro 2019/04/02
  • 完備辞書(簡潔ビットベクトル)の解説 - アスペ日記

    以前、「簡潔データ構造 LOUDS の解説」というシリーズの記事を書いたことがあります。 LOUDS というのは木構造やtrieを簡潔に表すことができるデータ構造なのですが、この中で「簡潔ビットベクトル」というものについてはブラックボックスとして扱っていました。 また、中学生にもわかるウェーブレット行列を書いたときも、その中で出てきた「完備辞書」の実装には触れませんでした。 この「簡潔ビットベクトル」「完備辞書」は、同じものを指しています*1。 今回は、このデータ構造*2について書いてみます。 完備辞書でできること ビット列に対する定数時間の rank と selectです*3。 rank()は、「ビット列の先頭から位置 k までに、1 のビットがいくつあるか」*4。 select()は、「ビット列の先頭から見て、n 個目の 1 のビットの次の位置はどこか」*5。 それぞれ例を挙げます。

    完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
    InoHiro
    InoHiro 2018/10/18
  • 簡潔データ構造 LOUDS の解説(全12回、練習問題付き)

    日本語入力を支える技術」(通称「徳永」)や「高速文字列解析の世界」(通称「岡野原」)で紹介されている LOUDS というデータ構造を、12回に分けて解説しました。 友達に教える時に使ったもので、練習問題付きです。 実際に紙に書いてやってみるとわかりやすいと思います。 詳解 LOUDS (1) LOUDS とは 詳解 LOUDS (2) ビット列を作ってみる 詳解 LOUDS (3) 0番ノード 詳解 LOUDS (4) ビットの意味 詳解 LOUDS (5) 木構造の復元 詳解 LOUDS (6) インデックスでノードを表す 詳解 LOUDS (7) ノード番号からインデックスを得る 詳解 LOUDS (8) インデックスからノード番号を得る 詳解 LOUDS (9) 子ノードから親ノード 詳解 LOUDS (10) 親ノードから子ノード 詳解 LOUDS (11) 木の検索 詳解

    簡潔データ構造 LOUDS の解説(全12回、練習問題付き)
  • 機械翻訳と意味 - アスペ日記

    ここ最近、Google翻訳がリニューアルされ、性能が向上したという話が流れてきたので、さっそく試してみた。 ぼくが真っ先に試したのは、「母は、父が誕生日を忘れたので、怒っている。」だ。 なぜこの文が気にかかっていたかは後述する。 結果は次の通り。 "My mother is angry because my father forgot her birthday." すばらしい。 では、「母は、父が鞄を忘れたので、怒っている。」はどうだろうか。 "My mother is angry because my father forgot his bag." 完璧だ! 「誕生日を忘れた」の場合は「母の誕生日」と解釈し、「鞄を忘れた」の場合は「父の鞄」と解釈する。 これこそ、利用者が翻訳に求めるものじゃないだろうか。 しかし、ここまでだった。 次にぼくは、「父」と「母」を入れ替え、「父は、母が誕生日

    機械翻訳と意味 - アスペ日記
    InoHiro
    InoHiro 2016/11/13
  • 非公式PDF版SICP・新訳 - アスペ日記

    計算機プログラムの構造と解釈、通称SICPを一から翻訳し直しました。 ファイル: SICP非公式日語版 翻訳改訂版 リポジトリ: https://github.com/hiroshi-manabe/sicp-pdf また、今回の翻訳をするにあたって考えたことを別記事にまとめました。 腐った翻訳に対する態度について SICPはMITの有名なプログラミングの教科書です。詳しくはminghai氏の記事をご参照ください。 この翻訳改訂版は、minghai氏の非公式日語版(以降、minghai氏版)のあまりにも惨憺たる翻訳を見かねて、原著から翻訳をし直したものです。この翻訳を進めるにあたっては、minghai氏版の訳を置き換えていくというやり方で進めていきました。しかし、差分を取ればわかっていただけると思いますが、minghai氏版のテキストは痕跡をとどめていないはずです。この方式を採ったのは、

    非公式PDF版SICP・新訳 - アスペ日記
    InoHiro
    InoHiro 2015/10/31
  • 善意のひどい訳について - アスペ日記

    2014/10/14 追記: 補足記事を書きました。なぜ誤訳指摘をしたか ぼくは、ずっと昔から「ひどい翻訳」というものに憤りを感じてきた。 以前、別の記事に書いたこともある。 統計学を拓いた異才たちのようなひどい翻訳を見るたびに、どうして世の中からはこの手の悲劇がなくならないのかとため息が出る。 この前、またひどい翻訳を目にする機会があった。 C言語でプログラミングする際の覚書 ちょっと原文と比較すると致命的な誤訳がいくつも見つかる、最低クラスの翻訳だ。 やれやれと思いながら、翻訳のひどさを嘆くコメントをはてブに残して、ツイッターに流した。 pretty printers を優秀なプリンターと訳しているのを見て、これはちょっと手のつけようのない何かだと悟った / “C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAG…” URL 2014

    善意のひどい訳について - アスペ日記
    InoHiro
    InoHiro 2014/10/13
  • プログラマの生産性と報酬 - アスペ日記

    追記: 続編を書きました。マッチョとの戦い 最近、プログラマの生産性が話題です。 いろんな意見があるものの、個人的には 10〜100倍の生産性の違いはあると思います。 いや、それは違う、生産性の高いエンジニアは生産性の低いエンジニアに作れないものが作れるのだからそういう話ではない、という意見もあります。 しかし、実際には生産性の低いエンジニアができもしないことをしようとして結局できないで終わるということがあったりしつつも、何らかの貢献をするというのが普通だと思いますので*1、最終的には 10〜100倍の違いといった形に落とし込めると思います。 で、この生産性の違いはどこから来るのか。 個人的には才能だと思っています。 ぼく自身は、自分のことを中間レベルのエンジニアだと認識しています。 平均の 3〜10 倍できて、トップより 3〜10 倍できないくらい。 でも、自分が平均から抜け出るために何

    プログラマの生産性と報酬 - アスペ日記
    InoHiro
    InoHiro 2014/02/23
  • 中学生にもわかるウェーブレット行列 - アスペ日記

    id:echizen_tm さんの記事「ウェーブレット木の効率的で簡単な実装 "The Wavelet Matrix"」から始まったウェーブレット行列ブームから半年以上が過ぎ、すでに枯れた技術として確立されつつある感があります。 …嘘です。 日以外ではあんまり来ていません。 理由としては、やはりアルファベット圏では単語境界が明確であるため、こちらの記事で書かれているような「キーワード分割の難易度」といったことがあまり問題にならないということがあるかもしれません。 まあ、そういうわけで局所的に来ているウェーブレット行列ですが、日語をはじめとする単語境界のない言語圏にとっては重要なネタであると思うため、解説記事を書き直して*1みようと思います。 ウェーブレット行列でできること 主となる操作は、文字列に対する 定数時間の rank() と select()*2 です。 rank() は、「文

  • 日本語入力について - アスペ日記

    私が日本語入力について思っていることを書いてみる。 自分としては、デフォルト以外の日本語入力システムとして、ATOKGoogle 日本語入力ぐらい(まあ、Baidu IME とかもあるが)しかないのが心の底から残念でたまらない。 雑誌の特集などで、Google 日本語入力ATOK に単語や文章を変換させて精度を比較しているものを見かける。まあ総合的には同じぐらいの結果になっている。だが、実際に長い間使っているとわかるのだが、Google 日本語入力の間違え方のほうが「理不尽」なのだ。どうしてこれがこうなる? と思わず言いたくなるような。その点、ATOK は弱い部分が前もってわかる。アニメやゲームなど、マニアックな変換には弱い。しかし、ATOK である程度日語の文章を打ち慣れた人にとっては、そういう「難しいだろうな」と思うようなところは、打つ前からそのことがわかるものだ。 ATO

    日本語入力について - アスペ日記
  • Google 辞めました - アスペ日記

    Google辞めました。 最終出社日は 5月11日。 5月31日まで有給消化。 その後は無職。 転職先が決まっていて有給消化している「なんちゃって無職」ではなく、ガチ無職。 とりあえずハロワでも行こうと思う。 まず初めに。 この記事は、Twitter で @takeda25 をフォローしてくれている人たちが想定読者だ。 また、これは相当長くなると思う。さらに、中ではたとえ話を使うので、読んでもさっぱりピンと来ないかもしれない。 だから、長い文章を読んで「読んで時間を無駄にした」と思うタイプの人は、ここで読むのをやめてほしい。 もう一つ。 この記事を書いた人間(真鍋宏史)は無名の一社員で、ろくに業績もない。 そういう人間が何かを言っても聞く価値はないと思うなら、やはり読むのをやめてほしい。 この記事では、自分のいた場所に対してネガティブなことも書くと思う。 そのため、なぜそういう行動を取るか

    Google 辞めました - アスペ日記
  • 情報系修士にもわかるダブル配列 - アスペ日記

    最近話題の「日本語入力を支える技術」を途中まで読んだ。 3章がものすごく気合いが入っている。 trie(トライ)というデータ構造の2つの実装、「ダブル配列」と「LOUDS」について詳しく説明がされている。 ダブル配列については、ぼくは以前論文を読んで勉強しようとしたのだが、その時は難しくてあきらめた覚えがある。しかし、このの説明を読むことで理解ができた。 ありがたい。 感銘を受けたので、このを教材に友達と2人勉強会をした。 この2人勉強会というのは、ぼくが復習を兼ねて友達に教えるというのがだいたいのスタイル。 しかし、いざやってみるといろいろと難しい。 次のようなところでひっかかるようだ。 例のサイズが小さく、イメージを喚起するのが難しい。 最初の図のノード番号と、最終的なダブル配列上の位置が異なるため、混乱する。 単語終端について言及がないので、どのノードが単語を表しているかがわから

    情報系修士にもわかるダブル配列 - アスペ日記
    InoHiro
    InoHiro 2012/02/19
    丁寧なダブルアレイの説明
  • 可変次数 N-gram デコードのアルゴリズム - アスペ日記

    前に書いた N-gram 漢字-かな変換 - アスペ日記 のアルゴリズムについて。 かなり縦に長いエントリになると思う。途中までは一般的な日語自然言語処理にかかわること。 例として、「かれがくるまでまつ」というひらがなの文をデコードして、対応する漢字かな混じり文にすることを考える。 こういう時に使われるのが「ラティス構造」。こういうやつ↓ (この図は一回しか出てきません。ちなみにこのために Keynote 買ったようなもの) それぞれのノードで、そこに入ってくるエッジの中で一番確率が高いものとその確率を覚えていくことで、動的計画法によって最適なパスを導くことができる。 これをプログラム上でどう実現するか。 まず、共通接頭辞検索というものを使う。 これは、あるキーを渡すと、そのキーに前から一致するようなキーを持つ候補を列挙してくれるというもの。 例えば、「くるまで」をキーとして使うと、「く

    可変次数 N-gram デコードのアルゴリズム - アスペ日記
    InoHiro
    InoHiro 2011/08/07
  • 1