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 :

afficher une séquence de fréquence des catégories


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1
    Par défaut afficher une séquence de fréquence des catégories
    Bonjour,

    Je suis à la recherche d\'un programme qui permet d\'afficher une séquence de fréquence des catégories. Je dois en fait afficher au moins 5 collocations. J\'ai essai ce script mais cela ne m\'affiche que 2 suites de catégories. QQ1 pourai résoudre mon pb svp?

    use strict;
    use locale;

    my $ligne;
    my $forme;
    my $cat;
    my $lemme;
    my $collo;
    my $i;
    my $j;
    my $motcle;
    my @temp;
    my %cooc ;

    while ($ligne = <>) {
    chomp $ligne;
    ( $forme, $cat, $lemme ) = split( /\\t/, $ligne );
    if ( $cat ne \"SENT\" ) {
    push ( @temp, $cat );
    }
    else {
    for ( $i = 0; $i <= $#temp; $i++ ) {
    $motcle = lc( $temp[$i] );
    for ( my $j = $i-5; $j <= $i+5; $j++ )
    {
    if ( ( $j >= -5 ) and
    ( $j <= $#temp ) and
    ( $j != $i ) ) {
    my $collo = lc ($temp[$j]);
    $cooc{$motcle}{$collo}++;
    }
    }
    }
    @temp = ();
    }
    }

    foreach $motcle ( sort keys %cooc ) {
    my %cooc_motcle = %{ $cooc{$motcle} };
    foreach $collo
    ( sort keys %cooc_motcle ) {
    print $motcle, \"\\t\", $collo, \"\\t\",
    $cooc_motcle{$collo}, \"\\n\";
    }
    }

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Sois un peu plus clair, cela donnera peut-être envie aux autres d'essayer de t'aider. Utilise les balises CODE et explique mieux ton problème .


    Jasmine,

  3. #3
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Mail de mirandor

    Bonjour Yasmine,
    En fait, j ai étiqueter un corpus sur tree tagger, par exemple:
    le det le
    chat nom chat
    dort verbe dormir
    etc
    je dois ecrire un programme qui permet d'afficher 2 à 5 occurences d'étiquettes.
    Par exemple, je dois afficher combien de fois j'ai
    - "det" suivi d un "nom" suivi d'un "adj
    - "det" suivi "nom" suivi "verbe"
    -"verbe" suivi d'une "preposition"
    etc

    Merci bcou en tt cas
    dans mon corpus en fait, SENt c'est fin de ligne

    Jasmine,

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Que veux-tu dire par sent en fin de ligne?
    Pour signaler que quelque chose est en fin de ligne, tu dois utiliser l'ancre $
    Si MOTx est le dernier mot de ta ligne, tu écris :
    Si SENT est un mot clé que tu dois rechercher, tu écris:
    As-tu, par exemple, les trois phrases suivantes successives
    le det le
    chat nom chat
    dort verbe dormir
    Dois-tu trouver comme réponse det-nom-verbe?


    Je ne connais pas tree tagger mais en postant ton mail ici, quelqu'un d'autre pourra peut-être t'aider.
    J'ai trouvé ceci http://www.ims.uni-stuttgart.de/proj...ex/TreeTagger/
    As-tu un fichier texte à faire lire par ton programme? Si oui, tu dois utiliser les expressions régulieres pour rechercher tes mots clés "det", "verbe" et "nom". Tu regardes ligne par ligne et tu retiens la succession des mots clés.
    Quelque chose comme ça
    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
    my $liste="";
    while ($ligne=~<FICHIER>)
    {
       if ($ligne=~ /verbe/)
       {
          $liste = $liste."-verbe";
       }
       elsif ($ligne=~ /det/)
       {
          $liste = $liste."-det";
       }
       elsif ($ligne=~ /nom/)
       {
          $liste = $liste."-nom";
       }
    }
    Et tu t'arranges afin de compter le nombre de fois que tu as chaque combinaison par exemple en les plaçant comme clés d'un tableau (hash) ayant pour valeur le nombre de fois que la combinaison a été rencontrée.


    Jasmine,

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/12/2008, 15h21
  2. Réponses: 7
    Dernier message: 19/07/2008, 20h07
  3. Réponses: 14
    Dernier message: 05/11/2007, 14h23
  4. Afficher une échelle temporelle sur des graphiques
    Par RKOCOCO dans le forum MATLAB
    Réponses: 2
    Dernier message: 27/07/2007, 14h47
  5. Réponses: 2
    Dernier message: 23/03/2007, 04h32

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