IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

conseils pour spellchecker


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 30
    Points : 10
    Points
    10
    Par défaut conseils pour spellchecker
    J'ai crée un petit correcteur d'ortographe (il n'est pas parfait mais comme débutante est pour moi un bon résultat).

    Pour l'instant le script marche comme ça:

    1. après avoir sauvegardé dans un tableau le lexique et dans un autre les mots à corriger
    2. il examine un pour un les mots, s'il vérifie qu'ils n'existent pas dans le dictionnaire
    3. pour chaque mot, il sauvegarde dans un tableau les lettres pour appliquer les modifications
    4. après il donne tous les résultats possibles.

    J'ai une question:

    Je voudrais appliquer le correcteur à un fichier qui contient un texte.
    Je voudrais bien qu'il puisse corriger automatiquement le texte. L'utilisateur devrait choisir la solution meilleure parmi les solutions offres.

    J'avais pensé donc:

    1. le programme lit le texte
    2. il sauvegarde dans un tableau les mots qui ne sont pas presents dans le dictionnaire --> @corriger
    3. pour chaque mot dans le tableau @corriger il montre un numero et la solution possible

    --> par ex:
    le mot trouvé est parrer, le solutions sont
    1.parler,
    2. parer,
    3. palier
    ... etc

    4. après il demande à l'utilisateur le mot à choisir
    5. il sauvegarde le mot dans un autre tableau
    6. il lit le tableau et applique le remplacement dans un nouveau fichier qui aura le texte corrigé finalement.


    Selon vous, est-il possible faire ça?
    Il y a de solutions plus faciles pour choisir le mot et le remplacer?

    je ne sais pas comment je pourrais remplacer le texte corrigé.


    Merci
    Je vous donne mon code et le lexique.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    use diagnostics;
    use warnings;
     
    my ($file_dictionary, $word, $line, $line1, $alph, $elt, $w, $transposition, $letter1, $letter2);
    my (@word, @altered_word, @filedictionary, @filetext, @dictionary, @addition, @replacement, @transposition, @removal);
     
     
    $file_dictionary = "lexique.txt";
    $file_text = "texte.txt";
     
    #I create an array for the dictionary
    open (L, "<", $file_dictionary);
    while (defined( $line1 = <L>)) {
    	chomp($line1);
    	@filedictionary = split (/\s/, $line1);
    	push (@dictionary, @filedictionary);
    	}
     
    #I create an array for the text	
    open (T, "<", $file_text);
    while (defined( $line = <T>)) {
    	chomp($line);
    	@filetext = split (/(\s|\pP)/, $line);
    	for ($i = 0; $i < @filetext; $i++) {
    		if (!grep(/^$filetext[$i]$/, @dictionary)) {
    		push (@word, $filetext[$i]);
    		}
    	}
    }
     
    #then I create an array for each word 
    foreach $w(@word) {
    @altered_word = split (//, $w);
     
    #I create an array for the dictionary
    open (L, "<", $file_dictionary);
    while (defined( $line1 = <L>)) {
    	chomp($line1);
    	@filedictionary = split (/\s/, $line1);
    	push (@dictionary, @filedictionary);
    	}
     
    #first operation --> "palrer" will be "parler"
    for (my $i=0; $i < $#altered_word ; $i++)
    	{
    		@transposition = @altered_word;
    		$letter1 = $transposition[$i];
    		$letter2 = $transposition[$i+1];
    		$transposition[$i] = $letter2;
    		$transposition[$i+1] = $letter1;
     
    		$transposition = join "", @transposition;
    		if (grep(/^$transposition$/, @dictionary))
    		{
    			print "post transposition : $transposition\n";
    		}
     
    	}
     
    foreach $elt (0 .. $#altered_word) {
    #second operation --> parller will be parler
     
    		@removal = @altered_word;
    		splice(@removal, $elt, 1);
    		$removal = join "", @removal;
    		if (grep(/^$removal$/, @dictionary))
    		{
    			print "post enlevement : $removal\n";
    		}
     
    #third operation --> parer will be parler
     
    	foreach $alph('a' .. 'z') {
     
    	@addition = @altered_word;
    	splice(@addition, $elt, 0, $alph);
     
    	$addition = join "", @addition;
    		if (grep(/^$addition$/, @dictionary)) {
    			print "post addition : $addition\n";
    			}
     
    #last operation  : mancer will be manger
     
    	@replacement = @altered_word;
    	splice(@replacement, $elt, 1, $alph);
    	$replacement = join "", @replacement;
    		if (grep(/^$replacement$/, @dictionary)) {
    			print "post replacement : $replacement\n";
    			}
    		}
    	}
    }
    Ici il y a le lexique, c'est un lien
    lexique

    Ici il y a le texte
    texte

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    J'ai traduit le code en anglais afin qu'il puisse etre plus comprehensible et je vous donne le lexique et le texte, je pense les liens vont marcher.

    Merci !

  3. #3
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Je t'ai répondu sur ton post identique (en anglais, cependant) sur un autre forum (dev shed).

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    lol j'ai lu! Merci ! J'essaie le petit truc et après j'écris le code de nouveau!

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/07/2003, 16h04
  2. Conseils pour developper une application avec Oracle
    Par belugha dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/06/2003, 16h03
  3. Cherche conseil pour choisir mon orientation.
    Par AslDice dans le forum Débuter
    Réponses: 6
    Dernier message: 24/04/2003, 17h07
  4. Conseils pour poser votre question...
    Par Community Management dans le forum XMLRAD
    Réponses: 0
    Dernier message: 30/01/2003, 16h58
  5. [web] Cherche un conseil pour un livre perl-tk
    Par Anonymous dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/04/2002, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo