voici la traduction en powershell (disponible sous ton windows) : $mot = New-Object 'system.collections.generic.dictionary[string,double]' foreach($ligne in get-content test.csv){foreach($valeur in -split $ligne){$mot[$valeur]++}} $mot
ceci est équivalent à la ligne Gawk. Pour l'explication combinée : 1) définition d'un collection "dictionnaire en powershell" (obligé car sinon marche pas) $mot = New-Object 'system.collections.generic.dictionary[string,double]' 2) foreach( -- pour chaque element rencontré $ligne in get-content test.CSV -- on extrait le contenu du fichier test.csv foreach( -- pour chaque element rencontrés $valeur in split $ligne -- on recupere dans $valeur tous les élements de $ligne séparé (split sépare par défaut avec espace). {$mot[$valeur]++} - on incrémente le compteur relatif au mot trouvé. On aura donc un tableau contenant par exemple : $mot["mot1"=1, $mot["mot4"]=2, etc ... 3) affichage du tableau $mot gawk '{a[$0]++} END{for (k in a) print k,a[k]}' RS='[[:space:]]+' test.csv 1) par défaut gawk traite par ligne et ici on fixe le RecordSeparator (RS) à un espace ou +RS='[[:space]]+' 2) pour chaque ligne, {a[$0]++} -- voici toute la puissance du truc, $0 ce sont les éléments trouvés entre chaque RS (record séparator), ici les mots. On incremente donc le tableau a["motxxx"] de 1 (via ++ ) 3) END{for (k in a) print k,a[k]}' Après avoir tout traité le fichier, on affiche tous les éléments du tableau (for k in a) et on imprime le mot (k) et sa valeur comptée a[k] J'espère avoir pas été trop technique ;) Yves Le mar. 11 mai 2021 à 00:43, yves dutrieux <ydutri...@gmail.com> a écrit : > Bonjour, > > le tableur n'est pas le meilleur outil pour cela, > awk/gawk/powershell peuvent à mon avis le faire très facilement : > sous ubuntu wsl (avec win100) si ton fichier s'appelle test.csv et si ton > délimiteur de mot est un ou plusieurs espaces : > > gawk '{a[$0]++} END{for (k in a) print k,a[k]}' RS='[[:space:]]+' test.csv > > te donneras ce que tu souhaites. > En fait, il faut créer une "collection" ou table hash avec comme index les > mots trouvés et tu additionnes la valeur. > > Yves > > Le lun. 10 mai 2021 à 09:00, Nicolas Abel <nicolas.ab...@ac-reunion.fr> a > écrit : > >> Bonjour à tous. >> >> J'aurais besoin de faire une analyse sémantique d'un fichier csv. >> Une colonne de ce fichier contient des chaînes de caractères; j'aurais >> besoin de trouver les mots les plus fréquents et de compter le nombre d' >> occurrences. >> >> Je vais probablement pouvoir trouver un outil tierce qui sache le faire; >> mais je préférerais de loin pouvoir faire cela avec mon tableur préféré. >> >> J'imagine qu'il y a des solutions basées sur les expressions régulières >> par exemple; mais cela dépasse soit mon imagination, soit mes >> compétences, soit les deux :) >> >> Si vous avez des idées, je suis preneur. >> >> En vous remerciant par avance pour votre aide. >> >> Nicolas. >> >> >> -- >> Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous >> désinscrire >> Les archives de la liste sont disponibles à >> https://listarchives.libreoffice.org/fr/users/ >> Privacy Policy: https://www.documentfoundation.org/privacy >> > > > -- > web site : http://www.molenbaix.com > -- web site : http://www.molenbaix.com -- Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/ Privacy Policy: https://www.documentfoundation.org/privacy