StuffHappens
StuffHappens

Reputation: 6557

Algorithm for text classification


I have millions of short (up to 30 words) documents which I need to split into several known categories. It's possible, that a document matches several of the categories (seldom, but possible). It's also possible that a document doesn't match any of the categories (also seldom). I also have millions of documents which have already been categorized. What algorithm should I use to do the job. I don't need to do it fast. I need to be sure that the algorithm categorizes correctly (as far as possible).
What algorithm should I use? Is there an implementation of in in C#?
Thank you for your help!

Upvotes: 5

Views: 6946

Answers (5)

Hamidreza-Safari
Hamidreza-Safari

Reputation: 83

You can use SVM Algorithm for Classify text in C# with libsvm.net library.

Upvotes: 0

piccolbo
piccolbo

Reputation: 1315

The major issue IMHO here is the length of the documents. I think I would call it phrase classification and there is work going on on this because of the twitter thing. You could bring in additional text performing a web search on the 30 words and then analyzing the top matches. There is a paper about this but I can't find it right now. Then I would try a feature vector approach (tdf-idf as in Jimmy's answer) and a multiclass SVM for classification.

Upvotes: 1

Jimmy
Jimmy

Reputation: 9815

Take a look at term frequency and inverse document frequency also cosine similarity to find important words to create categories and assign documents to categories based on similarity

EDIT:

Found an example here

Upvotes: 8

AndreDurao
AndreDurao

Reputation: 5795

Perhaps a decision tree combined with a NN?

Upvotes: 0

Related Questions