I'm trying to classify e-mails using Mallet. If the classifier is too unsure about a new e-mail I would like a user to do the classification instead.

I figured I could use the Mallet Labeling output for this:

Labeling labeling = classifier.classify(instance).getLabeling();


My problem is that when I use an SVM my labels are all of certainty 1 or 0.

CLASS1: 1,0         CLASS2: 0,0         CLASS3: 0,0         CLASS4: 0,0         CLASS5: 0,0 


I would like the output to be more like this:

CLASS1: 0,9945          CLASS2: 0,0047          CLASS3: 0,0005          CLASS4: 0,0001          CLASS5: 0,0001  


The second output was generated using the Maximum Entropy classifier.

My question is:

Can an SVM give me estimates between 1 and 0? Is this behavior typical of an SVM or is it just the implementation I'm using.

Follow up question: Is the Maximum Entropy classifier generally just as good as an SVM when it comes to text?


Question: Get IP network range after reverse DNS?
Answer: 
  Is there any way to obtain an entire range of IPs from a reverse-DNS?


Not really, no; in extremely rare cases you might be able to do a DNS zone transfer query to get all the records in the zone (the whole /24, generally), but there's a very low chance that the name server you're querying will respond to this request. Expect one query per address for reverse DNS (sorry!).


  Now, would it be safe to assume that all at least all IPs from 128.151.162.* will also resolve to rochester.edu?


Generally speaking, probably, as a university they're likely to own the whole /24.  However, that's not a good rule to apply as a general case; a smaller school might not have a whole /24, or might not have it in reverse DNS.



The reverse DNS itself is going to be pretty hit-or-miss - in many cases it'll be just generated names under the ISP's hostnames or no records at all.  For better data, we're going to make things even more expensive - you should also look at data from whois.

For example, here's the info from that Rochester IP - it shows the size of the allocation (the whole /16 range, so in this case that applies to 128.151.*.*) and the organization it's allocated to.

The whois info should provide a great source of truth for the info you want, and has the upside of being able to see what range that applies to.  The downside is that for smaller allocations, a range will often just show as belonging to the ISP instead of the end customer.  Combining both whois and reverse DNS should provide the best information (and be ridiculously slow).