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

Répondre à