Détecteer les mots clé

jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018 - 30 janv. 2008 à 17:07
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018 - 2 févr. 2008 à 20:24
bonjour à tous !
j'ai bien épluché le forum   , et je n'ai pas du tout vu ce que je recherche !!! c'est la première fois !!!

bon, voilà. Nous savons tous que les mots clé d'un texte sont à placer en <meta>, n'est-ce-pas ?

Mais je voudrais trouver un 'truc' qui listerait un texte en ne gardant que les mots de plus de cinq lettres ( why not ?)
et qui indique pour chacun combien de fois il est dans le texte.

par exemple en faisant tourner ce 'truc' sur l'ensemble de mon texte ci-dessus il répondrait :
 
bonjour..........1
épluché..........1
forum.............1
recherche.......1
première........1
voilà..............1
savons...........1
texte..............4
placer............1
voudrais........1
trouver..........1
listerait .........1
gardant.........1
lettres...........1
indique.........1
chacun.........1
combien.......1
faisant..........1
tourner.........1
ci-dessus......1
répondrait.....1
----------------------------
Quelqu'un peut me donner une piste de travail ?.
Je suis débutant autodidacte (presque sexagénaire en plus  , j'ai du tezmps !! )

{{ind|<gras>Prenez bien soin de vous.

8 réponses

jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
30 janv. 2008 à 17:11
Je découvre dessous mon message, le "classement " fait par Codes Sources !!!
Classé sous : mots, texte, clé, détecteer, truc

Ben, il ne manque que le nombre de fois et le tour est joué !!!!
Où est la source de ceci ?????

{{ind|<gras>Prenez bien soin de vous.
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
30 janv. 2008 à 17:53
ce que je ferais:
file_get_content('mapage')
je parserais pour ne garder que les interieurs de posts
je ferais un explode (sur les espaces pour avoir tous les mots dans une case)
je bouclerais sur mon Gros tableauuuuuuu *delire sur oh mon bateauuuuu*
Pardon
Je bouclerais donc pour chercher les strings de plus de x caracteres et je verifierais que ce sont bien des strings (cast...)

ensuite je rebouclerais sur mon tableau et je comparerais chaque case aux autres.
si je trouve une occurence, je ++ et je garde en memoire la/les cases de doublons
OU alors ptet que
je ferais un array_unique sur mon tab histoire de savoir cb de mot sont differents
et je bouclerais sur mos array unique puis array de reponse pour trouver le nombre d occurence

Ou alors ya bien mieux mais je suis mort

Dans tous les cas Good luck

--------------------------------------------------------------------------------------------------
         Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
0
the_number_9 Messages postés 10 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 31 janvier 2008
30 janv. 2008 à 18:46
tu place tout les mots de ton texte dans un tableau avec la fonction split
ensuite tu compare chaque case de ton tableau pour savoir le nombre de fois qu'il y a le mot c'est pas très compliqué a faire
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 janv. 2008 à 20:40
Hello,

repartons du tableau puisque tout le monde te propose ça (str_split, explode, etc...y a le choix).
Et pour les occurences, restons simples :
http://www.php.net/manual/en/function.array-count-values.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
31 janv. 2008 à 16:26
http://www.php.net/manual/en/function.array-count-values.php

Super !
Je n'avais pas vu cela dans le manuel !!!
Je crois que je ne me réfère pas assez à ce manuel PHP en ligne !
C'est tout à fait ce qu'il me faut comme base.
Je vais m'y mettre dès à présent. hummmm je vais me régaler

Merci Malalam !

Prenez bien soin de vous.</sup>
0
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
1 févr. 2008 à 10:50
Finalement, j'ai écrit ceci :

print_r(array_count_values(explode (' ', $text)));
où $test est un texte pour le moment !

mais c'est pas fini !!!

j'y retourne !

{{ind|<gras>Prenez bien soin de vous.
0
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
1 févr. 2008 à 18:11
je suis arrivé à ceci :

<?php
// occurences dans un texte
// essai n° 0001
$text="Le plugin Flash 9.0.115.0 est requis pour voir le contenu de ce site, mais nous avons détecté le plugin Flash 9,0,45,0 dans votre navigateur. Veuillez cliquer sur l’image ci-dessous afin de télécharger la dernière version de Flash sur le site web d’Adobe. Une fois que vous aurez installé la dernière version de Flash, fermez toutes les fenêtres de votre navigateur Internet et cliquez à nouveau sur le lien de l’enquête afin d’y accéder à l’aide de la dernière version du plugin Flash.";


// ************ on éclate le texte en mots séparés
$nbcar=iconv_strlen($text,'');
print "Nombre de caractères utilisés : ".$nbcar."\n";
echo '
______________________________________________
';
// ************ et nombre de mots utilisés
$nbm=count(preg_split('`\\W`', $text, -1, PREG_SPLIT_NO_EMPTY));
print "Nombre de mots utilisés :".$nbm."\n";
echo '
______________________________________________
';
$rst=array_count_values(explode (' ', $text));
print_r($rst);
echo '
______________________________________________
';
// on ne veut garder que les mots de plus de cinq lettres
$rr=preg_split("/[\s,]+/", $text);
$s = 0;
while($s != $nbm)
  {
    if (strlen($rr["$s"])>=5)
    {
    echo $s.' | ';
    print_r($rr["$s"]);
    echo ' | '.strlen($rr["$s"]);
    echo '
';
    }
  $s++;
  }


echo '<hr />';
?>

Mais je n'arrive pas à joindre les deux types d'information : la taille des mots et le nombre de fois qu'ils existent dans le texte !

Bon, je sais bien que je suis pas bon ! Aidez-moi au lieu de rigoler !





<sup>
<sub>


Prenez bien soin de vous.
</sub>
</sup>
0
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
2 févr. 2008 à 20:24
Coucou !

çà n'int"resse que moi, mais comme j'ai commencé un post  !!!

voilà l'état d'avancement des travaux :

<?php
// occurences dans un texte
// essai n° 0001
//file_get_content('mapage')
$text="Le plugin Flash 9.0.115.0 est requis pour voir le contenu de ce site, mais nous avons détecté le plugin Flash 9,0,45,0 dans votre navigateur. Veuillez cliquer sur l’image ci-dessous afin de télécharger la dernière version de Flash sur le site web d’Adobe. Une fois que vous aurez installé la dernière version de Flash, fermez toutes les fenêtres de votre navigateur Internet et cliquez à nouveau sur le lien de l’enquête afin d’y accéder à l’aide de la dernière version du plugin Flash.";


// ************ on éclate le texte en mots séparés
$nbcar=iconv_strlen($text,'');
echo "Nombre de caractères utilisés : ".$nbcar."\n";
echo '______________________________________________
';
// ************ et nombre de mots utilisés
$nbm=count(preg_split('`\\W`', $text, -1, PREG_SPLIT_NO_EMPTY));
echo "Nombre de mots utilisés : ".$nbm."\n";
echo '______________________________________________
';
// **********************************************************
echo "Nombre de fois où chaque mot est utilisé (attention aux  , et . ) :
";
$a=explode (' ', $text);
sort($a);// vous verrez pourquoi ci-dessous ;-))
//$rst=array_count_values($a);
//print_r($rst);
$i=0;
while ($i<=$nbm)
{
if (isset($a[$i]))
  {
    if (strlen($a[$i])>=5)
    {
    if ($i == 0)
      {
      $h='0';
      }
      else
        {
        $h=$i-1;
        }
    //echo $i.'  *  ',$h.'
';
    $var1=$a[$h];
    $var2=$a[$i];
    if (isset($a[$h]))
      {
      if (strcasecmp($var1, $var2) == 0) //(comparaison insensible à la casse)
        {
        echo "
$var1 est égale à $var2 ";
        file_put_contents($final, ($a[$i]." - ".$i));// à améliorer encore
        }
      }
    }
  }
   $i++;
}
// à ce stade nous avons une liste triée des mots de 5 lettres et plus ( y compris le , et . mais tant pis !))
echo '
______________________________________________
';
?>

c'est pas mal, hein ? pour un sexagénaire débutant !





<sup>
<sub>


Prenez bien soin de vous.
</sub>
</sup>
0
Rejoignez-nous