Khanat Posté(e) le 10 juillet 2011 Partager Posté(e) le 10 juillet 2011 Bonjour ! Cette "offre" n'étant pas une offre Ingame, vous l'aurez deviné, je ne savais pas trop où la placer. J'ai choisi la Taverne parce que il y a pas mal de passage et que c'est Non RP. Enfin bref : Je cherche un codeur. Il me faut un petit programme qui compte les apparitions de chaque lettre dans un texte. En effet, j'effectue un petit travail de recherche linguistique : regrouper des dizaines de textes de 1000 caractères en langues française, anglaise, allemande, espagnole, italienne, néerlandaise, suédois, roumain, .... Enfin toutes les langues utilisant l'alphabet latin dans leur système d'écriture ! Je prendrai ensuite ces textes et les passerai dans la machine algorithmique que je n'arrive ni à trouver ni créer moi même, j'aurai des statistiques et puis euuuh.... je serai content. Bien entendu, l'alphabet latin a subi quelques déformations dans certaines langues (ã, ñ, ß, et j'en passe... ), ce qui m'amènerait à modifier la base de code du programme. Pour ajouter ou supprimer certains graphèmes en fonction de la langue donc, ce qui est nécessaire pour une petite dizaine de langues majeures. Bref, je décris clairement l'algorithme, pour faire simple clair et concis : - Compter les occurrences d'une lettre (symbole graphique) en particulier dans un texte de l'ordre du millier de mot. Évidemment, cette demande n'étant pas IG, je ne paierai néanmoins pas celui ou celle qui m'aidera en espèces sonnantes et trébuchantes, mais s'il le faut, je suis prêt à fournir de ma personne pour un projet sur Minefield, que ce soit de l'écriture d'une description, d'un RP, jusqu'à la réalisation même du projet sur le serveur, faut bien mettre les mains dans le cambouis parfois ! Si vous vous sentez capable et compétent pour me pondre un algorithme qui fonctionne, merci de me MP Forum ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
VivienD Posté(e) le 10 juillet 2011 Partager Posté(e) le 10 juillet 2011 Mes notions de programmation en C (norme C99) remontent à un peu trop loin pour que je puisse taper un programme fonctionnel. En revanche, j'ai quelques idées et questions qui pourront servir à ceux qui vont s'atteler à la tâche. [*:3tw6tvi3]Il faudrait savoir si l'on doit faire fi de la casse ou non, car, par défaut, l'ordinateur considère que les lettres en majuscule et celles en minuscule sont différentes ;[*:3tw6tvi3]Il faudrait commencer par un programme qui ne peut analyser que les textes anglais ou latins, parce qu'ils n'ont dans leur alphabet que des caractères supportés par la norme ASCII ;[*:3tw6tvi3]Il faudrait aussi se pencher sur le multithreading, qui permettrait, ici, d'effectuer simultanément les tests pour chacune des lettres, bien que cela nécessite un registre (je conseille le type FIFO) et un système de sémaphore. Je crois que c'est tout. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Khanat Posté(e) le 10 juillet 2011 Auteur Partager Posté(e) le 10 juillet 2011 Je n'ai rien compris. C'est pas un mystère si je n'y arrive pas moi même, je suis une daube en programmation... Lien vers le commentaire Partager sur d’autres sites More sharing options...
VivienD Posté(e) le 10 juillet 2011 Partager Posté(e) le 10 juillet 2011 Je n'ai rien compris. C'est pas un mystère si je n'y arrive pas moi même, je suis une daube en programmation... Si tu veux des éclaircissements, demande-les : on ne mord pas . Lien vers le commentaire Partager sur d’autres sites More sharing options...
Khanat Posté(e) le 10 juillet 2011 Auteur Partager Posté(e) le 10 juillet 2011 Bien alors je vais poser des questions ! Mes notions de programmation en C (norme C99) remontent à un peu trop loin pour que je puisse taper un programme fonctionnel. En revanche, j'ai quelques idées et questions qui pourront servir à ceux qui vont s'atteler à la tâche. [*:fu6by2y3]Il faudrait savoir si l'on doit faire fi de la casse ou non, car, par défaut, l'ordinateur considère que les lettres en majuscule et celles en minuscule sont différentes ;[*:fu6by2y3]Il faudrait commencer par un programme qui ne peut analyser que les textes anglais ou latins, parce qu'ils n'ont dans leur alphabet que des caractères supportés par la norme ASCII ;[*:fu6by2y3]Il faudrait aussi se pencher sur le multithreading, qui permettrait, ici, d'effectuer simultanément les tests pour chacune des lettres, bien que cela nécessite un registre (je conseille le type FIFO) et un système de sémaphore. Je crois que c'est tout. - La casse, c'est le truc qui fait qu'au bout de 5 essais foirés de déverrouillage de mon portable, je doive attendre 30 secondes. C'est quoi exactement en programmation ? Quel est le rapport avec des lettres majuscules ou minuscules différentes ? - La norme ASCII : je connaissais que vaguement, de non, auparavant. Je viens de voir que les 128 caractères sont assez restrictifs, mais il est clair que s'il est plus simple de ne se limiter qu'à ceux-la au début, je m'en contenterai. Ça réduit quand même les champs à un anglais sans utilisation de mots français (étiquette par exemple) ou à du latin, mais le latin je m'en fiche. Enfin si je veux comparer plusieurs langues entre elle, il est nécessaire d'intégrer la notion d'accents, de cédille, de ß, etc... - Là je n'ai rien compris du tout. Mais alors rien de rien. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Citron Posté(e) le 10 juillet 2011 Partager Posté(e) le 10 juillet 2011 Au final, ce qui t'intéresse, c'est les statistiques ? Parce que j'ai bien ma petite idée de comment faire. Mais ce ne sera pas avec du C++ ou Java. Bon, il faut encore que j'essaye mais ça devrait marcher. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Khanat Posté(e) le 10 juillet 2011 Auteur Partager Posté(e) le 10 juillet 2011 Ce sont des statistiques pour chaque lettre oui. De manière à pouvoir ensuite moduler le programme pour les regrouper en quelques groupes (la classique opposition voyelle/consonne majoritairement !). Étant donné que parfois la notion de voyelle change entre chaque langue (surtout vis-à-vis du "y"), ce serait plus simple pour moi de manipuler des stats et à l'aide de quelques calculs mathématiques en faire des groupes. Essaye essaye, même si c'est pas en C++ ou en Java, je prendrai ! Je vous ferai partager mes résultats de recherche via un topic Lien vers le commentaire Partager sur d’autres sites More sharing options...
VivienD Posté(e) le 10 juillet 2011 Partager Posté(e) le 10 juillet 2011 Concernant le premier point, les ordinateurs sont sensibles à la casse, c'est-à-dire que pour eux le A est différent du a, le B est différent du b et ainsi de suite. Concernant le troisième point, le multithreading est une technique de programmation avancée qui permet d'exécuter simultanément plusieurs processus dans ce que l'on appelle des threads. Pour que les différents threads puissent communiquer entre eux, il faut créer un registre, qui est une sorte de RAM virtuelle dans lequel les threads peuvent écrire et lire des informations. Il existe plusieurs types de registre : les plus utilisés sont les LIFO et les FIFO. Les LIFO (last in, first out) sont caractéristiques des piles : quand on ajoute une information, on la met sur le dessus de la pile ; lorsque l'on désire prendre une information, on prend celle qui est tout en haut de la pile. Les FIFO (first in, first out) sont caractéristiques des files : quand on ajoute une information, on la met à la fin de la file ; lorsque l'on désire prendre une information, on prend celle qui est tout au début de la file. Pour éviter qu'un thread ne prenne une information alors qu'un autre thread est en train de l'éditer, on utilise le sémaphore, une sorte de code en en-tête de chaque information du registre qui indique grosso modo si l'information peut être utilisée ou non. Enfin, pour les caractères étendus, comme les lettres allemandes ä, ö, ü et ß (je travaille sur un clavier QWERTZ, donc il m'est plus facile d'atteindre ces lettres-ci), il faut faire intervenir des bibliothèques supplémentaires (wchar.h et wctype.h en C), qui ont leur lot d'avantages et d'inconvénients. J'espère t'avoir apporté les éclaircissements que tu voulais. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Khanat Posté(e) le 10 juillet 2011 Auteur Partager Posté(e) le 10 juillet 2011 Hum... Merci beaucoup. J'ai du relire, mais maintenant j'ai une image correspondant à un espèce de réseau dans lequel il faut commander plusieurs trucs différents. Enfin bon. Merci pour l'éclaircissement, je vais aller regarde quelques trucs sur Wiki à propos de ça, ça m'intrigue Lien vers le commentaire Partager sur d’autres sites More sharing options...
Khanat Posté(e) le 7 août 2011 Auteur Partager Posté(e) le 7 août 2011 Je me permets un petit up ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant