If you drop your restriction of "an article must belong to one and only one category", you can easily make sense of the data. Each article can belong to multiple categories. You end up with fuzzy sets where you can set threshold on whether or not display a certain article based on it's fuzzy membership value.