Vai al contenuto
🛠️ToolsShed

Syllable Counter

Conta le sillabe nelle parole e nel testo, analizza le metriche di leggibilità e verifica i modelli di stress.

Informazioni sullo strumento

Il Contatore di Sillabe è uno strumento leggero progettato per analizzare la struttura ritmica del testo contando le sillabe nelle parole e misurando la complessità del testo attraverso metriche di leggibilità. Comprendere la distribuzione delle sillabe aiuta scrittori, poeti e studenti di lingue a riconoscere come scorre il testo e se il contenuto è adatto al pubblico previsto. A differenza dei sistemi basati su dizionari che richiedono ricerche lato server, questo strumento funziona istantaneamente nel vostro browser utilizzando un'euristica di gruppi di vocali che gestisce i comuni pattern inglesi.

Per utilizzare lo strumento, incollate o digitate semplicemente il vostro testo nel campo di input e fate clic su Analizza. Lo strumento visualizza il numero totale di sillabe, il numero di parole, la media di sillabe per parola e una classificazione di leggibilità che va da semplice (meno di 1,5 sillabe per parola) a complessa (oltre 2,5). Un'analisi parola per parola mostra i conteggi delle singole sillabe, aiutandovi a identificare quali parole contribuiscono più alla densità del testo. Ciò è particolarmente utile per i poeti che affinano la metrica, gli scrittori che adeguano il contenuto al livello scolastico, o gli autori di testi che adattano le parole al ritmo di una melodia.

Il contatore applica correzioni per le lettere mute (come la 'e' finale in "cake") e gestisce i comuni pattern inglesi come le terminazioni -le. Per la massima precisione con nomi propri insoliti o terminologia specializzata, controllate i risultati con una guida di pronuncia. Lo strumento è ottimizzato per l'inglese; le altre lingue hanno diverse regole di silabazione e possono fornire al massimo risultati approssimativi.

Domande Frequenti

Implementazione del Codice

import re

def count_syllables(word: str) -> int:
    word = word.lower().strip(".,!?;:'"")
    if not word:
        return 0
    # Special case: silent 'e' at end
    if word.endswith('e') and len(word) > 2:
        word = word[:-1]
    # Count vowel groups
    vowels = "aeiouy"
    count = 0
    prev_was_vowel = False
    for char in word:
        is_vowel = char in vowels
        if is_vowel and not prev_was_vowel:
            count += 1
        prev_was_vowel = is_vowel
    return max(1, count)

def count_syllables_in_text(text: str) -> dict:
    words = re.findall(r"[a-zA-Z']+", text)
    total = sum(count_syllables(w) for w in words)
    return {
        "words": len(words),
        "syllables": total,
        "avg_per_word": round(total / len(words), 2) if words else 0
    }

text = "The quick brown fox jumps over the lazy dog"
result = count_syllables_in_text(text)
print(f"Words: {result['words']}")
print(f"Syllables: {result['syllables']}")
print(f"Avg per word: {result['avg_per_word']}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.