Моя структура: в каждой категории есть тексты. Эти тексты являются собственными. Итак, таблица "категория" и таблицы "тексты". В каждой категории около 90 текстов, каждый текст составляет около 300 символов.
Что я хочу сделать, так это сделать метатеги (ключевые слова) для категорий. Как сделать все соответствующие "тексты" и оценивать все слова и принимать первые 10 слов. Эти 10 лучших будут метатегом категории.
Теперь трюк > как получить эти 10 лучших слов. В настоящее время > У меня есть, что каждый текст (полный текст) будет разделен на массив в каждом слове. Этот массив (в php) будет довольно длинным. После этого я беру частоту каждого слова и ранжирую его снова по частоте. Вуала - 10 слов.
Я не тестировал эту процедуру, но, думаю, это может занять немного времени. Он будет кэшироваться, поэтому его нужно будет запускать только каждую неделю или около того, но все же я не хочу получать тайм-аут.
У вас есть какие-нибудь советы? Любая помощь была оценена.
Спасибо,
Maurice
Хорошо, теперь, когда я сказал свой мир в комментарии выше, я доберусь до вашего алгоритма.
Есть несколько способов сделать это, я сосредоточусь на подходе PHP-тяжелый и позволяю другим SOers делать некоторые другие.
Я предполагаю, что вы уже запросили базу данных и сохранили все слова в виде списка, разделенного пробелами, в переменной $text
// Sample data in $texts
$texts = "orange orange apple apple apple banana";
$withCounts = array_count_values( explode( ' ', $texts ) );
asort( $withCounts );
$topTen = array_keys( array_reverse( array_slice( $withCounts, -10 ) ) );
print_r( $topTen );