Connaitre le palmares des mots les plus utilisés dans une plage

Résolu/Fermé
Toul31 - 18 juin 2013 à 11:56
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 19 juin 2013 à 18:21
Bonjour,

SOS, j'ai un fichier dans lequel une colonne est reservée aux commentaires utilisateurs.
Je souhaiterais extraire de cette colonne, qui contient des cellules avec des phrases, les mots qui reviennent le plus souvent dans ces commentaires (excepté : à, du, le...) .

Merci pour votre aide.

3 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
19 juin 2013 à 00:48
Bonsoir,

une autre proposition, optimisée pour les grandes bases (travail en mémoire).

Critères à définir dans la feuille 'Listes' :
- liste des mots exclus en colonne A
- taille minimale des mots en C2

- Le texte est mis en minuscule, débarrassé des accents pour compter comme un même mot "réservée", "reservée", "reservee"
- Tous les caractères autres que [a-z] sont éliminés pour ne pas compter comme 2 mots "avion" et "l'avion". Corrolaire : les mots avec césure (-) seront donc séparés en 2 mots.
- Un "s" final est toujours supprimé, 'colonne" et "colonnes" sont un même mot.

https://www.cjoint.com/?CFtaVgE6jwO

eric
3
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
19 juin 2013 à 07:30
Bonjour Eric,

Un grand coup de chapeau pour ce code avec un "plussoyer" ( je reviendrai plus tard pou en mettre d'autres) ;o)
Je fourgonne pour étudier tout ça à t^te reposée car c'est d'un sacré niveau !
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
19 juin 2013 à 08:59
Salut michel,

Merci. Bah, que du classique dedans :-)
Reste à réfléchir à des évols :-)
eric
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
19 juin 2013 à 09:59
Re,

En son temps, pour faire joujou au petit train électrique j'avais utilisé les expressions rationnelles pour extraire des mots d'au moins N caractères y compris les accents
si ça t'intéresse, fais signe, je te l'enverrais en MP
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié par eriiic le 19/06/2013 à 13:57
Re,

Nouvelle version :
- suppression "s" final des mots optionnelle (oui/non)
- possibilité de définir 10 familles de mots regroupant le même concept. Chaque mot de la liste incrémentera le nom de la famille (par exemple mots positifs, négatifs). Les mots définis dans ces listes outrepassent les autres réglages. On peut s'en servir également pour comptabiliser des mots courts importants qui seraient sinon exclus par 'taille mot mini'.
https://www.cjoint.com/?CFtn5a4CgpG

@michel : oui bien sûr, peut-être que ça me fera le déclic. Plusieurs fois j'ai tenté de m'y mettre aux regex, mais je ne sais pas je dois être étanche, j'ai du mal à absorber :-s

eric
0
Toul31 Messages postés 3 Date d'inscription mardi 18 juin 2013 Statut Membre Dernière intervention 19 juin 2013
19 juin 2013 à 17:51
Merci beaucoup pour ta macros pour compter les mots, c'est super.
J'arrive bien à l'utiliser seule, mais par contre comme je n'y connais rien en VBA je n'arrive pas à l'inclure dans la 1ere macro donnée par redaiwa :
1- extraire les mots un à un pour chaque ligne de commentaire
2- exclure les mots < Taille mini 3 caract
2- comparer chaque mot obtenu avec la liste des exceptions
3- si c'est une exception, passer au mot suivant
4- sinon le comparer avec la liste des mots du palmarès
5- si le mot existe déjà, augmenter de 1 son nombre d'occurrences
6- sinon (mot nouveau), l'ajouter à la liste du palmarès et lui attribuer un nombre d'occurrence de 1 (puisque c'est la première fois qu'il apparait)
7- continuer avec le mot suivant jusqu'à la fin des commentaires.
0
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
Modifié par redaiwa le 18/06/2013 à 15:19
Salam Toul31.

Ton problème revient à procéder comme suit :
1- extraire les mots un à un pour chaque ligne de commentaire
2- comparer chaque mot obtenu avec la liste des exceptions
3- si c'est une exception, passer au mot suivant
4- sinon le comparer avec la liste des mots du palmarès
5- si le mot existe déjà, augmenter de 1 son nombre d'occurrences
6- sinon (mot nouveau), l'ajouter à la liste du palmarès et lui attribuer un nombre d'occurrence de 1 (puisque c'est la première fois qu'il apparait)
7- continuer avec le mot suivant jusqu'à la fin des commentaires.

Ce qui se traduit par l'exemple suivant : https://www.cjoint.com/?CFsprp6hkvH

Cela répond-t-il à ta demande?

Si tu commences avec VBA, alors je t'invite à comparer la séquence d'instructions ci-dessus avec le code VBA. Sinon (si tu connais bien VBA), alors sois indulgent avec moi si mon code n'est pas vraiment optimal. :)))
1
Toul31 Messages postés 3 Date d'inscription mardi 18 juin 2013 Statut Membre Dernière intervention 19 juin 2013
18 juin 2013 à 22:46
Merci pour ta réponse c'est tout à fait ça et je pensais bien que c'était une macro la solution mais je n'y connais rien en VBA.
Une question pour ajouter la cerise sur le gâteau : comment inclure dans la macro qu'en plus des exceptions cela ne doit pas prendre les mots de moins de 4 lettres. Mais c'est vraiment pour fignoler si tu as la réponse.

En tout cas merci beaucoup pour le fichier et pour la rapidité.
0
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
19 juin 2013 à 10:05
Salam Toul31.

Bien que ta "cerise sur le gâteau" t'aie déjà été donnée par notre ami eriiic, je te propose une simple modification de l'exemple posté précédemment : https://www.cjoint.com/?CFtkbqktqzV

PS : pour lancer le comptage, il suffit juste d'activer la feuille "Palmarès" (cliquer sur son onglet).

L'essentiel est que tu trouves réponse à tes questions. :)
0
Raymond PENTIER Messages postés 58397 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 avril 2024 17 094
18 juin 2013 à 15:39
Bonjour Toul31.

Tu en demandes beaucoup, à un simple tableur !
Aurais-tu une liste préalable des mots dont tu rechercherais la fréquence, comme "argent - travail - emploi - sécurité" ou comme "garçon - fille - enfant - maître - instituteur - institutrice - école" ?
Sinon, combien de mots (exceptions y compris) au maximum peuvent se trouver dans un paragraphe ?
0
Toul31 Messages postés 3 Date d'inscription mardi 18 juin 2013 Statut Membre Dernière intervention 19 juin 2013
18 juin 2013 à 22:47
Merci mais non je n'ai pas de notion je cherche justement à savoir ce que les personnes demandent le plus souvent.
0
Raymond PENTIER Messages postés 58397 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 avril 2024 17 094
19 juin 2013 à 03:18
Alors ce n'est possible qu'avec une macro ... eriiic s'en occupe.
Ou alors demander aux utilisateurs de remplir une grille avec juste un mot-clé par cellule !
0