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.
Version imprimable
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 tableauCode:
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 premiersCode:
1
2 sort($occurences);
;)Code:
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