perl | Contar la frecuencia de las palabras en el texto

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *