How to create a social network like IBM's Watson News Explorer?
They've created a graph from the news articles, topics, and named entities (locations, persons, companies, organizations). There are a lot of things going on here, but k-means is not one of them. If I had to do this I would use a named entity recognition (NER) and document embeddings (doc2vec, etc.). Once you have the embeddings, and the edges (thanks to NER), use a graph layout algorithm like force direction. If the graph is too dense, thin out the weaker edges. If all that sounds Chinese to you, start by reading about "named entity recognition", and "word embeddings". The idea is to attach a number (or rather, a vector) to everything from a word to a document.

Twitter is a different beast. The textual content, such as it is, won't play nice with these embedding algorithms, but you have hashtags and strong social signals; mentions, retweets, and follows. This is pretty complicated, too, so I'll leave you with a relevant paper: Twitter-Network Topic Model: A Full Bayesian Treatment for Social Network and Text Modeling.