I'm working on a project and i need to discover topics existing in a social media data set. For instance, i wanna extract the topics existing on 200K tweets. Any one recommend to me any machine learning algorithms?
You can take a look at Latent Dirichlet Allocation. In my experience this does very well without too much effort. You need to remove words that don't help like stopwords (and in your case Twitter handles and probably URLs) before feeding it to the algorithm. The only really important parameter that you need to give it is the number of topics. This will depend on your population (are these random tweets, or only tweets from a specific subgroup/hashtag?) and you need to compare some settings. What you can do is print the most important words per topic and see if they indeed do belong together.
If there are different languages in your tweets you need to deal with that beforehand, maybe classify them on language and only keep the English ones for example.
A different direction (although not necessarily a better one) is to cluster the texts you receive, perhaps using an algorithm that doesn't require many input parameters like the number of clusters. Note that not any text clustering algorithm will do - some are optimized for clustering much longer texts. This paper gives a survey of short text clustering methods: http://www.charuaggarwal.net/text-cluster.pdf It's not the newest, but it's a starting point. From experience, I agree with @Jan van der Vegt that it's recommended at the very least to look at English separately from other languages.
One approach could be the following:
1) Make a vector respresentation of all texts in the data set, for example with tfidf technique.
2) Take the first vector and put it in a pile.
3) Enter in the following loop:
3a) take the next vector and compute the cosine similarity between this vector and the centroid of each built pile.
3b) if one of this cosine similarity falls below a predefined threshold, stack this document representation in the corresponding pile. Another case, build a new pile with this vector.
3c) recompute the centroid of each modified pile.
This algorithm is going to find similar tweets, which we suppose that are related with same topic.