Responding to jacquesm's challenge
jgc.org
jgc.org
Oh wait..
If I modify the parser to take case into account you jump up to #16.
Maybe we subconsciously adopt the style of the person we reply to :) ?
E.G:
* Quiet people don't want shouty salesmen so go quiet, reserved and professional.
* Some guy off a council estate/trailer park is typically not going to want to talk to a suit so in that case you'll adopt a very casual and matey tone as if you've bumped into him in a pub/bar.
* If I EVER met someone who "knew the score" (e.g. someone smart or knows how telesales work) then I'd just drop all pretences and give it to them "straight".
Those are the "obvious" kinds of NLP, there are subtle bits and pieces including copying their tone or turns of phrase. It does increase your conversion rate.
Obviously (almost) everyone HATES cold calls so one of my goals was to see how long I could keep "angrys" on the phone. NLP definitely helps here (although empathy, humility and diplomacy are probably more useful) I even managed to sell to one once! :D
Just as a challenge? Or with anything else in mind?
As long as you combine the right amount of humility, amiability and possibly humour you can turn almost anyone around. For example if someone is getting A LOT of sales calls and yours is the straw that broke the camel's back then you can still help them. Provide information, give em the telephone preference service number (to remove them from sales calls databases), tell them how automated diallers work or how the regulations work in regards to cold calls. Be honest.
There is no reason why any call should have to end in a negative on either side. :)
Unless risking this would increase success in general. ;o)
So, swombat, time to prove that you are onetimetoken.
or did I...
Perhaps I am alone in saying this, but I think data mining is interesting while web crawling is boring. Could somebody make the data available so that we don't have to write a crawler? Or is this part of the challenge?
I think this is a classic example of unsupervised learning, for which I would generally use a system like Fuzzy ART. I think that might perform better than a naive Basyesian text classifier though I can't be sure until I try it out.
edit: there's some new text to put through the filter: http://news.ycombinator.com/user?id=onetimetoken
and please try running the previous suspects through the filter: marketer, citizenparker, martythemaniak, eru, vaksel, neilc, vanelsas, swelljoe
Also, if it's not you of those, please formally deny it.
The prior probability is based on the number of comments a user makes. In this case that prior is insignificant because the sample text is large.
I think the next step is to write a more complex filter that does not assume word probabilities are independent of each other, i.e. take unusual phrases like "entirely dissimilar" into account.
This uses your notation from the Dr Dobbs article, so that Ci (a category) is a user and D is a document (a comment?).
Did you use something like trigram signatures?
Also, is P(Ci) equal to #comments made by Ci/total number of users?
Interesting stuff jgrahamc!
You probably want to do an N-gram analysis, like that performed by libtextcat http://software.wise-guys.nl/libtextcat/. This will perform a comparison based on common combinations of letters used (like "wo", "or", "rd"). Seems like it would be more accurate with such a relatively small sample of comments. If you had a list of 10-20 possible candidates, you could narrow it down to just a few.
There's an interesting lesson here that probably says something like the coolness of the tool used has no direct relation to the usefulness of the conclusions provided.
Edit: If someone here has a background in intelligence I would love to here their take on the challange.
That's why I personally discounted many from your first list (plus the fact I know a few are native English speakers)
Now I have to add my third from the list: nostrademons.