WPROWADZENIE

Czy kiedykolwiek zastanawiałeś się, które litery w języku polskim są najczęściej używane? A może chcesz sprawdzić, czy Twój ulubiony autor ma swój unikalny „alfabetyczny odcisk palca”? Dzięki prostemu programowi w języku Python możesz w kilka sekund przeanalizować dowolny tekst, zobaczyć wyniki w czytelnej formie i wyeksportować je do dalszej analizy.

Nasz program to narzędzie idealne dla uczniów, studentów, analityków danych, a także dla każdego, kto jest po prostu ciekawy języka. Wystarczy wkleić dowolny fragment tekstu – od krótkiego zdania po całą powieść – a program zajmie się resztą.

Zasada działania

Na początku program prosi użytkownika o wpisanie tekstu. Jego długość jest ograniczona tylko pamięcią RAM, więc może być baaarrrdzo długi 🤩

Po wprowadzeniu tekstu trzeba jeszcze zdecydować, czy wyniki mają być wyeksportowane do pliku CSV, a następnie narzędzie przystępuje do pracy. Wyniki prezentowane są na trzy sposoby, aby dać Ci pełny obraz analizowanego materiału:

  1. Szczegółowa tabela: W konsoli wyświetlona zostaje przejrzysta tabela, która pokazuje, ile razy każda litera polskiego alfabetu (od „a” do „ż”) pojawiła się w Twoim tekście.
  2. Wykres graficzny: Program generuje czytelny diagram kolumnowy. Na osi poziomej znajdują się wszystkie litery alfabetu, a wysokość słupków odpowiada liczbie ich wystąpień. Dzięki temu możesz błyskawicznie zorientować się, które litery dominują w tekście.
  3. Eksport do pliku CSV: Jeśli chcesz zachować wyniki na później lub przeprowadzić bardziej zaawansowaną analizę, program oferuje opcję eksportu danych do pliku CSV. Taki plik można łatwo otworzyć w dowolnym arkuszu kalkulacyjnym, takim jak Microsoft Excel czy Google Sheets.

To proste, ale potężne narzędzie otwiera drzwi do fascynującego świata analizy tekstu i pokazuje, jak wiele informacji można wydobyć ze zwykłych słów.

Poniżej znajduje się kod w języku Python:


KOD W JĘZYKU PYTHON

pip install matplotlib pandas

import string
import matplotlib.pyplot as plt
import pandas as pd
import os

def analizator_tekstu():
    alfabet = 'aąbcćdeęfghijklłmnńoópqrsśtuvwxyzźż'
    liczniki = {litera: 0 for litera in alfabet}
    print("Analizator częstotliwości liter w tekście")
    print("-" * 40)
    tekst_uzytkownika = input("Wpisz tekst do analizy: ")
    decyzja_eksport = input("Czy chcesz wyeksportować wyniki do pliku CSV? (tak/nie): ").lower()

    print("\nAnalizowanie tekstu...")
    for znak in tekst_uzytkownika.lower():
        if znak in liczniki:
            liczniki[znak] += 1
    print("Analiza zakończona.")
    print("\n## Tabela wystąpień liter ##")
    print("-" * 30)
    print(f"{'Litera':<10} | {'Liczba wystąpień':<20}")
    print("-" * 30)
    for litera, ilosc in liczniki.items():
        print(f"{litera:<10} | {ilosc:<20}")
    print("-" * 30)

    wszystkie_litery = list(liczniki.keys())
    wszystkie_ilosci = list(liczniki.values())
    print("\nGenerowanie wykresu...")
    plt.figure(figsize=(18, 8))
    plt.bar(wszystkie_litery, wszystkie_ilosci, color='skyblue')
    plt.title('Częstotliwość występowania liter w tekście (wszystkie litery alfabetu)')
    plt.xlabel('Litery')
    plt.ylabel('Liczba wystąpień')
    plt.grid(axis='y', linestyle='--', alpha=0.7)
    plt.xticks(rotation=60, ha='right', fontsize=10)
    plt.tight_layout()
    print("Wyświetlanie wykresu. Zamknij okno z wykresem, aby kontynuować.")
    plt.show()

    if decyzja_eksport == 'tak':
        print("\n## Eksport wyników ##")
        try:
            dane_do_eksportu = {litera: [litera, liczniki[litera]] for litera in alfabet}
            df = pd.DataFrame(dane_do_eksportu, index=['Litera', 'Liczba wystąpień'])
            df.index.name = "Opis wiersza"
            nazwa_pliku = 'analiza_tekstu.csv'
            df.to_csv(nazwa_pliku, sep=';', encoding='utf-8-sig')
            with open(nazwa_pliku, 'a', encoding='utf-8-sig') as plik:
                plik.write(f'\n\nAnalizowany tekst:\n"{tekst_uzytkownika}"')
            print(f"\n✅ Sukces! Wyniki zostały pomyślnie zapisane w pliku '{nazwa_pliku}'")
            print(f"Plik znajduje się w katalogu: {os.path.abspath(nazwa_pliku)}")
        except Exception as e:
            print(f"\n❌ Wystąpił błąd podczas zapisu pliku: {e}")
    else:
        print("\nZakończono program bez eksportowania danych (zgodnie z wcześniejszą decyzją).")

if __name__ == '__main__':
    analizator_tekstu()

⬆️⬆️⬆️ Zobacz w Google Colaboratory


JAK DZIAŁA PROGRAM?

Działanie programu można opisać w kilku prostych krokach, które wykonuje on po uruchomieniu.

  • Krok 1: Przygotowanie i pobranie danych Na samym początku program przygotowuje sobie listę wszystkich liter polskiego alfabetu. Następnie prosi użytkownika o wpisanie tekstu do analizy oraz o podjęcie decyzji, czy finalne wyniki mają zostać zapisane do pliku.
  • Krok 2: Analiza tekstu Program przechodzi przez cały wprowadzony tekst, znak po znaku. Każdą napotkaną literę (ignorując jej wielkość) zlicza, dodając jeden do odpowiedniego licznika przypisanego do tej litery.
  • Krok 3: Prezentacja wyników w tabeli Po zakończeniu zliczania program wyświetla w konsoli czytelną tabelę, w której obok każdej litery alfabetu znajduje się liczba jej wystąpień w tekście.
  • Krok 4: Wizualizacja danych Korzystając ze zebranych danych, program tworzy diagram kolumnowy. Na wykresie umieszczone są wszystkie litery alfabetu, a wysokość słupków odzwierciedla ich policzoną częstotliwość.
  • Krok 5: Eksport do pliku (opcjonalnie) Jeśli na początku użytkownik wyraził taką chęć, program tworzy plik w formacie CSV. Zapisuje w nim dane o liczbie wystąpień poszczególnych liter oraz, dla kontekstu, oryginalny tekst, który był analizowany. Na końcu informuje użytkownika o pomyślnym zapisaniu pliku.