タグ

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

  • 係り受け分析@きまぐれ日記: cabocha 0.60 pre1

    CaboCha0.60pre1を sourceforge.net に置きました。 約2年ぶりの更新ですが、機能やアルゴリズムを整理し、フルスクラッチから書き直しました。 1年前から出張の移動時間などを利用してコツコツと書きためていたのですが、 この正月休みに一気に整理してみました。 変更点: - UTF8対応 (./configure --with-charset=UTF8) - 文節区切りと固有表現抽出に CRF (実装はCRF++)を使用 - ChaSenへの依存を廃止し、MeCab のみのサポートに - 固有表現を行う前に文字列の正規化を行うことで若干の精度向上 - 簡易並列処理の廃止。係り受けのみ - APIの一新、より粒度の細かい制御が可能 - PerlやMakefileに依存していた部分の排除。 - 単一バイナリ cabocha-learn による学習の簡易化 (Windows

    pcod
    pcod 2008/01/17
  • きまぐれ日記: 情報抽出アルゴリズム Espresso 最終章

    Espresso を飲みながらさらに Espresso を考えていました。 r_instance = A^n * r_instance_0 となるのは間違いないと思います。A は P * P^{T}、さらに P = 1/|I||P| * pmi(i, p)/ maxpmi です。 A は、インスタンスどうしの類似度を表現した正方対称行列です。A_{i,j} はインスタンス i, j の類似度です。 類似度は、パターン個数次元からなるベクトルの内積で、各次元は pmi となります。 この形だと、r_instanc は r_instance_0 できまるので、初期値に依存してるように思えますが、A^n がいったい どういう意味を持つのかずっと考えていました。 A_{i,j} が 0, 1 の場合、A は無向グラフの接続行列となります。i,j がつながっている場合は A_{i,j} = 1となり

    pcod
    pcod 2007/10/15
  • TinySVM: Support Vector Machines

    TinySVM is an implementation of Support Vector Machines (SVMs) [Vapnik 95], [Vapnik 98] for the problem of pattern recognition. Support Vector Machines is a new generation learning algorithms based on recent advances in statistical learning theory, and applied to large number of real-world applications, such as text categorization, hand-written character recognition. List of Contents What's new Fe

    pcod
    pcod 2007/09/20
  • きまぐれ日記: Yahoo!の形態素解析をMeCabで無理やり再現してみる

    MeCabで形態素解析器を作りたい場合は以下の二つの言語リソースが必要です。 1. 辞書 (単語と品詞のペアの集合) 2. 入力文と、それに対応する正解出力ペア(正解データ) 現在公開している mecab-ipadic は、ipadicとRWCPコーパスという正解データを使っています。 ここから分かるとおり、少なくともMeCabを使う場合は、コスト値を丹念にチューニング するといった職人芸は要りません。形態素解析への入力文とそれに対応する(理想)出力 があればコスト値を機械学習的なアプローチで構築することができます。 さらに、正解データを人手で作る必要は必ずしもありません。 すなわち、Yahoo!形態素解析器の出力結果を「擬似正解」とみなして MeCabの学習プログラムを走らせれば、Yahoo!の出力を高い精度で再現できる MeCab用辞書を作成することが原理的に可能です。 ふだんはあま

  • きまぐれ日記: MECAPIを182倍高速にしてみた

    MeCabのWebService, MECAPI を182倍高速にして<みました。(2.68qps → 488qps) http://api.chasen.org/mecapi/ - Perlによる実装はやめて、完全に C++ で書き直し - CGI ではなくて、C++ による自作 HTTPServer - mecab のプロセスを prefork することで永続化 たつをさんのオリジナルMECAPIの機能はまだ完全に実装しておらず、基的な機能しか提供しておりませんが、随時サポートしていきたいと思います。 補足: 実際はネットワークのレイテンシーがあるので、外部ホストから計測すると体感としては、10倍程度の 高速化だと思います。 オリジナルMECAPI: Server Software: Apache/2.0.53 Server Hostname: chasen.org Server P

  • きまぐれ日記: ソートの平均要素移動距離

    配列をソートする際に各要素の平均移動距離はどれくらいになるか問題が同僚の間で話題になった. 結論から言ってしまえば,サイズ n の配列の場合平均移動距離は n/3 になるらしい. サイズ n の場合, 最右の要素は [0 .. n-1] に等確率で移動するので,直感的に考えると n/2 のような気がする.しかし,真ん中の要素は両側に移動するので,その距離は小さくなる.平均移動距離は n/2 より小さい値になるはずだ. 頭で考えるより手を動かしたほうが楽なので,モンテカルロサンプリングしてみた. 配列をランダムにシャッフルし,ソート済みの配列と比較して各要素の平均移動距離を求める.これを 1000 回繰り返し平均値を計算する. #include <iostream> #include <vector> #include <cmath> #include <algorithm> static

    pcod
    pcod 2007/02/08
  • きまぐれ日記: ルー語変換を MeCab だけで実現

    巷で話題のルー語変換.周りにこういうしゃべり方をする人がいるからかもしれませんが, 爆笑しました 中身は,MeCab -> EDICT -> Bilingual Emacspeak だそうです. 単純な単語置換なので,MeCab を汎用テキスト変換ツールとして利用すればまったく同じことが MeCab だけで実現できます. やってることは単純で, MeCab の辞書の品詞フィールドをルー語にした辞書を作るだけです.対象のルー語がない場合は単語そのものを品詞に設定します. 通常は 「入力文字列 -> 品詞列」 の変換が行われます.上記のような辞書を作ると,品詞の部分がすべてルー語に置き換わって 「入力文字列 -> ルー語文字列」の変換が実現されます. しかも単語のつながりやすさや,出現しやすさは上記のような辞書を作っても CSV カラムの 2,3,4 カラム目に残っているので, 原理的には M

    pcod
    pcod 2007/02/08
  • Taku Kudo

    Profile 名前 工藤 拓 (くどう たく) 職業 研究者 写真 お台場にて  ルスツにて 暇つぶし ウクレレ, スノーボード, ジャグリング, ダーツ Research Topics 統計的自然言語処理 形態素解析 テキストチャンキング 統計的統語解析 統計的係り受け解析 機械学習 Support Vector Machines Boosting Maximal Margine Classifiers データマイニング 半構造化データの高速マイニング テキストマイニング 評判分析 Software MeCab (次世代 形態素解析 エンジン) CaboCha (係り受け解析器) CRF++ (汎用 Tagger,Chunker based on CRF) YamCha (汎用 Tagger,Chunker based on SVM) TinySVM (SVM 学習パッケージ) Tin

    pcod
    pcod 2006/12/04
  • http://chasen.org/~taku/blog/archives/2004/11/post_756.html

    pcod
    pcod 2005/11/14
  • 1