JGeek Log

About HOME Codes/ Posts
Amazon.co.jp
Mostly in Japanese
Filter English/Japanese
コメントいっこいれる
Archives
過去ログ
ディアスポラ数理研 副日記: . 研究mixi 読み中
Previously on JGeek Log: 40+ M Tokyo Geek of [SciFi+Science+Game] who had got a [degree+wife+job] keeps geeky blogging. This year he's crazy about insects.
 | 

2006-01-19

[][] キーワード置換アルゴリズム

http://d.hatena.ne.jp/hatenadiary/20060119/1137667217

うわーこれはこまったね。いままでは長いキーワードから抜き出していってたけど、TRIE 構造を使って文の前方からマッチを探して行くから短いのが優先されたりする。たとえば

本文:あいうえおかきくけこさしすせそ
KW1     いう
KW2       うえおかき
KW3             かきく
KW4               きくけこさし

という文でKW1-KW4のキーワードがマッチする場合、新しくなった方法では「いう」と「かきく」が抽出される。マッチがあっても何文字か進む間保留しとくとかの方法で解決できるのかな。LZ圧縮とかも辞書にマッチするパターンを番号で置き換えるとかしてると思ったんで、標準的なアルゴリズム何かあるんじゃないかねぇ。

追記:LZ系は保留はしない模様。ふーむ。

とりあえず、n文字のマッチがあった場合、これを候補1として仮採用し、こいつの2文字目からn文字目までを基点として、もっと長いマッチがないか調べる。あった場合は候補1を捨てて最長のものを候補2として採用、かつ候補1と先頭が一致するもっと短いキーワード候補1’があって候補2とオーバーラップしてなかったらそれを採用、て感じでいけないかな。必要であれば候補2について同じ処理を再帰的に行うと。

いやーしかし絶対文献調査すれば誰かやってる話だろうな、これは。しっかり調査してヘナチョコ車輪の再発明しないようにたのんますよ>はてな担当者

追記:うは社長にブクマされた http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/ita/20060119/p1

トラバいただきました: http://chasen.org/~taku/blog/archives/2006/01/autolink.html

なるほど、評価関数を設定して最適なのを選ぶんですね。キーワードのオーバーラップがすごく多かったりしたらナップサック問題っぽくなって死ぬかなとか思ったけど、それほど大変ではないようで。

追記:キーワード置換のAC法は Aho-Corasick法の略らしい。初め冗談かと思ってた。昔NetHackのコードとかいじった時、変数名とかバッティングしないように適当に aho_x とか付けてたけど(さすがに沼田さんに送った時は変数名を変えた)気を付けねば。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

 | 
Contact: Mitsuhiro Itakura/板倉充洋
ita.mitsu spam @ gmail, sausage, spam, egg, and com
最近のコメント

#. DATE NAME

1. 12/29 takara
2. 08/21 ita
3. 08/21 肉
4. 07/28 ita
5. 07/28 たざき
6. 11/10 ita
7. 03/23 ita
8. 03/23 hal_tasaki
9. 03/23 hal_tasaki
最近のTB

#. DATE  NAME

CALENDAR
<< 2006/01 >>
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
THIS BLOG CONTAINS UNFOOLPROOFED ENTRIES AND DUE TO ITS CONTENT SHOULD NOT BE VIEWED BY ANYONE■