Extraire d'un texte ordinaire le nombre de chaque mot différent ?

Résolu/Fermé
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 - 1 oct. 2019 à 18:37
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 - 5 mai 2020 à 11:26
Bonjour, comment Extraire d'un texte word ordinaire le nombre de chaque mot différent ? Par ex lorsqu'on postule sur des Termes de Références d'un poste, il est utile de repérer rapidement combien de fois les mots clés apparaissent. Je n'ai toujours pas trouvé. Merci si vous avez la solution.



Configuration: Windows / Edge 18.17763

3 réponses

m@rina Messages postés 20024 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 17 avril 2024 11 269
1 oct. 2019 à 23:03
1
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 2
2 oct. 2019 à 12:10
Merci Marina, effectivement ne serait-ce qu'avec rechercher tu as le nombre.
Ce que je voudrais (je suis exigeant), c'est un procédé fonctionnel qui te sorte d'un texte word, sans que tu aies à choisir le mot, les nombres de tous les mots différents. Pour analyser un TdR ou même un ouvrage quelconque ça ferait gagner un temps fou. Si jamais toi ou un(e) autre tu ont ça sous la main … qu'es ce que ça m'arrangerait !
0
m@rina Messages postés 20024 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 17 avril 2024 11 269
2 oct. 2019 à 13:33
Faire une macro pour ça donnerait un résultat qui prendrait un temps infini car la macro devrait boucler sur chaque mot.

Il y a en ligne des outils pour ça, comme par exemple
https://www.dcode.fr/compteur-mots
https://seoscout.com/tools/keyword-analyzer

et d'autres que je ne connais pas.

m@rina
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
Modifié le 3 oct. 2019 à 00:15
Bonjour,
Salut m@rina :-)

un essai de macro quand même.
Je pense que ça pourra être assez rapide même sur un grand texte.
Je ne liste que les mots d'au moins 3 lettres et cités au moins 2 fois.
Tu pourras adapter la macro pour restreindre un peu plus.
Sub compteMots()
    Dim wd As Range, dict, k, result(), i As Long, tmp
    Dim doc As Document, tabl As Table
    Set dict = CreateObject("Scripting.Dictionary")
    For Each wd In Selection.Words
        tmp = Split(LCase(wd.Text), "'")
        For i = 0 To UBound(tmp)
            ' compte mots de plus de 3 lettres
            If Len(tmp(i)) > 3 Then If dict.Exists(tmp(i)) Then dict(tmp(i)) = dict(tmp(i)) + 1 Else dict(tmp(i)) = 1
        Next i
    Next wd
    For Each k In dict.keys
        If dict(k) <= 1 Then dict.Remove k    'suppression mots cités 1 seule fois
    Next k
    If dict.Count > 0 Then
        Set doc = Documents.Add
        Set tabl = doc.Tables.Add(Range:=Selection.Range, NumRows:=dict.Count + 1, numcolumns:=2)
        tabl.Cell(1, 1).Range.Text = "Mot": tabl.Cell(1, 2).Range.Text = "Cpt"
        For Each k In dict.keys
            i = i + 1
            tabl.Cell(i, 1).Range.Text = k
            tabl.Cell(i, 2).Range.Text = dict(k)
        Next k
        tabl.Sort True, 2, wdSortFieldNumeric, wdSortOrderDescending
        tabl.Borders.Enable = True
    End If
    Set dict = Nothing
End Sub


fichier de test avec la macro : https://mon-partage.fr/f/6hjLwyF8/
eric

0
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 2
3 oct. 2019 à 09:15
Merci, j'essaie et je te dis. Bien cordialement.
0
m@rina Messages postés 20024 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 17 avril 2024 11 269
3 oct. 2019 à 15:25
Bonjour eriiic,

Impeccable ta macro ! Je valide ;))

Je me suis permise de la relayer sur mon site :
https://faqword.com/index.php/word/outils-edition/1066-comment-dans-un-document-compter-le-nombre-d-occurrences-de-chaque-mot

A +
m@rina
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
3 oct. 2019 à 16:12
Tu as très bien fait :-)
Mais peut-être faut-il la fignoler un peu plus si le premier jet parait correct.
J'ai déjà remarqué, et traité, l'apostrophe qui était considérée comme une lettre normale et "l'un" comptait comme un seul mot. Si tu en connais d'autres ?
Je pensais sélectionner tout le texte si aucune sélection n'est faite, avec confirmation.
Et éventuellement ajouter une boite de dialogue pour paramétrer taille mini des mots, compteur min à sortir et nombre max de mots.
0
m@rina Messages postés 20024 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 17 avril 2024 11 269
3 oct. 2019 à 18:06
Hello Eriiic,

Oui on peut tout ça... Cependant, c'est quelque chose qui est quand même rarement demandée, et comme j'ai dit, ça se fait aussi en ligne rapidement.

Mais bon, à partir du moment où je le mets sur mon site, oui on peut peaufiner. Si tu veux, je peux compléter. Sinon, je te laisse faire ! ;)
Sur mon site y a beaucoup de choses, mais depuis un bout de temps, je fais tout toute seule... Je l'ai commencé en 2004 et petit à petit, les auteurs divers et variés m'ont abandonnées !!! Et vraiment j'accepte avec plaisir les idées nouvelles de ceux qui en ont, et les auteurs de macro ! ;)

m@rina
0
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 2
5 mai 2020 à 11:26
Bonjour, entre temps j'ai trouvé une autre solution hors EXCEL avec le logiciel gratuit NUAGE DE MOTS qui outre l'image des mots proportionnelle à leur nombre dans le texte (pour faire joli uniquement) , donne un fichier exportable sur EXCEL avec la liste de mots par fréquence d'apparition directement.
0