タグ

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

  • 統計的自然言語処理エンジン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法の一般化した形になって

  • NLTK Bookで教師なし形態素解析 - nokunoの日記

    意外と知られていないようなので、NLTK BookのSegmentationの節にある教師なし形態素解析(単語分割)について紹介してみます。 この手法では、テキストを「単語の辞書」と「単語IDの列」で表したときにその合計サイズが最小になるように単語分割の位置を最適化します。言い換えれば、単語の出現確率に一様分布を仮定して圧縮したときに、その圧縮効率を最大とするように単語を分割します。持橋さんの研究よりはるかに単純なモデルですが、原理としては近いものになります。最適化にはシミュレーテッドアニーリング(焼きなまし法)を使っていて、適当に初期化してからランダムに単語分割位置を変えて、評価関数にかけて良い結果になったら採用する、という操作を繰り返し行うものです。 NLTK Bookでは、英語のテキストからスペースを取り除いたものを用いて単語を抽出しています。これはかなり恣意的に選ばれたテキストで、

  • 1