Aller au contenu

[Cherche] Cherche un Codeur Java ou C++ !


Khanat
 Partager

Messages recommandés

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. :D

 

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

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

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

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 ! :D

 

Je vous ferai partager mes résultats de recherche via un topic ;)

Lien vers le commentaire
Partager sur d’autres sites

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

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 :D

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Partager

×
×
  • Créer...