I am working on a project to classify some messages received from our customers. Basically I have to get the main problem of those messages (hundreds of messages are received every day).

Our SAC team have already classified all the messages we have received but I noticed that there are many messages classified to the wrong category (i.e we cant trust the current labels).

That been said, my question is, What exactly should I do now to accomplish what I need ?

My initial plan is:

  1. Do some basics text cleaning
  2. Vectorizing the messages using Word2Vec
  3. Creating some clusters using KMenas (here I plan to create a large number of clusters and then maybe merge some of them)
  4. Giving names (categories) to those clusters based on most common words
  5. Predict the new data using the pre-trained Kmeans classifier.

Is this a good approach ?

Any tips / suggestions would be great here.


1 Answer 1


You can do the following steps :

1. Do some basics text cleaning ( Lemmatization and stop words is must)
2. Vectorizing the messages using Word2Vec | try IF-IDF also
3. Instead of K means use Non negative matrix factorsation and based on weights of each word assign them the topic
4. You will see some stop-words still appear in Topic remove those and repeat the same process above to refine the results

A similiar problem have been solved by me in this notebook on kaggle

I avoided K means because it suffers from curse of dimesionality when you have high dimesional data and does not give you good results


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.