i think you are asking to do something similar to news.google.com or clustz.com. This is something complex as there are many machine learning algorithms (KMeans, DBSCAN, HDSCAN, Hierarchical, Gaussian Mixture Model etc...) available to try out especially unsupervised one. Moreover before that you need to do pre processing using NLP. Each ML algorithm has couple of parameters which should be fine tuned to get best result. So this is more like trial and error. There are many articles available on internet for the same. Refer - https://medium.com/towards-data-science/all-the-news-17fa34b52b9d