Syllable Counter
단어와 텍스트의 음절을 세고 읽기 가능성 지표를 분석하며 스트레스 패턴을 확인합니다.
이 도구 소개
음절 카운터는 텍스트 내 단어의 음절을 세고 가독성 지표를 통해 텍스트의 복잡도를 측정함으로써 텍스트의 리듬 구조를 분석하도록 설계된 경량 도구입니다. 음절 분포를 이해하면 작가, 시인, 언어 학습자가 텍스트의 흐름을 인식하고 콘텐츠가 목표 독자에게 적합한지 판단할 수 있습니다. 서버 조회가 필요한 사전 기반 시스템과 달리, 이 도구는 모음 그룹 휴리스틱을 사용하여 브라우저에서 즉시 작동하며 일반적인 영어 패턴을 처리합니다.
도구를 사용하려면 입력 필드에 텍스트를 붙여넣거나 입력한 다음 분석을 클릭하기만 하면 됩니다. 도구는 총 음절 수, 단어 수, 단어당 평균 음절 수를 표시하고, 단순(단어당 1.5 미만)부터 복잡(2.5 초과)까지의 가독성 분류를 제공합니다. 단어별 분석은 개별 음절 수를 보여주며, 어떤 단어가 텍스트 밀도에 가장 크게 영향을 미치는지 파악하는 데 도움이 됩니다. 이는 시인이 운율을 다듬을 때, 작가가 학년 수준의 적절성을 위해 콘텐츠를 조정할 때, 또는 작사가가 멜로디의 박자에 가사를 맞출 때 특히 유용합니다.
카운터는 "cake"의 어말 'e'와 같은 무음 문자에 대한 보정을 적용하고 -le 어미 같은 일반적인 영어 패턴을 처리합니다. 드물거나 전문 용어의 최고 정확도를 위해 발음 가이드로 결과를 교차 검증하세요. 이 도구는 영어에 최적화되어 있으며, 다른 언어는 다른 음절 분리 규칙을 가지므로 최선의 경우 근사 결과만 제공할 수 있습니다.
자주 묻는 질문
코드 구현
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.