Date: prev next · Thread: first prev next last
2021 Archives by date, by thread · List index


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 <ydutrieux@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.abel1@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+unsubscribe@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+unsubscribe@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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.