динамически создавая ключевые слова из mysql используя php - PullRequest
0 голосов
/ 25 июня 2009

Моя структура: в каждой категории есть тексты. Эти тексты являются собственными записями. Итак, таблица «категория» и таблица «тексты». В каждой категории около 90 текстов, каждый текст содержит около 300 символов.

Что я хочу сделать, это сделать мета-теги (ключевые слова) для категорий. Как> получить все релевантные «тексты», оценить все слова и взять 10 лучших слов. Эти первые 10 будут мета-тегом ключевого слова категории.

Теперь .. хитрость> как получить эти 10 лучших слов. В настоящее время> у меня есть, что каждый текст (является полным текстом) будет разделен на массив для каждого слова. Этот массив (в php) будет довольно длинным. После этого я беру частоту каждого слова и снова оцениваю его по частоте. Вуаля топ 10 слов.

Я не тестировал эту процедуру, но думаю, что это может занять немного. Он будет кэширован, поэтому запускать его придется только раз в неделю или около того, но все же я не хотел бы получать тайм-аут.

У вас есть какие-нибудь советы? Любая помощь приветствуется.

Спасибо

Maurice

1 Ответ

0 голосов
/ 25 июня 2009

Хорошо, теперь, когда я сказал свое спокойствие в комментарии выше, я перейду к вашему алгоритму.

Есть несколько способов сделать это, я сконцентрируюсь на PHP-подходе и позволю другим SO делать другие.

Я предполагаю, что вы уже запросили базу данных и сохранили все слова в виде списка через пробел в переменной $ 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 );
...