динамическое создание ключевых слов из mysql с использованием php
Вопрос
Моя структура:в каждой категории есть свои тексты.Эти тексты являются самостоятельными записями.Итак, таблица "категория" и таблица "тексты".В каждой категории около 90 текстов, каждый текст содержит около 300 символов.
Что я хочу сделать, так это создать мета-теги (ключевые слова) для категорий.Как> получить все релевантные "тексты", ранжировать все слова и выбрать 10 лучших слов.Эти топ-10 будут метатегом ключевого слова категории.
Сейчас же..хитрость > как извлечь эти 10 лучших слов.В настоящее время > у меня есть, что каждый текст (это полный текст) будет разделен на массив для каждого слова.Этот массив (в php) будет довольно длинным.После этого я беру частоту каждого слова и снова ранжирую его по частоте.Вуаля, топ-10 слов.
Я не тестировал эту процедуру, но предполагаю, что это может занять некоторое время.Он будет кэшироваться, так что его придется запускать только раз в неделю или около того, но все же я бы не хотел получать тайм-аут.
Ребята, у вас есть какие-нибудь советы?Любая помощь приветствуется.
Спасибо,
Морис
Решение
Хорошо, теперь, когда я выразил свое спокойствие в комментарии выше, я перейду к вашему алгоритму.
Есть несколько способов сделать это, я сосредоточусь на подходе, основанном на PHP, и позволю другим разработчикам использовать некоторые другие.
Я предполагаю, что вы уже запросили базу данных и сохранили все слова в виде списка, разделенного пробелами, в переменной $texts
// 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 );