Question

Ma structure: dans chaque catégorie, il y a des textes. Ces textes sont des entrées qui lui sont propres. Donc, tableau 'catégorie' et tableau 'textes'. Il y a environ 90 textes dans chaque catégorie, chaque texte compte environ 300 caractères.

Ce que je veux faire, c'est créer des balises méta (mots-clés) pour les catégories. Comment & Gt; Obtenez tous les «textes» pertinents, classez tous les mots et prenez le top 10 des mots. Ce top 10 sera la balise méta du mot clé de la catégorie.

Maintenant .. le truc > comment récupérer ces 10 mots principaux. Actuellement & Gt; J'ai ce que chaque texte (est un texte intégral) sera divisé en un tableau par mot. Ce tableau (en php) sera assez long. Après, je prends la fréquence de chaque mot et le classe à nouveau sur la fréquence. Voilà les 10 mots les plus populaires.

Je n’ai pas testé cette procédure, mais j’imagine que cela pourrait prendre un peu. Il sera mis en cache, il ne devra donc être exécuté qu'une fois par semaine environ, mais je ne voudrais quand même pas avoir un délai d'attente.

Avez-vous des conseils? Toute aide appréciée.

Merci,

Maurice

Était-ce utile?

La solution

Ok, maintenant que j'ai dit ma paix dans le commentaire ci-dessus, je vais passer à votre algorithme.

Il y a plusieurs façons de faire cela. Je vais me concentrer sur une approche utilisant beaucoup de PHP et laisser les autres en faire d'autres.

Je suppose que vous avez déjà interrogé la base de données et stocké tous les mots sous forme de liste séparée par des espaces dans la variable $ textes

// 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 );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top