Bonjour à tous,
J'ai un fichier des texte qui contient des lignes de cette forme :
mot1 mot2 .. motn -> mot1' mot2' ... motn'
Je cherche une idée pour extraire séparément les mots composants cette ligne
Avez vous une piste svp?
Merci d'avance
Bonjour à tous,
J'ai un fichier des texte qui contient des lignes de cette forme :
mot1 mot2 .. motn -> mot1' mot2' ... motn'
Je cherche une idée pour extraire séparément les mots composants cette ligne
Avez vous une piste svp?
Merci d'avance
Pas assez de détails sur ce que tu veux faire, mais la fonction split te permettra de charger dans un tableau les mots d'une ligne de texte.
Merci Lolo87,
en fait j'ai un fichier qui contient des ligne sous cette forme :
mot1 mot2 ... --> motx moty ...motz
j'aimerai extraire les mots de chaque ligne pour les chercher dans une table de hachage
Exemple :
bonjour les -->good morning
je veux afficher dans un fichier :
bonjour les -->good morning prob(bonjour) * prob(les) * prob(good) * prob(morning).
sachant que ces valeur de prob sont stockes dans une table de hachage
merci
c'est un algo assez simple :
ouvrirFichier( "fichier-de-mots.txt" );
pourChaqueLigne {
Faire:
tableauMots = split( ' ' , ligne );
//traitement sur le tableau de mots
... //TODO
}
fermerFichier();
Cet algo se base sur le fait que chaque mot est séparé par un espace.
et un bout de code rapide :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 my $nomFichier = "C:\"fichier-de-mots.txt"; open( FICHIER_MOTS , "<$nomFichier" ); while( <FICHIER_MOTS > ) { chomp; //voir la doc sur cette fonction my $ligneMots = $_; my @tableauMots = split( ' ' , $ligneMots ); //traitement sur le tableau de mots //TODO } close( FICHIER_MOTS );
Pour information, un hash ne préservera pas l'ordre dans lequel les mots ont été rencontrés.
Voici un petit bout de code en exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 my %liste; while (my $inline = <$infile> { my @words = split / /, $inline; $liste{$_} = 1 foreach @words; }
Merci Jiheme44 pour votre idée
je vais la tester
@Lolo87 : merci egalement, mais est ce que vous pouvez m'expliquer la derniere ligne dans le code? Merci
La dernière ligne de ce bout de code stocke dans le hash %liste chacun des mots du tableau @words. Chaque mot est stocké sous la forme de clef du hash, la valeur est indifférente, ici je donne la valeur 1. Pour une meilleure compréhension du code, noter que la variable spéciale $_ prend successivement toutes les valeurs du tableau @words parcouru par le foreach.
Merci pour vos reponse,
Apres avoir chargé les mots et leurs probabilité dans la table de hachage
laq uestion est comment faire pour calculer la multi des prob des mots
je veux dire j'ai un autre fichier en input qui contient une chaine de caractre -> chaine de caractere prob(chaine de caractere)
par exemple :
hello world -> salut tout le monde 0.5
je veux afficher dans un fichier output :
hello world -> salut tout le monde 0.5*log(0.5/(p(hello)*p(world)*p(salut)*p(tout)*p(le)*p(monde))
Je bloque là
Merci pour vos aides
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager