Есть несколько разных способов сделать это. Стандарт состоит в том, чтобы выполнить анализ «мешка слов» (взвешенный TF-IDF), а затем выполнить косинусное сходство и k-средних.
У меня был успех с этой бумагой: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=4289851
Самое замечательное в этом:
1) Это пошаговое, что отлично подходит для новостей. При использовании стандартных k-средних вам нужен весь набор данных. С новостями у вас обычно появляются статьи, поступающие со временем. Инкрементные алгоритмы решают это.
2) Это основано на фразе. Так что он опирается на фразы, а не просто слова.
В последнее время появились методики, в которых вместо слов используется семантическое значение (например, путем извлечения концепций Википедии или DBPedia из каждой статьи и использования этого вместо просто слов).