[awk] Petite énigme: fréquence d'occurrences
awkgirl
-
Cyril -
Cyril -
Bonjour,
je dispose d'un corpus constitué de 1000 alignements français et anglais.
Je dois faire une sélection d'alignements sur la base d'un mot simple (ou motif) suivi de sa categorie grammaticale, la fréquence minimale étant 50 occurrences.
Bon, j'ai parsé mon corpus avec treetagger, et maintenant je dispose de 1000 fichiers séparés contenant chacun un alignement, et je dispose toujours de mon corpus entier.
Faire la sélection d'alignements sur la base d'un mot simple avec catégorie grammaticale, je sais faire:
$ awk -F'\t' '$1 ~ /the$/ && $2 == "DT" \ ////// où the est le motif que je recherche et DT sa cat. gramm.
> { fname=FILENAME;
> sub(/.*_/, "", fname);
> sub(/.tag/, "", fname);
> sent=sprintf("%d", fname);
> print sent }' OO-enfr-E_ENFR_EN_al_????.tag | ////// où OO-enfr....tag est mon corpus parsé (1000 fichiers)
> while read sent;
> do
> awk -F'\t' -v s=$sent \
> 'NR == s { print "EN:" $2; print "FR:" $3 }' OO-enfr-E_ENFR_EN_al.txt ; ////// où OO-enfr....txt est mon corpus entier
> done
Mon problème est que je ne sais pas comment faire pour replacer mes fréquences d'occurrences dans chaque fichier séparé (ceux en .tag), vous me suivez?
si je n'avais pas à replacer la fréquence dans mes fichiers, je n'aurais qu'à ajouter:
#!/usr/bin/awk -f
#
#Word_Frequency.awk
#
{
while (getline < FILENAME > 0) {
col3[$3]++
# print "* "$3" = "col3[$3]
}
close (FILENAME)
while (getline < FILENAME > 0) {
print $0, col3[$3]
}
exit
}
Bon je suis désolée si tout cela vous paraît confus, en même temps ça l'est pour moi aussi!
Merci pour votre aide!!
PS: jipicy es-tu là ;-)
je dispose d'un corpus constitué de 1000 alignements français et anglais.
Je dois faire une sélection d'alignements sur la base d'un mot simple (ou motif) suivi de sa categorie grammaticale, la fréquence minimale étant 50 occurrences.
Bon, j'ai parsé mon corpus avec treetagger, et maintenant je dispose de 1000 fichiers séparés contenant chacun un alignement, et je dispose toujours de mon corpus entier.
Faire la sélection d'alignements sur la base d'un mot simple avec catégorie grammaticale, je sais faire:
$ awk -F'\t' '$1 ~ /the$/ && $2 == "DT" \ ////// où the est le motif que je recherche et DT sa cat. gramm.
> { fname=FILENAME;
> sub(/.*_/, "", fname);
> sub(/.tag/, "", fname);
> sent=sprintf("%d", fname);
> print sent }' OO-enfr-E_ENFR_EN_al_????.tag | ////// où OO-enfr....tag est mon corpus parsé (1000 fichiers)
> while read sent;
> do
> awk -F'\t' -v s=$sent \
> 'NR == s { print "EN:" $2; print "FR:" $3 }' OO-enfr-E_ENFR_EN_al.txt ; ////// où OO-enfr....txt est mon corpus entier
> done
Mon problème est que je ne sais pas comment faire pour replacer mes fréquences d'occurrences dans chaque fichier séparé (ceux en .tag), vous me suivez?
si je n'avais pas à replacer la fréquence dans mes fichiers, je n'aurais qu'à ajouter:
#!/usr/bin/awk -f
#
#Word_Frequency.awk
#
{
while (getline < FILENAME > 0) {
col3[$3]++
# print "* "$3" = "col3[$3]
}
close (FILENAME)
while (getline < FILENAME > 0) {
print $0, col3[$3]
}
exit
}
Bon je suis désolée si tout cela vous paraît confus, en même temps ça l'est pour moi aussi!
Merci pour votre aide!!
PS: jipicy es-tu là ;-)
A voir également:
- [awk] Petite énigme: fréquence d'occurrences
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
- Petite croix snap ✓ - Forum Snapchat
- Polyland énigme ✓ - Forum Loisirs / Divertissements
- Snap - croix grise - Forum Snapchat
- Bloquage d'un ami snap - Forum Snapchat