25. kasu praktikoa: hitzen agerpen kopurua testuan

      Ariketa interesgarria da hurrengo hau: sarrera bezala testu bat jaso, eta testuko hitzak bistaratuko ditugu banan-banan, hitz bakoitzak testuan duen agerpen kopuruarekin batera. Programak komando-lerrotik argumentu bakarra jasoko du: fitxategi-izena. Emaitza fitxategiko hitz ezberdinen zerrenda izango da, ondoan bakoitzaren agerpen kopurua agertuko delarik.
      Adibide moduan, hona esaeraLabur.txt fitxategiko hitzen agerpenak kalkulatzen dituen deia eta programaren irteera:

 >perl fitxHitzMaiztasun.pl esaeraLabur.txt
 “Adiskidegabeko” hitzaren agerpen kopurua: 1
 “Aldi” hitzaren agerpen kopurua: 1
 “Amen” hitzaren agerpen kopurua: 1
 …
 “zuzentzen” hitzaren agerpen kopurua: 1
 ” ” hitzaren agerpen kopurua: 1
 >

Programa:

fitxHitzMaiztasun.pl
 #!/usr/bin/perl
 use strict;
 use warnings;
 my ($fitx, $lerro, @hitzak, %Maiz);
 $fitx = $ARGV[0];
 open (FI, $fitx) ||
        die(“Ezin $fitx fitxategia zabaldu!n”);
 while ($lerro = <FI>) {
   chomp($lerro);
   # Banatu hitzak. Banatzaileak koma, puntu eta koma,
   # puntua, galdera- eta harridura-ikurrak eta zuriuneak dira
   @hitzak = split(/[,.s?!;]+/, $lerro);
   foreach my $hitz (@hitzak) {
                  $Maiz{$hitz}++;
   }
 }
 # Hash-eko hitzak ordenatu eta agerpen-kopurua idatzi
 foreach my $hitz (sort(keys(%Maiz))) {
     print “‘$hitz’ hitzaren agerpen kopurua: $Maiz{$hitz}n”;
 }
 print “n”;

Programaren muina sententzia honetan dago:
$Maiz{$hitz}++;
Ez dugu aldagai eskalarrik erabili hitzen agerpen kopurua zenbatzeko. Izan ere, hitz ezberdin bakoitzeko aldagai berri bat beharko genuke. Egokiagoa da kasu honetan hash egitura erabiltzea, gakoak testuko hitzak eta balioak bakoitzaren agerpen kopurua izanik.
     Honela interpretatuko du Perl-ek $Maiz{$hitz}++; sententzia (gogoratu ++ eragileak aurreko aldagaiari bat gehitzen diola): hash-aren $hitz gakoa berria bada, esleitu bat balioa. Gakoa aurretik existitzen bada, ostera, bere aurreko balioari bat gehitu. Sententzia bakar honekin, testuko hitz guztiak gordeko ditugu hash egituran, baita bakoitzaren agerpen kopurua ere.

Jaitsi   fitxHitzMaiztasun.pl   fitxategia

Utzi erantzuna

Zure e-posta helbidea ez da argitaratuko. Beharrezko eremuak * markatuta daude