Полуавтоматическое добавление тэгов сделать можно. Но, конечно, совсем не так, как предлагает автор — по частоте. Например, слово тэги будет не самым частым в этом посте.
Там же в комментах умники заговорили про иерархию: «Одно из решений (не дающее 100% резульата). Создание каких-либо зависимостей или даже иерархии. Например для тегов водка, бухать, нажраться и пр. родительским тегом будет „пьянка“. Однако это здорово усложняет систему и, как уже упомянул, сто процентного результата все равно не дает (плюс неясно как заполнять эти связи)».
Совершенно понятно, кстати, как связи заполнять.
Системе это, однако, не очень поможет. Ну а правильная расставлялка тэгов делается так: берем несколько корпусов текстов, проставляем им тэги вручную. После чего натравливаем на это байесовский фильтр, который обучается N раз, где N — количество тэгов.
То есть по аналогии с «это спам? Да/нет» — для чего байесовский фильтр часто и используется — обучаем его «это про кошечек? Да/нет».
Ну и надо помнить, что новые тэги такая система проставлять не будет, что хорошо. Ибо зачем нам тэг «Байес», например, этому посту? Нафиг не нужен до тех пор, пока это единственный пост с таким тэгом.
Да и вообще — тэги сосут.