タグ

ブックマーク / chasen.org/~taku (13)

  • Ajax IME ブックマークレット

    Ajax IME ブックマークレットを作ってみました.右クリックしてブックマークに登録してみてください. Ajax IME ブックマークにアクセスするだけで現在表示しているページにある textarea と inputbox が Ajax IME 経由で入力可能になるはずです.成功すれば2秒ほどで textarea の色が変わって Ajax IME 入力状態になります.Alt-O で元に戻ります. たいていはうまくいくようですが,まだまだ完璧ではなくて CSS がらみから入力のカーソル位置が激しくずれたり,javascript のイベントがフックできなくて変化なしといったことが頻発します.気長に修正していくつもりですが,みなさんのフィードバックお待ちしております. Mixi の日記投稿や Movable Type の投稿も若干癖がありますが問題なかったです.海外からの日記更新がかなり楽にな

  • きまぐれ日記: MeCab を使って N-gram を取り出す。

    Senna や HyperEstraier といった最近の検索システムでは n-gram インデックスが使われることが多くなってきました。正確には文字 n-gram ですが、(単語 n-gramとの対比) ようするに、テキスト中の n 以下までのすべての部分文字列を取り出して index に使う処理のことを言います。 n-gram の取り出しは、すごく簡単で、プログラミングしてもたいした量にはなりませんが、ここはあえて MeCab だけでやってみたいと思います。 まず、mecab-0.91 (src/tokenizer.cpp) に以下のパッチを当てます。(もしくは最新の CSVからソースを拾ってきます) 実際この記事を書くにあたって見つけたバグです。 4c4 < $Id: tokenizer.cpp,v 1.13 2006/05/03 07:56:28 taku-ku Exp $; --

    monolith
    monolith 2006/05/03
  • Teao分布

    Teao 分布 問題 Teaoという紅茶がAsahiから発売されています。その紅茶にはとあるバッジがついています。 そのバッジは12種類あります。 大好き 元気? おはよう おめでとう バイバイ よろしくね ファイト! ありがとう ナイショ よかったね こんにちは がんばって これらのバッジが等確率で出現するとした場合、いったい何 Teao を買えば 全12種類そろうでしょうか? つまり n (n>=12) かったときに全種類そろう確率を P(n) とした時、 n→∞にしたときの期待値 E を求めてください。 ∞ E = Σ n * p(n) n=12 こたえ Lisp版 コメント有り (Special Thanks to 宮田 さん) (defun fact (n) (if (<= n 1) 1 (* n (fact (1- n))))) ;;; ;;; n 回引いてちょうど k

    monolith
    monolith 2006/04/13
    この話どっかでみような..
  • きまぐれ日記: colinux から VMware Player に乗り換え

    一年以上 windows 上で colinux を使っていてこれといった不自由はなかったのですが、vmware player に乗り換えようと思い立ちました。colinux の環境のほとんどをある方に作ってもらって(カスタマイズされた linux kernel, xfs などなど)アップグレードの煩雑さや可搬性の問題があったからです。vmware player の利点は - ディスクイメージさえコピーすれば、Linux でも Windows でも同じようにゲストOS を動かせてポータブル - 普通のカーネルが使える - Linux 以外の OS も動かせる (Solaris 10 など) - 音が鳴る (あまり重要ではないけど) - USB デバイスが使える qemu を使って vmware 用のディスクイメージを作る方法がいろんなところで紹介されています。その通りにやるとあっけなくインス

    monolith
    monolith 2006/01/16
  • きまぐれ日記: Julius で遊んでみる

    オープンソース音声認識エンジンの Julius で遊んでみました。 Julius は、奈良先端科学技術大学院大学の鹿野研究室で開発されている音声認識エンジンです。 手前味噌になってしまいますが、奈良先端はいい大学ですね。ChaSen の例もそうですが、 大学としての成果を社会に還元しようという姿勢がすばらしいです。 さて 件の Juliusですが、 以前は敷居の高かったインストール作業がずいぶん楽になっています。 windows なら http://julius.sourceforge.jp/juliuskit.htm にあるディクテーション実行キットをダウンロードして、run_fast.bat を実行するだけでした。 はっきりとしゃべれば、面白いように認識してくれます。ぜひお試しあれ。 話が少し脱線しますが、先日 IBIS という会議に行った際、鹿野先生にお会いしました。音声認識はデータ

    monolith
    monolith 2005/12/04
  • Ajax を使った KWIC

    最近はやりの Ajax で KWIC を作ってみました. 青空文庫を検索します. こちらに KIWIC とAjax で作っ た IMEを組み合わせたテキスト検索ツールがあります. あわせて御覧ください. クエリ

    monolith
    monolith 2005/11/07
  • きまぐれ日記: キーワード抽出: tf-idf の意味づけ

    単語の重み付けの古典的な方法に tf-idf があります。文書中の各単語の tf-idf 値計算し、値でソートすると、その文書に特徴的な単語リストを得ることができます。 http://nais.to/~yto/clog/2005-10-12-1.html tf-idf は、単なるヒューリスティックスだと考えられていましたが、最近言語モデルに基づく情報検索手法がさかんに研究されるようになり、tf*idf の解釈が明らかになってきました。言語モデルに基づく手法は、ヒューリスティックスばりばりの手法と同性能にもかかわらず、文書のランキングに理論的で合理的な説明を与えることができます。 情報検索は、クエリ q に対し、もっとも適合する文書 d_opt を求めるタスクです。つまり、q が与えられたとき、文書 d が出現する確率 p(d|q) の最大化問題と解釈できます。 d_opt = argmax

    monolith
    monolith 2005/11/07
  • きまぐれ日記: Ajax で隠れた技術を表舞台に出す

    Ajax を知ったのは、今年の2~3月ぐらいだったと思います。この技術に触れたとき、「これで一般には表に出しにくい技術をデモれるかも。。。」と感じたのを覚えています。ほどなくして Ajax KIWI, Ajax IME, Ajax Migemo を作ってそれなりの反響が得られました。 私自身、Webアプリケーション開発の経験はほとんどありません。最近の Web 開発インフラの進歩の速さにはいつも驚かされています。一方、私は急激な進歩とは程遠く、表舞台には出てこない機械学習とか言語処理のツールをふだん hack しています。私がいる分野は、パフォーマンス(実行速度)が結構重要です。 いまさらながら C++ を使って実装していますし、パフォーマンス向上のためのトリビアをそれなりに蓄積しています。ほかにも高速な辞書マッチや文字列検索処理などのコードも書き溜めていました。 今思えばこれがかえって良

    monolith
    monolith 2005/10/06
  • きまぐれ日記: タグとマルチラベル問題と機械学習

    ネット上のサービスを見ていると、メールなりWebページをある一意のカテゴリに分類するという整理法から、タグ(ラベル)をつけるという整理法に変わってきているようです。 代表的な例は Gmail。フォルダという概念はなくメールにラベルを付与していきます。私が良く使う方法は、「リマインダー」のラベル(メールの重要さという観点)と「内容」のラベルです。二つはそれぞれ独立した分類方法ですが、フォルダだと同居できません。他の例だと「はてなブックマーク」があります。ユーザが任意のタグを付与することができます。 機械学習の言葉を使えば、従来のフォルダは「シングルラベル」の分類問題、後者のタグは「マルチラベル」分類問題となります。文字どおり、前者はインスタンスに対し1つのラベルのみを付与する問題、後者は複数のラベルを付与する問題です。 さて、機械学習の分野でマルチラベル問題はどう進展してるのでしょうか?実際

    monolith
    monolith 2005/10/03
  • Ajax を使った手書き文字認識

    Ajax を 使った手書き文字認識です。下のキャンバスにマウスで文字を描いてみてください。 デモ

    monolith
    monolith 2005/09/22
  • きまぐれ日記: Ajax を使った手書き文字認識

    Ajax で手書き文字認識を作ってみました。 http://chasen.org/~taku/software/ajax/hwr/ Javascript で描画処理を行い、非同期に座標情報をサーバに送ります。サーバでは文字認識を行い、尤もらしい結果を返します。 前回の Ajax IME と違い、今回はクライアントサイドではなくサーバーサイドの認識エンジンの開発をがんばってみました。画像処理は専門外で経験がありません。逆に言えば、チャレンジングな問題だったし、精度が向上していく様を見てるとわくわくしました。 認識には、機械学習アルゴリズムのひとつである SVM を用いています。学習データとして、オープンソースの手書き文字認識エンジンの Tomoe のデータを使っています。完全に機械学習ベースなので、適当に入力して正解を提示することを繰り返せば、精度が上がっていくと思います。 まだまだ、精度が

    monolith
    monolith 2005/09/20
  • きまぐれ日記: はてなキーワードを高速に付与

    monolith
    monolith 2005/09/08
  • Ajax IME: Web-based Japanese Input Method

    Webベースの日本語入力サービスです。海外からでもブラウザさえあれば日語を入力す ることができます。 特別なソフトは必要ありません。 使い方 お使いのコンピュータの日本語入力を切りかえて直接入力にします。 Alt-o (Ctrl-9) で Ajax IMEモードに変更します。(ボタンで切り替えるかえることもできます) 適当な文をローマ字で入力します。 spaceを押して漢字に変換します。続けて押すことで候補選択を行います。 returnを押す、もしくは次の入力を開始することで入力を確定します。 F9で強制的にカタカナに、F8で強制的にアルファベットに変換します。 再度 Alt-o (Ctrl-9)で直接入力に戻ります 海外旅行先や留学先, 海外のネットカフェなど日本語入力環境が 無いパソコンからご使用ください。 Firefox と Internet Explorer で動作確認をしていま

    monolith
    monolith 2005/08/11
    すごい!
  • 1