Contar la frecuencia de todas las palabras de una string es una operación básica para cualquier lenguaje de programación. La frecuencia de cada palabra del texto se puede contar y almacenar en un hash para su uso posterior. En Perl, podemos hacer esto dividiendo primero las palabras de la string en una array. Usamos la función split // que divide la string con ‘ ‘. Sin embargo, los espacios en blanco pueden ser más de uno entre dos palabras, por lo que se usa /\s+/ . Aquí \s+ denota una o más ocurrencias de ‘ ‘. Ahora recorremos la nueva array creada al dividir el texto en palabras. Esta vez incrementamos el conteo de la palabra mientras recorremos la array.
- Ejemplo: Para demostrar Contar la frecuencia de las palabras en una string
# Perl program for counting words in a string
$actual_text
=
"GFG GeeksforGeeks GFG"
;
# Creating words array by splitting the string
@words
=
split
/ /,
$actual_text
;
# Traversing the words array and
# increasing count of each word by 1
foreach
$word
(
@words
)
{
$count
{
$word
}++;
}
# Printing the word and its actual count
foreach
$word
(
sort
keys
%count
)
{
print
$word
,
" "
,
$count
{
$word
},
"\n"
;
}
Producción:
GFG 2 GeeksforGeeks 1
Diferencia entre /\s+/ y / / : El ‘\s+’ se puede utilizar para un delimitador con uno o varios espacios. Sin embargo // solo separa las palabras con 1 espacio. El siguiente código representa la diferencia si el texto tiene más de un espacio entre dos palabras.
- Ejemplo: Para demostrar la diferencia entre /\s+/ y / /
# Perl program for counting words in a string using / /
# A text with two spaces rather than one
$actual_text
=
"GeeksforGeeks welcomes you to GeeksforGeeks portal"
;
# splitting the word with / /
@words
=
split
/ /,
$actual_text
;
# Counting the occurrence of each word
foreach
$word
(
@words
)
{
$count
{
$word
}++;
}
foreach
$word
(
sort
keys
%count
)
{
print
$word
,
" "
,
$count
{
$word
},
"\n"
;
}
Producción:
1 GeeksforGeeks 2 portal 1 to 1 welcomes 1 you 1
Nota: El extra ‘ ‘ también se cuenta como una palabra.
Usando el comando /\s+/ para dividir las palabras: Aquí el espacio no contará como la palabra separada.
- Ejemplo:
#Perl program for counting words in a string using /\s+/
# Actual string with two spaces
$actual_text
=
"GeeksforGeeks welcomes you to GeeksforGeeks portal"
;
#S plitting the text using /\s+/ command
@words
=
split
/\s+/,
$actual_text
;
# counting the occurrence of each word
foreach
$word
(
@words
)
{
$count
{
$word
}++;
}
foreach
$word
(
sort
keys
%count
)
{
print
$word
,
" "
,
$count
{
$word
},
"\n"
;
}
Producción:
GeeksforGeeks 2 portal 1 to 1 welcomes 1 you 1
Nota: El extra ‘ ‘ no se cuenta como una palabra.
Publicación traducida automáticamente
Artículo escrito por SrijaPandey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA