MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Programă de numărare a cuvintelor

Să analizăm lucrul cu șirurile de caractere într-un exemplu simplu, care va reprezenta un program de numărare a cuvintelor.

Codul complet al programului arată astfel:

# Programă de numărare a cuvintelor dintr-un fișier
import os

def get_words(filename):
   with open(filename, encoding="utf8") as file:
       text = file.read()
   text = text.replace("\n", " ")
   text = text.replace(",", "").replace(".", "").replace("?", "").replace("!", "")
   text = text.lower()
   words = text.split()
   words.sort()
   return words


def get_words_dict(words):
   words_dict = dict()

   for word in words:
       if word in words_dict:
           words_dict[word] = words_dict[word] + 1
       else:
           words_dict[word] = 1
   return words_dict


def main():
   filename = input("Introduceți calea către fișier: ")
   if not os.path.exists(filename):
       print("Fișierul specificat nu există")
   else:
       words = get_words(filename)
       words_dict = get_words_dict(words)
       print(f"Numărul total de cuvinte: {len(words)}")
       print(f"Numărul de cuvinte unice: {len(words_dict)}")
       print("Toate cuvintele utilizate:")
       for word in words_dict:
           print(word.ljust(20), words_dict[word])


if __name__ == "__main__":
   main()

În funcția get_words(), are loc segmentarea inițială a textului în cuvinte. Toate semnele de punctuație sunt eliminate, iar liniile noi sunt înlocuite cu spații. Apoi, textul este împărțit în cuvinte, folosind spațiul ca delimitator implicit.

Mai departe, în funcția get_words_dict(), obținem un dicționar de cuvinte, unde cheia este un cuvânt unic, iar valoarea este numărul de apariții ale acelui cuvânt în text.

În funcția main, se introduce calea către fișier, se apelează funcțiile definite anterior și se afișează statisticile.

Ieșirea pe consolă a programului:

Introduceți calea către fișier: C:\SomeDir\hello.txt
Numărul total de cuvinte: 66
Numărul de cuvinte unice: 54
Toate cuvintele utilizate:
bucurie             2
în                  1
toate               1
voi                 1
muștar              1
ea                  1
dacă                3
încă                1
...

Acest program simplu ilustrează cum putem manipula textul într-un fișier pentru a număra cuvintele și a analiza frecvența acestora.

← Lecția anterioară Lecția următoare →