Article View: fr.comp.text.xml
Article #10394Re: Comment �viter les doublons? ISPELL l'a fait pourquoi pas XML
From: Joe Brouill
Date: Sat, 14 Oct 2000 04:47
Date: Sat, 14 Oct 2000 04:47
56 lines
3141 bytes
3141 bytes
nelsounet a �crit dans le message ...
>Dans mon XML, j'ai des balises qui ont parfois le m�me contenu et je
>voudrais boucler dessus en �vitant �videement les doublons.
>Savez-vous comment faire??
>
>Je vous en remercie d'avance.
>Nelson
>
salut,
je n'est aucune id�e pr�concue sur la technique et s'il ya des meilleures
solutions je serai aussi ravi de les apprendre.
toutefois il me semble que cela pourrait etre une piste. soit j'ai lu
qu'ispell @unix.moccom marche comme ca.
pb:
devra t on memoriser tous les mots et faires des comparaisons via
tri+recherche => lourd (surtout par des interpreteurs)
ici sol: au profit de la taille des data en esayant de ne pas trop penaliser
l'algo
prop:
tu calcules n*crc (code de redondance cyclique) c'est le petit truc qui te
dit en qq octets si on a eloignement de la donn�e par rapport a la valeur
attendue (cf winzip). c'est evaluer un polynome sur un corps Fp p premier
(congruence). cf numerical recipe. c'est se donneer 1 nb premier.
Si tu en as 1, la valeur de v�racit� de l'information est plutot mince. on
montre (comment qu'est ce faire doit donc je vais mais pourquoi est ce que
c'est comment deja oulalah, ne me demandes pas la demo) que par systeme avec
k crc, les �carts � 100% se multiplient entre eux et que vue qu'ils sont
plus petits que 1 ca tend vers 0, donc ca fonctionne bien. avec k#10 tu
obtiens 99.9% de r�ussite crois-je.
bilan:
data: un vecteur k-uplet de numeriques par element en surcout de dimension
ne nombre d'element a comparer
algo: insertion en temps constant, recherche ispell n'est pas fait pour etre
rapide en boucle (?-\) mais on peut imaginer un tri-lexicographique sur les
k-uplets, il s'agit d'une insertion sur des donn�es tri�s qui peut se faire
en log(n)
en gros (pseudo C-C++):
long k[] = { 117, 131, 207, 311, ..... } // completement au hasard mais a
prendre grand
typedef long _k[sizeof(k)/sizeof(k[0])];
operator<=(_k k1, k2);
list<_k> _sign1;
int crc(char* s, int p)
add_kcrc()
find_kcrc()
avec la c++ STL <=> 1 types, <= et crc
bon, voila, j'espere que cela pourra t'etre utile
Technical Details
Message-ID:
<8s8oes$2cim$1@news5.isdnet.net>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-01!supernews.com!feeder.qis.net!dca1-hub1.news.digex.net!intermedia!europa.netcrusader.net!192.148.253.68!netnews.com!isdnet!isdnethub!not-for-mailReferences:
<aztv5.2107$1S1.9960536@nnrp1.proxad.net>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,1eef06a14856e975 X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2000-10-13 21:48:01 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-01!supernews.com!feeder.qis.net!dca1-hub1.news.digex.net!intermedia!europa.netcrusader.net!192.148.253.68!netnews.com!isdnet!isdnethub!not-for-mail From: "Joe Brouill" <joe@pointelabacelebahamas.com> Newsgroups: fr.comp.text.xml Subject: Re: Comment �viter les doublons? ISPELL l'a fait pourquoi pas XML Date: Sat, 14 Oct 2000 06:47:18 +0200 Lines: 59 Message-ID: <8s8oes$2cim$1@news5.isdnet.net> References: <aztv5.2107$1S1.9960536@nnrp1.proxad.net> NNTP-Posting-Host: 213.36.37.122 X-Trace: news5.isdnet.net 971498780 78422 213.36.37.122 (14 Oct 2000 04:46:20 GMT) X-Complaints-To: abuse@isdnet.net NNTP-Posting-Date: 14 Oct 2000 04:46:20 GMT X-Newsreader: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3