[mew-dist 21015] mew-refile-guess-by-thread-learn

KOIE Hidetaka ( 鯉江英隆 ) hide at example.com
2002年 6月 7日 (金) 16:16:03 JST


昔に「guess-by-threadに複数フォルダを学習させたいんです」と
聞いて何か返事をいただいたような記憶があるのですが、
そのメイルをさがし出せなかったので、もういちど考えてみます。

これ↓が希望する動作で、リファイルフォルダ(chosen)をそのまま学習します。
(defun mew-refile-guess-by-thread-learn (chosen info)
  ;; Create mew-refile-msgid-alist for mew-refile-guess-by-thread.
  (message "mew-refile-guess-by-thread-learn: %s" chosen)
  (let* ((msgid (mew-header-get-value mew-message-id:)) 
	 (folder (car chosen)))
    (if (and msgid (string-match "<[^ \n>]*>" msgid))
	(setq msgid (match-string 0 msgid)))
    (when (and msgid chosen)
      (setq mew-refile-msgid-alist
	    (cons (list msgid (mapconcat 'identity chosen ",") "??")
		  (delq (assoc msgid mew-refile-msgid-alist) ;; delq is right
			mew-refile-msgid-alist))))))

現行のmew-refile-guess-by-thread-learn()を
理解しようと試みたんですがあまりすっきりしません。

    学習するフォルダは、リファイルフォルダのうち
        guess-by-threadの推測に含まていたフォルダか、
        他のどの推測関数もはずれのフォルダ
    である。
    もし、 guess-by-threadの推測がかすりもせずはずれて、
    しかも他の推測関数はあててきた場合、
    しかたがないのでリファイルフォルダの最初のを学習する。

となっていると読みました。

またコードでよくわからないところがって
oho は二重ループの中で短くなっていきますが
内側のループに入りなおすまえに (setq oho info) が必要のように思います。

--
KOIE Hidetaka 鯉江英隆 <hide at example.com>



Mew-dist メーリングリストの案内