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 :

tableau ou module mots vides


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 77
    Par défaut tableau ou module mots vides
    Bonjour,

    je cherche à éliminer les mots vides d'un texte, j'hésite entre appliquer un module appelé lingua::stopwords ou insérer mes mots vides dans un tableau. Le problème est que je n'ai aucun connaissance sur les modules (installation, utilisation etc.) à savoir que mes scripts devront fonctionner sur différents postes sur lesquels je n'aurais pas la main pour installer qqch. Pour ce qui est de l'idée de mettre les mots vides dans un tableau, je n'arrive pas à trouver la logique de mon script qui serai de passer un fichier texte, en même temps de regarder le tableau et de supprimer les mots vides du fichier texte.

    Merci d'avance de votre aide.

  2. #2
    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 : 59
    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
    Par défaut
    Et moi, je n'arrive pas à comprendre ce que signifie "éliminer des mots vides"

    Pourrais-tu donner un exemple de ce que tu souhaites faire ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 77
    Par défaut
    En fait je souhaite éliminer les mots tels que "les" "sont" "toujours" "aussi" qui serait une liste de mots dans un fichier texte à part.

    Soit en input :

    "les lapins sont toujours aussi crétins"

    et en output :

    "lapins crétins".

    Merci.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Par défaut
    Sans utiliser de modules, tu peux stocker tes mots vides dans un tableau trié et lire ton fichier texte mot à mot.
    Une simple recherche dichotomique te permettrait de savoir si le mot est dans ton tableau ou non.
    Ce n'est pas très efficace mais simple et rapide à mettre en oeuvre.

  5. #5
    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 : 59
    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
    Par défaut
    Citation Envoyé par Dimitry.e Voir le message
    Sans utiliser de modules, tu peux stocker tes mots vides dans un tableau trié
    Ou dans un hash... la recherche par clé de hashage étant également efficace, et surtout, ne nécessite pas de développer la recherche dichotomique.

    Si la liste ne mot n'est pas trop importante (je ne sais pas quantifier), tu peux aussi te servir de la liste de mot pour construire une expression régulière qui les matche tous, et appliquer une substitution pour les supprimer :
    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
     
    my $fichier = "mot_vide.txt";
    open my $FICHIER, "<", $fichier or die "Can't open $fichier: $!\n";
    my @mot_vide = map { split /[\s,]/ } <$FICHIER>;
     
    my $mot_vide_re = join "|", @mot_vide;
    $mot_vide_re = "(?:" . $mot_vide_re . ")";
     
    while (my $ligne = <DATA>) {
      $ligne =~ s/$mot_vide_re\s*//gi;
      print $ligne;
    }
     
    __DATA__
    Les lapins sont toujours aussi crétins.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 77
    Par défaut
    Je viens d'essayer le code de Philou mais il me supprime tous les bouts de mots dans mon input qui ressemble à un mot_vide.

    Par exemple :

    input : lapin
    mot_vide : in
    output : lap

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Coder mot vide
    Par nicodn02 dans le forum C
    Réponses: 26
    Dernier message: 01/05/2008, 01h58
  2. supprimer ligne tableau si A est vide
    Par flyhb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/03/2008, 23h30
  3. Ajout de ligne dans un tableau ajoute un espace vide
    Par le_chomeur dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/01/2008, 15h18
  4. Y-a-t-il plus rapide pour enlever les mots vides ?
    Par Bruno13 dans le forum Delphi
    Réponses: 33
    Dernier message: 26/07/2007, 17h03
  5. Réponses: 25
    Dernier message: 13/06/2007, 18h09

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