Haiku Checker
Metininiz 5-7-5 hece haiku yapısını satır başına analizle takip edip etmediğini kontrol edin.
Haiku Hakkında
Haiku, 5-7-5 hece düzenini izleyen üç satırdan oluşan Japon şiir biçimidir. Hece sayacı İngilizce ünlü grubu sezişsel yöntemlerini kullanır ve tüm kelimeler için yüzde 100 doğru olmayabilir.
Bu araç hakkında
Bir haiku kontrol aracı, metninizin geleneksel 5-7-5 hece yapısını takip edip etmediğini doğrulayan bir yardımcı programdır. Haiku, kısa ve zarif yapısıyla bilinen eski bir Japon şiir biçimidir ve hece sayısı bu yapının temelini oluşturur. Bu araç her satırı bağımsız olarak analiz eder, heceleri sayar ve ayrıntılı geri bildirim sağlar; böylece bileşiminizin klasik biçimle ne kadar uyumlu olduğunu tam olarak görebilirsiniz.
Haiku kontrol aracını kullanmak için, üç satırlık şiirinizi giriş alanına yapıştırın ve analiz et düğmesini tıklayın. Araç her satırın hece sayısını gösterecek ve 5-7-5 deseniyle eşleşip eşleşmediğini belirtecektir. Bu, haiku yazma öğrenen yazarlar, edebiyat derslerinde Japon şiirini inceleyen öğrenciler veya başkalarıyla paylaşmadan önce çalışmalarını geliştirmek isteyen herkes için özellikle yararlıdır.
Sıkça Sorulan Sorular
Kod Uygulaması
import re
def count_syllables(word: str) -> int:
"""Count syllables in an English word using vowel-group heuristic."""
word = word.lower().strip()
word = re.sub(r"[^a-z]", "", word)
if not word:
return 0
# Count vowel groups
count = len(re.findall(r"[aeiouy]+", word))
# Adjust for silent-e ending
if word.endswith("e") and count > 1:
count -= 1
return max(1, count)
def count_line_syllables(line: str) -> int:
words = re.findall(r"[a-zA-Z'-]+", line)
return sum(count_syllables(w) for w in words)
def check_haiku(text: str) -> dict:
lines = [l.strip() for l in text.strip().split("\n") if l.strip()]
if len(lines) != 3:
return {"valid": False, "error": f"Expected 3 lines, got {len(lines)}"}
counts = [count_line_syllables(line) for line in lines]
expected = [5, 7, 5]
valid = counts == expected
return {
"valid": valid,
"lines": [
{"text": lines[i], "syllables": counts[i], "expected": expected[i]}
for i in range(3)
],
}
haiku = """
An old silent pond
A frog jumps into the pond
Splash! Silence again
"""
result = check_haiku(haiku)
print(f"Valid haiku: {result['valid']}")
for line in result["lines"]:
status = "✓" if line["syllables"] == line["expected"] else "✗"
print(f" {status} {line['syllables']}/{line['expected']} syllables: {line['text']}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.