mots quotidiens.
Daichi Mochihashi (
持橋大地
)
daichi <at> ism.ac.jp
by
hns
, version 2.10-pl1.
先月
2009年03月
来月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2024年
2023年
2022年
2021年
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
1〜10日
11〜20日
21〜日
全て
2009年03月17日(火)
[
n
年日記
]
#1
振り返って
下で書かなかった諸々のこと。
教師なし単語分割は最初, 辻井研の松原君が(MDLで)やっていたりするので僕がやることもないかな.. と思っていたのですが, やはり計算言語学上重要なのできちんとやるべきだと思い,
*1
やってみたところ非常に複雑で, これまで特にベイズでない人がちょっとやってできるというものではないなあ.. というのが感想でした。
理論的には7月くらいで見えていましたが, とにかく実装が複雑で大変でした。
論文には複雑すぎるので書いていないですが, 特にトライグラムの Forward-Backward と viterbi が大変で, トライグラムの場合の前向き変数α[t][k][j]の計算には,
For t = 1 .. N
For k = 1 .. max(1,t-L)
まず部分文字列(=単語) c_{t-k+1} .. c_t をスタックにプッシュ
For j = 1 .. max(1,t-k-L)
次の文脈 c_{t-k-j+1} .. c_{t-k} をプッシュ
For i = 1 .. max(1,t-k-j-L)
c_{t-k-j-i+1} .. c_{t-k-j} をプッシュ
確率を計算して logsumexp でαを更新
という4重ループを回す必要があります。
実際にはC言語の添字は0から始まるので, t-k-1-j-1-i+1 文字目のようになる上, t-k-j文字目を計算しようとしたらすでに文字列の先頭だったりする(その場合はEOSを プッシュする)などの例外操作も必要なので, バグが取れたCVSリビジョンは37まで 必要でした。
開発は基本的に「銀河鉄道の夜」(1200文くらい)の生テキストを使って行い, 時々源氏物語で試す, という風にしていました。
普通, 自然言語処理では単語を整数のidに直してから後の処理に回すので, 自然言語処理といいつつ実は整数処理なんじゃないか, という気がすることがよく ありますが, 今回は開発中はktermの中は「カムパネルラ」だの「電燈」だの「ザネリ」 だので一杯で, おおいかにも自然言語処理, という感じでした。:-)
NL研は今回からペーパーレスになるので, PDFを差し替えられるのかと思っていたら そうでないことが判明したので, 情報処理学会の電子図書館には概要のページしか 載っていないと思います。下のリンク(or僕の論文のページ)にありますので, 本体はそちらをお取りください。 (同じ理由で, 来年度の山下賞の選考にはそもそもこれは入らないようです。)
*1
: 某岩波本のストーリー上不可欠, ということもあります。
1 days displayed.
タイトル一覧
カテゴリ分類
2024年
2023年
2022年
2021年
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
全て
1〜10日
11〜20日
21〜日
全て
Powered by
hns-2.10-pl1
,
HyperNikkiSystem Project