Можно составлять отдельно списки тегов которые более подходят под статьи. В ручную пополнять список. Потом использовать этот список, отслеживать что чаще всего встречается в тексте. Если не найдет, то предложить ввести в ручную и записать в список. Так будет этот список расти и всё меньше можно будет вводить.
Впрочем то что и писали. На мой взгляд самое оптимальное.
Ещё вот можно почитать статью о алгоритме поиска слов похожих по смыслу:
habrahabr.ru/post/110078 .