- 1 名前:名無しさん@お腹いっぱい。 [2005/08/14(日) 15:42:02 ]
- なんだかんだ言っても、一番使いやすいのは SKK
前スレ SKK専用スレッド Part6 pc8.2ch.net/test/read.cgi/unix/1074758741/ Part5: pc.2ch.net/test/read.cgi/unix/1067698174/ Part4: pc.2ch.net/test/read.cgi/unix/1049225392/ Part3: pc.2ch.net/test/read.cgi/unix/1033003685/ Part2: pc.2ch.net/unix/kako/1013/10132/1013245211.html Part1: pc.2ch.net/unix/kako/975/975253214.html
- 220 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 14:04:59 ]
- やっとこさyaskkserv-0.2の簡易レビューでも。
このサーバは独自形式の辞書を使います。 まずは挙動について: - 変換した辞書のパーミッションに'w'が付いてると、 illegal permission 0100664とか言われるのですが、 ユーザフレンドリになってくれると有難い。 - 未知の命令を受けつけた時('4'を含む)、なにも返してくれません。 - '2'(server version)に対しては'0.2'と、'yaskkserv'とかを含まない簡素なものです。 もし今後いろいろ機能を増やす方向に進むなら、どのサーバか分かるほうがいいかな。 辞書について: 送り有りと送り無しエントリを区別無くソートし、それを適当な固まり毎に ブロックとしています。 検索時はまずインデックス(これは通常メモリに保持する)から、 そのエントリがどのブロックに含まれるか割り出し、 該当ブロックを(おそらく)一気にメモリに読み込んだうえで、 そこに含まれるエントリに対してバイナリサーチ&リニアサーチします。 cdbなどのように全てのエントリへのoffsetを持つわけでないのでコンパクトになり、 普通のバイナリサーチと違いディスクのシークも減るというわけです。 おそらくメモリ内に持つインデックスを小さくする為だと思いますが、 「ひらがなエンコード」という見出しの変換を行なっています。 このため、平仮名のみからなる見出しを多く含む辞書(普通のですな)では 元のより小さくなる事があります(変換時のオプション次第)。
- 221 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 14:33:29 ]
- 性能について簡単に:
辞書の変換時のオプションでずいぶん変化するようです。 一番速い状況で、手元の環境ではskksearch using cdb-0.55の 2倍弱ぐらい時間かかります。 block sizeを大きくすると遅くなるようですが、 alignmentするとその程度を改善できるっぽい。 # でも辞書は大きくなります。block sizeが大きい程大きい。 short blockを指定する事の違いはよく分かりませんでした。 メモリに関してはpsでVSZやRSSを見ても、 各オプションの違いによる有意な差は無いように見えます。 # 環境によるかも。 その他: skk_jisyo.hppの辞書構造についての図で、dictionary|normalの 通常エントリについて、「(昇順ソート。常に存在する)」とあるが、 mazegaki辞書を対象とすればこれは違うような? IsOkuriAri()について > 「送りあり」の条件は以下の通りです。 > 1. 1 文字目が日本語 > 2. 末尾が a-z とあるが、「>じょうd /状/」のようなエントリもあります。 もっともこの関数は使われてないようなので関係無いけども。 # あ、skksearchのplainのokuri checkの箇所も。 先のレスの挙動のとこで忘れていましたが、 複数辞書を指定した時、どれか一つの辞書でヒットすると 残りの辞書を見てくれないようです。
|

|