|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 | |
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 136 ![]() |
Citation:
|
|
|
|
00
|
|
|
#22 |
![]() ![]() Inscription : septembre 2003 Messages : 4 436 ![]() |
J'ai enregistré les 2 niveaux de fichiers binaires, en fait 2 X 25 fichiers car la longueur maximale des mots utilisés était 25.
Les tableaux d'index (le deuxième niveau d'index) sont chargés en mémoire, les premiers fichiers du premier niveau d'index sont gros, puis au fur et à mesure qu'on avance ils deviennent de plus en plus petits (moins de mots de 15 lettres, 16 lettres etc).
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
10
|
|
|
#23 | |
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 136 ![]() |
Citation:
![]() Bon ben y'a plus K Entre temps, j'ai aussi trouvé un exemple de DAWG ici qui, d'après "la littérature" est très performant pour la recherche de texte. Donc 2 bonnes pistes à explorer. |
|
|
|
00
|
|
|
#24 |
![]() ![]() Inscription : septembre 2003 Messages : 4 436 ![]() |
Bon courage pour la suite.
Pense à utiliser les facilités offertes par certaines fonctions qui permettent de comparer alphabétiquement les lettres accentuées.
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
00
|
|
|
#25 | ||
|
Membre Expert
![]() Inscription : mars 2007 Messages : 852 ![]() |
C'est sans doute un peu bourrin, mais j'ai simplement construit une hashtable de tous les sous-chaines de tous les mots, qui enregistre pour chaque sous-chaine la liste des mots auquel elle appartient.
En Python: Code :
La construction du dictionnaire (hashtable) est (en nombre d'étapes) O(n*m^2) où n est le nombre de mots et m est la longueur moyenne des mots. Si la longueur moyenne des chaînes à indexer est longue, cette approche risque de ne plus être praticable... |
||
|
|
00
|
|
|
#26 | |||
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 136 ![]() |
Citation:
![]() Par contre je ne connais pas le Python. Quand tu dis que tu as enregistré toutes les sous-chaînes, le "motif" de base d'une sous-chaine c'est quoi ? une syllabe ? |
|||
|
|
00
|
|
|
#27 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Citation:
[sous_chaine1] = {mot1, mot2, mot3, ...} [sous_chaine2] = {mot4, mot5, mot6, ...} Pour cela, on énumère toutes les sous-chaines présente dans chaque mot, et on met à jour les listes. tortue [t] = {tortue} [o] = {tortue} [r] = {tortue} [t] // déja traité [u] = {tortue} [e] = {tortue} [to] = {tortue} [or] = {tortue} [rt] = {tortue} [tu] = {tortue} [ue] = {tortue} [tor] = {tortue} [ort] = {tortue} [rtu] = {tortue} [tue] = {tortue} ... turquoise [t] = {tortue, turquoise} [u] = {tortue, turquoise} [r] = {tortue, turquoise} [q] = {turquoise} [u] // déja traité [o] = {tortue, turquoise} ... [tu] = {tortue, turquoise} [ur] = {turquoise} ...
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
10
|
|
|
#28 | |
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 136 ![]() |
Citation:
Par contre si je fais ça, mon index (c'est à dire ma liste de sous-chaines) va être énorme. Il va falloir que je retraite mon index pour l'alléger. |
|
|
|
00
|
|
|
#29 | |
|
Membre Expert
![]() Inscription : mars 2007 Messages : 852 ![]() |
Citation:
|
|
|
|
00
|
|
|
#30 | |
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 136 ![]() |
Citation:
Je ne veux pas utiliser l'objective C dans ce traitement. Je vais devoir construire une table de hash en C. Mais j'ai vu des exemples assez claires pour que je m'y retrouve. Merci. |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com