[Perl] Structure de données

Patrice Karatchentzeff patrice.karatchentzeff at gmail.com
Sam 11 Mai 07:50:25 CEST 2024


Salut,

Ce n'est pas un secret non plus... J'ai fait un script pour augmenter
le SEO de sites Internet. J'ai donc un script qui effectue une
recherche sur Google (d'où la paire : le mot-clé recherché et le site
à trouver (un mot-clé suffit aussi)).

Maintenant, il faut plusieurs mots-clés pour couvrir les besoins. Je
fais donc un wrapper du premier script qui assemble la liste des
mots-clés. Mais certains sont plus importants que d'autres, donc je
pondère afin de privilégier certains.

Je communique en socket Unix du script vers le wrapper pour remonter
quelques stats et le wrapper prend en paramètre le nombre de
recherches total. À chaque recherche, le wrapper prend un couple
aléatoirement et le balance au script pour qu'il effectue la
recherche.

Le tout avec suffisamment d'aléatoire et de ruses partout afin de
simuler une recherche humaine évidemment :) Google n'aimant pas
vraiment ce genre de pratique !

Donc c'est le wrapper qui me pose des problèmes de propreté. Si je
veux qu'il soit réutilisable sans trop me prendre la tête, je dois
centraliser la liste des recherches pondérées à un seul endroit...
Sinon, je dois partiellement le réécrire à chaque nouvelle situation
(ce qui dans l'absolu n'est pas un gros travail, mais bon, j'aime bien
faire les choses correctement, et je mets ma façon d'avoir résolu ce
problème dans les trucs crades qui fonctionnent mais qui ne me
satisfont pas).

Voilà, si ça peut aider...

Le sam. 11 mai 2024 à 07:33, Kai Carver <kai.carver at gmail.com> a écrit :
>
> Hello,
>
> Pour moi ta description est un peu abstraite, donc je comprends pas bien.
> C’est sans doute parfaitement décrit, mais sans savoir de quoi on parle, j’ai du mal à visualiser le problème.
> Tu pourrais dire de quoi il s’agit ? :)
>
> k a i
>
> On Fri, May 10, 2024 at 09:12 Patrice Karatchentzeff <patrice.karatchentzeff at gmail.com> wrote:
>>
>> Salut,
>>
>> J'ai une question... qui dépasse un peu le cadre directement de la
>> programmation en Perl. C'est la structure de données de mes
>> programmes.
>>
>> Aujourd'hui, j'ai un truc qui fonctionne, mais qui ne me plait pas,
>> car je suis obligé de dupliquer mes données dans mon programme et je
>> voudrais les centraliser, de façon in fine à pouvoir les passer
>> éventuellement en paramètres, sous une forme ou une autre.
>>
>> Mon script prend des données sous forme de paires. J'ai donc une liste
>> de paires et je traite ensuite en interne chaque paire dans une
>> moulinette. J'ai besoin de faire des stats à l'issue du traitement de
>> la paire, donc de rattacher des valeurs de statistique à chaque paire.
>>
>> J'ai une autre contrainte. La traitement n'est pas égal pour chaque
>> paire : il est pondéré. Cela veut dire que certaines paires doivent
>> être moulinées plus souvent. Pour le moment, je m'en sors (et c'est là
>> qu'est l'os) en écrivant une liste de ces paires en dupliquant
>> certaines paires plusieurs fois. Puis en tirant au sort un numéro dans
>> cette liste de paires. Par exemple, si la paire A est dupliquée 3 fois
>> dans une liste de 10 paires, elle a statistiquement 30% de chance
>> d'être choisie contre 10% pour les autres. Cela fonctionne bien.
>>
>> Mon problème est comment décrire une fois pour toutes mes données (et
>> éventuellement pouvoir les externaliser de mon script) avec ces
>> conditions ? Une liste de paires pondérées.
>>
>> Pour le moment, j'ai une table de hash avec pour chaque paire une
>> clé/valeur, que je complète avec les données statistiques. Je suis
>> obligé d'initialiser ma table pour le premier tour de mon script et
>> ensuite de dupliquer les clés/valeurs pour créer une liste que je vais
>> interroger aléatoirement. Un gag de plus est que les clés ne sont pas
>> uniques, donc j'ai d'entrée une table de tables de hash....
>>
>> Est-ce que vous auriez une idée d'une approche plus globale qui me
>> permettrait d'éviter la duplication ? J'ai essayé de dupliquer en
>> interne à partir du hash, mais je me retrouve avec des référence de
>> hash qui sont incompatibles avec le pragma use strict !
>>
>> J'espère avoir été clair... N'hésitez pas à me demander d'éclaircir !
>>
>> Merci d'avance,
>>
>> PK
>>
>> --
>>       |\      _,,,---,,_           Patrice KARATCHENTZEFF
>> ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com
>>      |,4-  ) )-,_. ,\ (  `'-'
>>     '---''(_/--'  `-'\_)
>> _______________________________________________
>> Perl mailing list
>> Perl at mongueurs.net
>> http://listes.mongueurs.net/mailman/listinfo/perl
>> Attention, les archives sont publiques
>
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net
> http://listes.mongueurs.net/mailman/listinfo/perl
> Attention, les archives sont publiques



-- 
      |\      _,,,---,,_           Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)


Plus d'informations sur la liste de diffusion Perl