Apprendre les langues arabe et française
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
LEGODAYS : 20% sur une sélection de LEGO avec ce code promo
Voir le deal

Projet de dictionnaires arabes

4 participants

Page 78 sur 90 Précédent  1 ... 40 ... 77, 78, 79 ... 84 ... 90  Suivant

Aller en bas

Projet de dictionnaires arabes - Page 78 Empty Re: Projet de dictionnaires arabes

Message par Adel Medine Mer 24 Déc - 23:46

Linq c'est comme je te disais, c'est un ensemble de classes .NET static avec des méthodes static particulières (mot clef this dans les paramètres de méthode). C'est le compilateur C# qui sait interpréter cela et faire les transformations nécessaires. Documente toi un peu sur le sujet et recherche des similitudes avec Java pour voir.

Linq pour Language Integrated Query. C'est comme je te disais un langage de requêtes

Il y a Linq To Object, Linq To XML, Linq To Sql (Entity Framework), Linq To DataSet..

Adel Medine

Messages : 643
Points : 655
Date d'inscription : 09/09/2013

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 78 Empty Re: Projet de dictionnaires arabes

Message par Ibn Nacer Jeu 25 Déc - 0:02

Adel Medine a écrit:Je n'ai pas bien compris ton histoire de mémoire. On peut faire pleins de suppositions quand aux performances parfois même souvent de fausses idées. Je t'ai donné la clef de cela : la mesure et la comparaison.

Trouve un texte qui te semble assez significatif pour mettre en évidence la différence de vitesse ou de mémoire puis faisons les essais et les mesures pour comparer et ré-adapter.
Ben comme tu l'as confirmé par la suite, tu fais bien une copie du texte et cette copie elle va être stockée en mémoire : en effet avec l'instruction :

Code:
string textWithoutVowel =new string(targetText.ToCharArray());

Tu fais une copie complète et cela sera ainsi à chaque recherche c'est-à-dire à chaque appel de la fonction. Ensuite on a :

Code:
textWithoutVowel.ToList().RemoveAll(character=> _vowels.Contains(character));

Là je suppose qu'il parcourt toute la string caractère par caractère ce qui peut être plus ou moins long si la string est longue.

Ensuite il effectue la recherche :

Code:

Console.WriteLine( "{0} {1} {2}",
vocalizedText.WithoutVowel().Contains(subString) ? "found" : "not found", subString, " in vocalized " + vocalizedText);                    
  

Et là aussi il doit parcourir la string pour chercher la substring... Bon cette recherche-ci est inévitable mais celle de la dé-vocalisation peut être éviter en récrivant la méthode indexOf afin de l'adapter aux textes vocalisés arabes, c'est-à-dire afin de pouvoir chercher directement dans le texte vocalisé...

Et il y a aussi les regex mais pour ce cas cela ne sera peut-être pas plus rapide...

Je ne sais si tu vois mieux ce que je voulais dire ?

Ibn Nacer

Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 78 Empty Re: Projet de dictionnaires arabes

Message par Ibn Nacer Jeu 25 Déc - 0:11

Adel Medine a écrit:Linq c'est comme je te disais, c'est un ensemble de classes .NET static avec des méthodes static particulières (mot clef this dans les paramètres de méthode). C'est le compilateur C# qui sait interpréter cela et faire les transformations nécessaires. Documente toi un peu sur le sujet et recherche des similitudes avec Java pour voir.

Linq pour Language Integrated Query. C'est comme je te disais un langage de requêtes

Il y a Linq To Object, Linq To XML, Linq To Sql (Entity Framework), Linq To DataSet..
Oui c'est vrai t'en avais parlé mais quand on découvre on a souvent besoin qu'on nous répète les choses et il faut aussi le temps de "digérer" les infos et ce souvent à tête reposée et non dans le feu de l'action en pleine discussion sur divers points...

Mais ça viendra inchâ-a Allâh.

Ibn Nacer

Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 78 Empty Re: Projet de dictionnaires arabes

Message par Adel Medine Jeu 25 Déc - 0:17

Si je comprends bien tu voudrais faire monTexteVocalise.indexOf(''code voyelle u"); ?

Tu fais pleins de suppositions alors qu'il faut plutôt des démonstrations. Tu sais qu'une string est prévue pour accepter plusieurs gigas bytes ? 

Tu sais que pour faire une recherche il faut obligatoirement parcourir le tableau un à un que se soit par recherche simple ou dichotomique ? 

indexOf est un nom de méthode pour exprimer une utilisation cela ne veut pas dire qu'il ne parcourt pas la string caractère par caractère pareil pour les regex.

Est-ce que tu connais tout simplement les complexités des différents algorithmes ? 

J'ai l'impression que tu te concentres plus sur l'usage de la mémoire que de la rapidité d'exécution ou le code et sa lisibilité. 

Trouve nous un cas de test avec un texte significatif pour mesurer les différentes implémentations. On peut pousser avec un texte faisant 1mo puis 10 puis 100 etc..et voir ce que cela donne.

Adel Medine

Messages : 643
Points : 655
Date d'inscription : 09/09/2013

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 78 Empty Re: Projet de dictionnaires arabes

Message par Ibn Nacer Jeu 25 Déc - 0:39

Adel Medine a écrit:Si je comprends bien tu voudrais faire monTexteVocalise.indexOf(''code voyelle u"); ?

Tu fais pleins de suppositions alors qu'il faut plutôt des démonstrations. Tu sais qu'une string est prévue pour accepter plusieurs gigas bytes ? 

Tu sais que pour faire une recherche il faut obligatoirement parcourir le tableau un à un que se soit par recherche simple ou dichotomique ? 

indexOf est un nom de méthode pour exprimer une utilisation cela ne veut pas dire qu'il ne parcourt pas la string caractère par caractère pareil pour les regex.

Est-ce que tu connais tout simplement les complexités des différents algorithmes ? 

J'ai l'impression que tu te concentres plus sur l'usage de la mémoire que de la rapidité d'exécution ou le code et sa lisibilité. 

Trouve nous un cas de test avec un texte significatif pour mesurer les différentes implémentations. On peut pousser avec un texte faisant 1mo puis 10 puis 100 etc..et voir ce que cela donne.

Mais ce ne sont pas des suppositions mais des faits, peut-être qu'on s'est mal compris...

- Oui sans doute qu'une string peut accepter plusieurs gigabytes (cela dépend quand même de la mémoire vive de ton pc ou de ton mobile) mais en fait le problème n'est pas là : je te parle de comparer les solutions, une solution peut consommer plus de mémoire qu'une autre et c'est un critère de comparaison. Certes ce n'est pas le seul, on est d'accord mais ça n’empêche que c'en est un.

- Ensuite question rapidité : comme déjà dit la dé-vocalisation même si elle est rapide prend un certain temps plus ou moins long selon la taille de la string qui comme tu l'as rappelé peut avoir une taille de plusieurs gigabytes. Ça aussi c'est un fait pas une supposition...

- Alors la question est de savoir si on peut trouver une solution qui éviterait ces deux points, où est le mal ? D'où l'idée de récrire la méthode indexOf afin de l'adapter aux textes vocalisés arabes, c'est-à-dire afin de pouvoir chercher directement dans le texte vocalisé...

Bien sûr ça n’évite pas de parcourir la string, comme déjà dit cette recherche-là est inévitable mais on peut éviter de faire une copie de la string et la dé-vocalisation qui prend un temps plus ou moins long...

Wa Allâhu a'lam.


Dernière édition par Ibn Nacer le Jeu 25 Déc - 0:51, édité 1 fois

Ibn Nacer

Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 78 Empty Re: Projet de dictionnaires arabes

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 78 sur 90 Précédent  1 ... 40 ... 77, 78, 79 ... 84 ... 90  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum