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...)
0
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.
0
Rejoignez-nous