bonjour,
j'ai un texte dans ma variable $text, à partir de là je voudrais recupérer dans un tableau les 20 mots les plus repandus dans le texte avec leurs occurences, comment je pourrai faire ca en php ?
en vous remerciant par avance.
bonjour,
j'ai un texte dans ma variable $text, à partir de là je voudrais recupérer dans un tableau les 20 mots les plus repandus dans le texte avec leurs occurences, comment je pourrai faire ca en php ?
en vous remerciant par avance.
Il y'a certainement mieux que ce que je vais proposer mais ca pourrait être une piste :.
Se servir de preg_split pour créer un tableau de mots
cfer http://www.php.net/manual/fr/function.preg-split.php
A partir de celui-ci,
Créer un tableau contenant les occurances de chacuns des mots :
du genre :
Ensuite mettre de l'ordre dans le tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?php $tab = preg_split.... $occurences = array(); foreach($tab as $mot) { if(array_key_exists($mot,$tab)) { $occurences[$mot] += 1; } else { $occurences[$mot] = 0; } } ?>
Ensuite retourner le tableau et récupérer les 20 premiers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sort($occurences);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $occur = array_flip($occurences); $motslesplusvus = $occur[1:(20%count($occur))];
merci beaucoup l'ami , je vais tester ca , je pense que ca fera l'affaire
il y'a quelques petites modifs à faire quand meme pour que cela fonctionne ,
if(array_key_exists($mot,$occurences)).
il faut ensuite utiliser array_multisort($occurences,SORT_DESC,SORT_NUMERIC).
et on ne peut pas faire un array_flip car plusieurs mots peuvent avoir le meme nombre d'occurences et donc on aura une case pour chaque occurence.
pour afficher les $n premiers resultat ,j'utilise $n_occurences=array_slice($occurences,0,$nombre);
mais ton aide m'a été très utile merci beaucoup
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager