Re: dstttr

Thomas Michael Hagen <[email protected]>
Newsgroups gmane.mail.spam.crm114
Message-ID <[email protected]>
thanks, ger! that's a big, complex answer :)

first, there is no liaf because one cycle on the corpus will take about
three days. i prefer to start it again manually after that. (or do you mean
there should be a local liaf loop until the threshold is high enough?

mailtrainer checks against the threshold; you check against the
> latter, or so it looks (the 3.0 pR improvement after a training).


i thought i was checking against the threshold with this:

        eval (:bool:) /:@:(:*:pR: > 10) + (2 > 1):/ #i get errors when the
bool = 0, so i rig it to be 1 or 2.
        match [:bool:] /2/

because this will jump out to training if the threshold is below 10 (you
pointed out later that this statement could be simplified, will do that)


>
> The DS means you learn in class C *plus* you learn <refute> the same
> message in _all_ _the_ _other_ _classes_.
>

ok, that sublety escaped me. i'll implement that.


>
> From my POV, double sided is only good for Winnow,


that sort of makes sense, but the book said dstttr was the best for osbf,
which confuses me.


>
>
> a) the code looks like it assumes each classification will at least
> succeed in so far as that the 'right class' will be picked. Why do I
> say this? Because this code (edited):
>
> extracts the name of the class to train into from the classify output.
> Are you _really_ sure you want that? Because now false classifications
> will be trained when their pR is below 10 (and for the wrong class).


no, i don't. thanks for pointing that one out.

>
>
> b) there's an interesting comment in that piece of code as well (unedited):
>
>            {
>            match (:: :pR:) [:stats:] /Best match.*: (.*)  \nTotal/
>            isolate (:bool:)
>            eval (:bool:) /:@:(:*:pR: > 10) + (2 > 1):/ #i get errors
> when the bool = 0, so i rig it to be 1 or 2.
>            match [:bool:] /2/
>            output /Classification succeeded as ':*:class-conc:'\n/
>            return
>            }
>
> what errors did you get?


i can't remember, and now that i try to reproduce it, it doesn't show up.
probably some stupid syntax mistake i did a few weeks back.


> (You're wicked, you know that? Adding a
> second conditional in there like that, which will be evaluated after
> the first and always flag 'true' so eval will not 'fail' to the outer
> {} scope. Hadn't thought of that one before.)


well, that was only to avoid the 0. it will fail to the outer scope if the
match fails, but this is very verbose and should be done with your one-liner
(below) in stead. i tried that in stead, and it worked.

>
>            {
>            match (:: :pR:) [:stats:] /Best match.*: (.*)  \nTotal/
>            eval /:@::*:pR: > 10:/
>            output /Classification succeeded as ':*:class-conc:'\n/
>            return
>            }
>           # we land here when the eval check fails... (or when the
> match doesn't hit pay dirt)
>

so, apparently there's a lot of subtle work for me to do to get this whole
thing right.

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H

_______________________________________________
Crm114-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/crm114-general
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.