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 :

chercher une chaine de caracteres et remplacement


Sujet :

Langage Perl

  1. #41
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Citation Envoyé par étoile de mer Voir le message
    Oui cette rearque me parait importante, car jaurais besoin de ca je pense.
    Cela dit, si la remarque est importante, l'ordre dans le dictionnaire n'est alors plus important, puisqu'on réalise "toutes" les jointures possibles du dictionnaire, et non plus uniquement les "prioritaires" dans l'ordre
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  2. #42
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Merci Philou,
    J'ai vu que ca marche sauf en mettant une espace justre avant le retour chariot
    est ce normal?
    Merci
    monsieur le président appelle la commission de l(espace)
    union européenne l union et la commission(espace)
    Le jour est le père du labeur et la nuit est la mère des pensées.

  3. #43
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Cela dit, si la remarque est importante, l'ordre dans le dictionnaire n'est alors plus important, puisqu'on réalise "toutes" les jointures possibles du dictionnaire, et non plus uniquement les "prioritaires" dans l'ordre
    je voulais dire que c'est possible d'avoir ca dans le dictionnaire
    monsieur le président
    la commission
    l union europeenne
    et donc on aura comme resultat
    monsieur+le+président appelle la+commission de l
    l+union+européenne l union et la+commission
    Le jour est le père du labeur et la nuit est la mère des pensées.

  4. #44
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    C'est le genre de chose qu'il aurait fallu dire dès le début... car cela conditionne tout l'algorithme

    Avec cette nouvelle demande, l'algo de transformation, et la lecture du dictionnaire doivent être complètement revus.

    Pour l'espace en fin de ligne, ce doit être un détail d'implémentation (que je peux regarder, mais qui sera sans doute remis en cause si je trouve un algo pour ta nouvelle spec).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #45
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Je suis desolée
    Jespere que ca sera possible avec ce changement
    Merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  6. #46
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    C'est un peu plus complexe, et je ne pourrai pas regarder avant demain. Je planche sur l'idée de charger le dictionnaire avec des expressions régulières qui rassemblent la liste des mots à joindre.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  7. #47
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Une question : l'ordre des mots à associer dans le dictionnaire doit-il être respecté dans la phrase pour permettre la jointure ?
    Exemple, si dans le dictionnaire j'ai la ligne :
    Le résultat de la transformation de la phrase :
    sera :
    et celui de la phrase :
    commission la
    sera-t-il :
    ou bien
    ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  8. #48
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Bonjour Philou,
    Je pense que je vous ai pas bien comrpi ou bien le contraire
    Bon je reexplique
    on a deux fichier : un DICO et un IN
    Le dico contient des sequence de mots (2 mot ou plus)
    le fichier IN contient des phrases
    Exemple du fichier DICO :
    la commission
    le président
    et la
    l union
    monsieur le
    union européenne
    exemple du fichier IN :
    monsieur le président appelle la commission de l
    union européenne l union et la commission
    Objectif:
    rassembler ou bien delimiter les séquences du fichier IN qui se trouvent dans le fichier DICO en respectant l'ordre:
    autrement dit je parcours le fichier DICO ligne par ligne (sequence par sequence) et je delimite cette sequence dans le fichier IN
    Exemple :

    fichier DICO :
    la commission
    le président
    et la
    l union
    monsieur le
    union européenne
    fichier IN :
    monsieur le président appelle la commission de l
    union européenne l union et la commission
    1ere etape : je trouve que la sequence la commission se trouve a la tete du fichier DICO, donc je vais rassembler cette sequence dans tout (lintegralité) du fichier IN
    Donc jaurais ca :

    monsieur le président appelle la+commission de l
    union européenne l union et la+commission
    2eme passage , je trouve apres quil ya la sequence le président, donc je ressemble cette sequence dans le fichier IN, jaurais donc ca :
    monsieur le+président appelle la+commission de l
    union européenne l union et la+commission
    etc...
    c ca l'idee de base
    Merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  9. #49
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    J'avais bien compris le fonctionnement "de base". Mais tu as ensuite introduit le fait que le dictionnaire pouvait contenir plus de 2 mots.
    Or l'algorithme prévu pour le fonctionnement "de base" n'est pas du tout adapté à un dictionnaire à plus de 2 mots... il faut donc que tu décrives ton besoin réel, et pas un besoin "simplifié", car dans ce cas, il faut tout revoir.

    Par ailleurs, si comme tu le dis maintenant, l'ordre des mots dans le dictionnaire doit être respecté dans les phrases du fichier IN, alors l'algorithme actuel doit être corrigé, car il associe deux mots qui se trouve dans le dictionnaire quelque soit leur ordre dans la phrase (la commission ou commission la sont associés).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  10. #50
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Dis moi si ceci répond à ton besoin:
    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
    use strict;
    use warnings;
     
    use utf8;
    use feature qw(:5.10);
     
    my ($in, $dico) = @ARGV;
    die "Bad infile $in" if !-r $in;
    die "Bad dicofile $dico" if !-r $dico;
     
    # load dico
    my @dico;
    open my $DICO, "<", $dico or die "Can't open $dico for reading: $!\n";
    # Pour toutes les lignes du dictionnaire
    foreach my $line (<$DICO>) {
      chomp($line);
      # Extraire les mots et s'il y en a sur la ligne
      if (my @word = split /\s+/, $line) {
        # Construire l'expression régulière permettant de joindre les mots
        # 3 captures sont effectuées : les espaces avant, les mots à associer, les espaces après
        my $re = q{(^\s*|\s+)(}.(join q(\s+), @word).q{)(\s+|\s*$)};
        # Stocker les mots et l'expression régulière de recherche dans @dico
        push @dico, qr/$re/;
      }
    }
     
    open my $IN, "<", $in or die "Can't open $in for reading: $!\n";
    my @word;
    # Pour toutes les lignes du fichier d'entrée
    foreach my $line (<$IN>) {
      # Pour toutes les lignes du dictionnaire
      foreach my $dico (@dico) {
        # Tant que la séquence du dictionnaire est présente dans la phrase
        while (my (undef, $sequence) = $line =~ /$dico/) {
          # Faire la transformation des espaces en +
          $sequence =~ s/\s+/+/g;
          $line =~ s/$dico/$1$sequence$3/;
        }
      }
      print $line;
    }
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  11. #51
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    TOP!!!
    Nickel
    Merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  12. #52
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Derniere question simple
    [code]#!/usr/bin/perl
    J'aimerai bien ecrire le resultat dans un fichier texte, mais ya un souci : il ma affiche une ligne vide entre les deux ligne resultats :
    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
    use strict;
    use warnings;
     use utf8;
    use feature qw(:5.10); 
    my ($in, $dico) = @ARGV;
    die "Bad infile $in" if !-r $in;
    die "Bad dicofile $dico" if !-r $dico;
     
    # load dico
    my @dico;
    open(FICHIERNOUVELLES, ">resultat.txt");
    open my $DICO, "<", $dico or die "Can't open $dico for reading: $!\n";
    # Pour toutes les lignes du dictionnaire
    foreach my $line (<$DICO>) {
      chomp($line);
      # Extraire les mots et s'il y en a sur la ligne
      if (my @word = split /\s+/, $line) {
        # Construire l'expression régulière permettant de joindre les mots
        # 3 captures sont effectuées : les espaces avant, les mots à associer, les espaces après
        my $re = q{(^\s*|\s+)(}.(join q(\s+), @word).q{)(\s+|\s*$)};
        # Stocker les mots et l'expression régulière de recherche dans @dico
        push @dico, qr/$re/;
      }
    }
     
    open my $IN, "<", $in or die "Can't open $in for reading: $!\n";
    my @word;
    # Pour toutes les lignes du fichier d'entrée
    foreach my $line (<$IN>) {
      # Pour toutes les lignes du dictionnaire
      foreach my $dico (@dico) {
        # Tant que la séquence du dictionnaire est présente dans la phrase
        while (my (undef, $sequence) = $line =~ /$dico/) {
          # Faire la transformation des espaces en +
          $sequence =~ s/\s+/+/g;
          $line =~ s/$dico/$1$sequence$3/;
        }
      }
      print FICHIERNOUVELLES "$line \n";
     
    }
    close(FICHIERNOUVELLES);
    Le jour est le père du labeur et la nuit est la mère des pensées.

  13. #53
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Il faut enlever le \n dans "$line \n" !
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  14. #54
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Merci beaucoup
    Le jour est le père du labeur et la nuit est la mère des pensées.

  15. #55
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    REbonjour
    J'ai un autre petit souci concernant le script :
    J'ai dans le fichier IN.txt :
    monsieur+le president de la republique
    union européenne
    et dabs le fichier DICO.txt :
    monsieur+le president
    union européenne
    normallement il doit coller la 1ere sequence à savoir : "monsieur+le president"
    de cette facon on aura comme resultat :


    monsieur+le+president de la republique
    Mais ce scriot il ne fait pas le collage de cette facon :/
    Avez vous une idée ?
    Merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  16. #56
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Comme il n'était pas prévu initialement que dans le dictionnaire il puisse exister des mots comportant autre chose que des caractères alphabétiques, il n'était pas nécessaire de prendre de précaution pour construire l'expression régulière permettant de détecter ces mots dans les phrases.
    Maintenant que ces mots peuvent contenir "+", qui est un caractère spécial pour les expressions régulières, il faut échapper ces caractères (avec la fonction perl quotemeta).

    Il faut donc changer cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        my $re = q{(^\s*|\s+)(}.(join q(\s+), @word).q{)(\s+|\s*$)};
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        my $re = q{(^\s*|\s+)(}.(join q(\s+), map quotemeta, @word).q{)(\s+|\s*$)};
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  17. #57
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Bonjour,
    Me voilà encore sur ce programme sachant qu'il marche bien ( Merci à Philou), mias il n'est pas optimisé et super trop lent vu que je travaille sur des fichier de taille GigaOctet et ce car il parcours plusieur fois le meme gros corpus.
    Je reste encore s'il ya d'autre proposition pour l'ameliorer.

    Merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  18. #58
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Pourrais-tu poster la version actuelle du fichier (et un sous ensemble représentatif du corpus) ?
    (j'ai perdu ma sauvegarde des travaux que j'avais réalisé sur ton sujet).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  19. #59
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Merci Philou pour ta reponse
    Voilà ca c'est le code :
    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
    use strict;
    use warnings;
     use utf8;
    use feature qw(:5.10); 
    my ($in, $dico) = @ARGV;
    die "Bad infile $in" if !-r $in;
    die "Bad dicofile $dico" if !-r $dico;
     
    # load dico
    my @dico;
    open(FICHIERNOUVELLES, ">resultat7.txt");
    open my $DICO, "<", $dico or die "Can't open $dico for reading: $!\n";
    # Pour toutes les lignes du dictionnaire
    foreach my $line (<$DICO>) {
      chomp($line);
      # Extraire les mots et s'il y en a sur la ligne
      if (my @word = split /\s+/, $line) {
        # Construire l'expression régulière permettant de joindre les mots
        # 3 captures sont effectuées : les espaces avant, les mots à associer, les espaces après
         my $re = q{(^\s*|\s+)(}.(join q(\s+), map quotemeta, @word).q{)(\s+|\s*$)};
        # Stocker les mots et l'expression régulière de recherche dans @dico
        push @dico, qr/$re/;
      }
    }
     
    open my $IN, "<", $in or die "Can't open $in for reading: $!\n";
    my @word;
    # Pour toutes les lignes du fichier d'entrée
    foreach my $line (<$IN>) {
      # Pour toutes les lignes du dictionnaire
      foreach my $dico (@dico) {
        # Tant que la séquence du dictionnaire est présente dans la phrase
        while (my (undef, $sequence) = $line =~ /$dico/) {
          # Faire la transformation des espaces en +
          $sequence =~ s/\s+/+/g;
          $line =~ s/$dico/$1$sequence$3/;
        }
      }
      print FICHIERNOUVELLES "$line";
     
    }
    close(FICHIERNOUVELLES);
    Le fichier Input (le gros taille 1go presque)
    la reprise de la session du parlement européen
    je déclare reprise la session du parlement européen
    je vous renouvelle tous mes voeux en espérant de bonnes vacances
    Le fichier Dico
    reprise de
    la session
    parlement européen
    bonne vacances
    de bonne+vacances
    L'objectif c'est chercher les sequences de mots du Fichier Dico dans le fichier textuel le gros et coller les mots avec un signe"+" tout en respectant l'ordre des mots dans le fichier dico
    Du coup on aura :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    la reprise+de la+session du parlement+européen
    je déclare reprise la+session du parlement+européen 
    je vous renouvelle tous mes voeux en espérant de+bonnes+vacances
    voilà, je reste à votre disposityion pour toutes autres infos
    Merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  20. #60
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Citation Envoyé par étoile de mer Voir le message
    car il parcours plusieur fois le meme gros corpus.
    Je ne comprends pas ta remarque, si tu lances le script "une fois", il ne parcours le corpus qu'une seule fois. Veux-tu dire que c'est long parce qu'il faut le relancer sur d'autres corpus ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

Discussions similaires

  1. chercher une chaine de caracteres et affichage
    Par étoile de mer dans le forum Langage
    Réponses: 9
    Dernier message: 26/09/2012, 11h36
  2. Chercher une chaine de caractere avec inconnus
    Par linked dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 24/05/2010, 02h06
  3. Chercher une chaine de caracteres dans toute ma base
    Par miltonis dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/09/2007, 17h33
  4. comment chercher une chaine de caractere
    Par phpaide dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2006, 12h12
  5. Réponses: 9
    Dernier message: 31/05/2005, 14h34

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