Projet de dictionnaires arabes
4 participants
Page 76 sur 90
Page 76 sur 90 • 1 ... 39 ... 75, 76, 77 ... 83 ... 90
Re: Projet de dictionnaires arabes
Pour finaliser avec les static et les méthodes d'extensions de Linq.
La méthode static Contains que j'ai écris est superflue. En fait je ne fais rien d'autres dedans que d'utiliser le Contains de Linq. Du coup on peut supprimer cette méthode et remplacer par ces 2 lignes de code en appelant directement le Contains de Linq (qui est une méthode d'extension)
La méthode static Contains que j'ai écris est superflue. En fait je ne fais rien d'autres dedans que d'utiliser le Contains de Linq. Du coup on peut supprimer cette méthode et remplacer par ces 2 lignes de code en appelant directement le Contains de Linq (qui est une méthode d'extension)
- Code:
Console.WriteLine( "{0} {1} {2}", unvocalizedText.Contains(subString) ? "found" : "not found", subString, " in unvocalized " + unvocalizedText);
Console.WriteLine( "{0} {1} {2}", vocalizedText.WithoutVowel().Contains(subString) ? "found" : "not found", subString, " in vocalized " + vocalizedText);
Dernière édition par Adel Medine le Mer 24 Déc - 21:04, édité 1 fois
Adel Medine- Messages : 643
Points : 655
Date d'inscription : 09/09/2013
Re: Projet de dictionnaires arabes
J'ai recopié ton code dans un autre éditeur en ligne car le tien ne semble pas faire le C#.Cela permettra de mieux comparer les performances entre les solutions puisque exécuté sur un même environnement. Regarde le temps à la compilation, exécution et la mémoire utilisée
Voici le lien http://rextester.com/live/BEDE9074
Il y a quelques problèmes de caractères à priori dans le résultat. Un mauvais copier/coller depuis la source, tu pourras facilement remplacer.
Voici le lien http://rextester.com/live/BEDE9074
Il y a quelques problèmes de caractères à priori dans le résultat. Un mauvais copier/coller depuis la source, tu pourras facilement remplacer.
Adel Medine- Messages : 643
Points : 655
Date d'inscription : 09/09/2013
Re: Projet de dictionnaires arabes
Oui effectivement ça a l'air vraiment énorme ce qu'on peut faire apparemment inchâ-a Allâh. En gros tu ajoutes une méthode à la classe string, c'est ça ? Et ce sans avoir eu recourt à une classe dérivée de la classe string ? Je ne connaissais pas en tout cas, je ne sais pas si il y a ça en Java...
Je vois l'ancienne version pour l'instant, pourquoi transformer targetText en un tableau de char, je pensais que c'était déjà une string...
Je comprenais mieux l'ancienne version, là cela me semble étrange : textWithoutVowel devrait être vide au début puisque tu ajoutes dedans au fur et à mesure les caractères qui ne sont pas des voyelles.
C'est-à-dire que pour : textWithoutVowel += character; cela devrait être une autre string sinon cela veut dire que tu lis et écrit dans la même string, non ?
Adel Medine a écrit:Il y a un petit bug dans mon code mais qui n'influence pas le résultat avec ce jeu de tests. Est-ce que tu pourras le trouver ?
EDIT : je me suis aperçu après que ce n'était pas une copie à chaque fois mais le même lien. Du coup j'ai retiré le bug qui s'y trouvait. Revoici le code avec le bug
- Code:
static string WithoutVowel(this string targetText)
{
string textWithoutVowel = new string(targetText.ToCharArray());
textWithoutVowel .ToList().ForEach(character=>
{
if(_vowels.Contains(character) != true)
{
textWithoutVowel += character;
}
});
return textWithoutVowel;
}
Je vois l'ancienne version pour l'instant, pourquoi transformer targetText en un tableau de char, je pensais que c'était déjà une string...
Je comprenais mieux l'ancienne version, là cela me semble étrange : textWithoutVowel devrait être vide au début puisque tu ajoutes dedans au fur et à mesure les caractères qui ne sont pas des voyelles.
C'est-à-dire que pour : textWithoutVowel += character; cela devrait être une autre string sinon cela veut dire que tu lis et écrit dans la même string, non ?
Ibn Nacer- Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011
Re: Projet de dictionnaires arabes
Ah je suis dégouté !!! Le forum a eu un bug apparemment et j'ai perdu un long message...
Ibn Nacer- Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011
Re: Projet de dictionnaires arabes
Adel Medine a écrit:J'ai recopié ton code dans un autre éditeur en ligne car le tien ne semble pas faire le C#.Cela permettra de mieux comparer les performances entre les solutions puisque exécuté sur un même environnement. Regarde le temps à la compilation, exécution et la mémoire utilisée
Voici le lien http://rextester.com/live/BEDE9074
Il y a quelques problèmes de caractères à priori dans le résultat. Un mauvais copier/coller depuis la source, tu pourras facilement remplacer.
Si, l'autre fait aussi le C# tu peux sélectionner le langage en bas à gauche mais ce nouveau site a l'air aussi bien et il ajoute des choses apparemment comme la consommation mémoire si j'ai bien compris...
Sinon il y a une différence entre les deux codes (celui que tu as écrit et celui que j'ai écrit) toi apparemment tu utilises l'autre solution dont j'avais parlée à savoir commencer par dé-vocaliser le texte sur lequel on effectue la recherche pour pouvoir ensuite utiliser les méthodes classiques de recherche.
Cela marche bien si le texte est court mais si il est long la dé-vocalisation sera plus longue et la consommation mémoire plus importante puisque à un moment donné on se retrouve avec une copie de ce texte sans les voyelles.
Imagine que tu cherches toutes les occurrences d'un mot dans le texte en appuyant classiquement sur la touche F2 pour aller d'une occurrence à une autre eh bien à chaque fois il faudra refaire une recherche dans laquelle on devra dé-vocaliser le texte entier et en avoir une copie temporaire sans les voyelles.
C'est vrai qu'on pourrait avoir une copie sans les voyelles comme variable qui existerait durant toute l’exécution du programme afin d'éviter de devoir dé-vocaliser le texte entier à chaque recherche mais même là il y aura une consommation de mémoire plus ou moins importante sachant que ce texte pourrait être le noble Qur'ân.
Une autre solution est de récrire la méthode indexOf afin de l'adapter aux textes vocalisés arabes, c'est la solution que j'ai essayé de faire mais je me suis rendu compte qu'il un défaut à corriger inchâ-a Allâh.
Et il y a aussi les regex mais pour ce cas cela ne sera peut-être pas plus rapide...
Wa Allâh a'lam.
Wa Allâhu a'lam.
Ibn Nacer- Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011
Page 76 sur 90 • 1 ... 39 ... 75, 76, 77 ... 83 ... 90
Sujets similaires
» قاموس البحث العلميّ / Tous types de dictionnaires arabes en ligne ou à télécharger
» De la synonymie à la traduction ou comment améliorer les dictionnaires bilingues arabes
» Littérature arabe : livres / Arabic Literature: books
» Dictionnaires / معجم / dictionaries
» Dictionnaires latins / قواميس لاتينية / Latin dictionaries
» De la synonymie à la traduction ou comment améliorer les dictionnaires bilingues arabes
» Littérature arabe : livres / Arabic Literature: books
» Dictionnaires / معجم / dictionaries
» Dictionnaires latins / قواميس لاتينية / Latin dictionaries
Page 76 sur 90
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|