Calculer le poids d'un mot d'une chaine en php

hadjiphp Messages postés 30 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 12 juin 2009 - 23 avril 2009 à 13:28
hadjiphp Messages postés 30 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 12 juin 2009 - 23 avril 2009 à 20:52
Bonjour,


merci pour ce site et souhaite de trouver tous ce que je veux.


je vous remercie.



Bonjour,
j'ai une question :
j'ai une chaine de caractére et :
1- je calcule le nomres d'occurence de chaque mot.
2- et je calcule le nombre de mots dans la chaine de caractére.

maintenant je cherche comment calculer le poids de chaque mot c-à-d poids d'un mot = le nombre d'occurence de mot / le nombre totale de mots dans la chaine.exmple :
chaine : "algerie algerie annonces algerie classifids annonce annonces algerie annonces algerie "
le mot : algerie, le nombre d'occurence : 4
le nombre totale de mot dans la chaine : 10
le poids 4/10 0.4

le code : <?php

$champs1='algerie algerie annonces algerie classifids annonce annonces algerie annonces algerie';
$motsExclus = array("un","une","de","des","le","les","la")
if( preg_match_all('`\w{2,}`', $champs1, $result) )
{
// Remplacement des mots exclus par rien
$result[0] = preg_replace('`\b(' . implode($motsExclus, '|') . ')\b`i', '', $result[0]);
// Suppression des éléments vides avec array_filter()
$result[0] = array_filter($result[0]);

// Tableau des occurences
$stats = array_count_values($result[0]);
While (list ($cle,$valeur) = each($stats))
{
echo $cle." - ".$valeur."
";
}
}
$champs11=implode(" ", $result[0]);
echo ("$champs11"); print"

";

//calculer le nombres de mots dans une chaine de caractére N
$str = str_replace("é", "e", "$champs11");
$str1=str_replace ("è","e","$str");
echo ("$str1"); print "

";
$N=str_word_count($str1); //compte le nombre de mots dans la chaine
echo ("$N"); // affiche le résultat
?>

svp a ce qu'il ya qlq peut me répondre.
merci d'avance.

2 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
23 avril 2009 à 20:01
Hello,

déjà, il y a 5 fois le mot "algérie" dans ta chaîne...:-)
<?php
$sChaine = 'algerie algerie annonces algerie classifids annonce annonces algerie annonces algerie';
echo $iPoids = (substr_count($sChaine, 'algerie') / str_word_count($sChaine));
?>

Sans les vérifications nécessaires pour un tel code (pas de mot trouvé, chaîne vide, accentuation, casse, etc...)
hadjiphp Messages postés 30 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 12 juin 2009
23 avril 2009 à 20:52
Bonjour,


merci pour ce site et souhaite de trouver tous ce que je veux.


je vous remercie.



Bonjour,
merci beaucoup pour votre réponces mais j'ai une question :
si je calcule le piods de mot "annonce" est egale a : 0.4 c-à-d elle compte que le mot "annonce" ce touve dans la chaine 4 fois hors que le mot "annonce" ce trouve 1 seule fois normalement le poids de "annonce" est 0.1.
et le poids de mot "annonces" est agale a : 0.3

donc svp a ce que vous pouver me répondre.
merci d'avance.
Rejoignez-nous