Calculer le poids d'un mots de chaine en php

Fermé
hadjir Messages postés 107 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 7 janvier 2010 - 23 avril 2009 à 13:24
 Utilisateur anonyme - 23 avril 2009 à 16:16
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."<br />";
}
}
$champs11=implode(" ", $result[0]);
echo ("$champs11"); print"<br><br>";

//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 "<br><br>";
$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.
A voir également:

2 réponses

Utilisateur anonyme
23 avril 2009 à 16:10
<?
$liste=array("exclus","vides","mots","algerie");
$texte="algerie algerie annonces algerie classifids annonce annonces algerie annonces algerie';
// Remplacement des mots exclus par rien
// Suppression des éléments vides avec
// Tableau des occurences
// calculer le nombres de mots dans une chaine de caractére N
// compte le nombre de mots dans la chaine
// affiche le résultat
";
echo "<PRE>";
$lines=explode("\n",$texte);
foreach ( $lines as $line) {
$mots=explode (" ",$line);
foreach ( $mots as $mot ){
if ( strlen($mot) < 3 ) continue ;
foreach ($liste as $ch ) if ( $mot == $ch ) $tab[$ch]++ ;
}
}
print_r($tab);
?>

0
Utilisateur anonyme
23 avril 2009 à 16:16
j'ai oublié
$tab["total"]++;
derriere foreach ( $mots as mot ) {
0