morit****@razil*****
morit****@razil*****
2005年 4月 10日 (日) 13:25:23 JST
> ドキュメントとsenna.hにはあるけど実装されていない > const void *sen_records_curr_key(sen_records *records); > を実装してみました。 うわーすみませんすみません‥。 仕様だけあって未実装の関数がいくつかあるのです。 (→ 未実装のものが分かるようにドキュメントにも反映します) APIの仕様自体、まだちょっと迷っている面があります。 (直交性があって、必要十分で、分かりやすいAPIを目指しているのですが、 なかなか難しい‥。) 現在の仕様では、類似文書検索や関連語抽出等を実装するための機能が欠けている のに、一部の機能については(小山さんが指摘するように)やや冗長なのです。 パッチ拝見しました。コーディングスタイルも揃えていて頂いて恐縮まくりです。 概ね正しく動作すると思われますが、sen_set_cursor_open()して、 最初のsen_set_cursor_next()する前に、sen_set_cursor_curr()を呼び出すと、 不正な値を返す可能性があります。 (sen_set_cursor.currは正しいエントリーを指していない可能性がある) > ただ書きながら思ったのですが、lib/index.cとlib/set.cでnext系 > と似たようなコードが重複して存在することになってしまうので、 > API的に無しにするのもアリかなとも思いました。 そうなんですよね‥。sen_recordsに関しては sen_records_curr_score() との バランスを考えて sen_records_curr_key() を設けてみたのですが、 sen_setには同様の操作はそぐわないかも知れません。 とりあえず、sen_records_curr_key() については、sen_records_next()の戻り値を _sen_records構造体に保存したものを返すようにしました。 sen_records_next()実行前にsen_records_curr_key()を実行するとNULLが返ります。 (せっかくのパッチなのに適用できずすみません) > を実行する必要がありますよね。この点ドキュメントの更新、ま > たはsen_index_open()等で自動的にcallするなどして頂けたりす > ると嬉しいです。 > # 最初忘れててハマりました。 すみません!! とりいそぎドキュメントに反映しました。 > 重要ではないのですが test/Makefile.am で /usr/lib/libmecab.la > を直接指定しているのは何故ですか? 意味ないです(^^) 取ります。 -- morita