2007-01-01から1年間の記事一覧

Text algorithms by M. Crochemore and W. Rytter

http://web.njit.edu/~rytter/teaching/texts/book.html 少し古い(1994)文字列アルゴリズムの本。

boost

regex [cxx][programming] boost::regex は Perl みたいな感じで正規表現を使わせてくれるライブラリ。 #include <iostream> #include <boost/regex.hpp> int main() { using namespace std; using boost::regex; using boost::sregex_token_iterator; string s("a/b c/d e/f"); sregex_</boost/regex.hpp></iostream>…

アナグラム

意外な単語がアナグラムだったりします。 thread HATRED reproduce PROCEDURE thousand HANDOUTS generate TEENAGER process CORPSES PROCESS ruby -e'class String; def sort(); self.split(//).sort.join;end;end; dic={}; ARGV.each{|f| File.open(f).eac…

N-gram Template Library

http://karlmicha.googlepages.com/lg 作ってたのとほとんど同じものがあった。

Rubyにおける改行

オブジェクトとメソッドのあいだには改行があってはいけないようです。 ↓コンパイルエラー p(1 + 2)↓もちろんこれはOK p(1+ 2)

配列の順列の列挙

class Array def perm() if self.length <= 1 then [self] else a=self[1..-1].perm; c=[]; a.each { |x| 0.upto(x.length) { |y| c.push( (y==0 ? [] : x[0..y-1]) + [ self[0] ] + x[y..-1]) } } c.uniq end end end "123".split(//).perm.each{ |x| p x }…

C++におけるユニコード文字列は std

wstring で [programming][cxx] C++でユニコード文字といえば ICU4C があるけれど、 ・APIが非常にJava的なので、あまり使いたくない(STLと相性が悪い) ・正規化処理等を含んでいるので、単に格納して単なる文字列と同じように使いだけの場合にはオーバース…

均等分割

cxx

最初を適当に決めて、残りを再帰で均等に。 頭の悪いアルゴリズムなので、計算量とかスタックとかがいろいろ大変なことになっている。 #include <iostream> #include <list> #include <iterator> #include <locale> #include <cassert> using namespace std; pair<list<wstring>,size_t> divid_len(size_t num, const w</list<wstring></cassert></locale></iterator></list></iostream>…

なんどめかの「知っていない」

lx

「知ってる?」 に対するもっとも適切な応答が 「知ってる」 もしくは 「知らない」 という非対称なペアであること、あるいはもっと端的には、 「知っていない」という表現がほとんど非文法的であることが近年問題になっているわけですが、 簡単に内省による…

TSPとしてのいろは歌(文字の都市)

文字2-gram確率の最大化だけを目的としたいろは歌生成は、 文字=都市の巡回セールスマン問題インスタンスに相当する。日本語の音韻的制約(iaはあるけどiuはないとか)を反映した程度の ゆるい文法性しか付与できないと思われる。文字N-gram化することも可…

リレーショナル・データベースの世界

http://www.geocities.jp/mickindex/database/idx_database.html

ruby でmultibyte文字単位の処理

/usr/bin/ruby -Ke -rjcode -e'STDIN.each{|x| if x.jlength>70 then puts x; end} 文字数70以上の行だけを出力する例

階層型生成モデルによるキャッシュモデル

lm

Algorithms on Strings by Crochemore

出てました。 あまり分厚くない文字列アルゴリズム本。 最近の文字列アルゴリズムの進展は全くついていけなくて、 書籍である程度基礎がためしないとなと思っていたので読んでみる。数ページしか読んでませんが、 この著者って Jewels の人ですね。 amazonで…

Xuerui Wang

http://www.cs.umass.edu/~xuerui/research.html data mining 系トピックモデリング

blogs nodalpoint wiki

http://wiki.nodalpoint.org/blogs

tr, s のほうが Unicode Japanese より速い

#! /usr/bin/env perl use utf8; use Benchmark; use Unicode::Japanese qw[unijp]; use Readonly; use Encode; Readonly my %dakuon => map {$_} split //, 'ウヴカガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドハバヒビフブヘベホボ'; Read…

use utf8 より $KCODE='UTF8' のほうが速い

#! /usr/bin/env ruby $KCODE='UTF8' require 'moji' DAKUON = Hash[*('ウヴカガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドハバヒビフブヘベホボ'.split //)] HANDAK = Hash[*('ハパヒピフプヘペホポ'.split //)] DAKUON_ORIGIN = DAKUON.ke…

Unsupervised Language Model Adaptation Incorporating Named Entity Information

http://acl.ldc.upenn.edu/p/p07/p07-1094.pdf 文書を表す単語ベクトルを、named entity だけにして、 文書クラスタリングに基づく適応をやったという話。

A Fully Bayesian Approach to Unsupervised Part-of-Speech Tagging

Fast exact maximum likelihood estimation for mixture of language models

lm ir

http://dx.doi.org/10.1145/1277741.1277948 情報検索の一部()で使われている、片方の分布が未知の混合ユニグラムモデルにおいて、 厳密かつ、線形時間な解法が得られた。p, q を多項分布に従う確率変数、\alpha を実数とするとき、 r = \alpha p + (1-\al…

www.codeblog.org - CODE blog

https://www.codeblog.org/

The Xapian Project

http://www.xapian.org/

未知語

lm

AABCDE、と6つの単語が出現するという事象の確率を求めることを考える。 簡単のために、モデルはスムージングも事前分布もない単語ユニグラムモデルとし、 訓練データでの分布も、同じ分布(A:B:C:D:E = 2:1:1:1:1)だとしよう。モデル1はABCという3つの単…

mecab/swig で形態素のオリジナルテキスト上での位置を得る

http://lists.sourceforge.jp/mailman/archives/mecab-users/2007-February/000231.html MeCab の出力フォーマットもしくは C/C++ API を使えば、ある単語が 元のテキストの何バイト目から何バイト目に出現したか分かるので、 元のテキスト中にスペースがあ…

Processing 1.0 (BETA)

http://processing.org/ Yet another programming environment for education http://processing.org/reference/libraries/

The Ubuntu NLP Repository

http://cl.naist.jp/~eric-n/ubuntu-nlp/ NAISTのericさんによる Ubuntu 用リポジトリ。

factored language models

lm

Traditional SLMs are based on N-gram language models (NGLMs), which essentially treat each word occurrence as an probabilistic event.Naive NGLMs are suffered with data sparseness. One examples was ...To avoid the data sparseness problem, .…

Language model smoothing tutorial

http://nlp.stanford.edu/~wcmac/papers/20050421-smoothing-tutorial.pdf ふつうのLMスムージング

系列ラベリング問題に関するメモ

http://cl.naist.jp/~masayu-a/article/2006-05-26.pdf