bayan-api / debug_punctuation.py
Bayan AI
Fix: TerminalPunctuationGuard for short phrases and comprehensive Nasb/Jazm grammar rules fixes
31a6db1
Raw
History Blame Contribute Delete
1.67 kB
import sys
import io
from pathlib import Path
# Force UTF-8 encoding for standard output
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
# Add src to python path
sys.path.insert(0, str(Path(r'c:\Users\dell\PycharmProjects\JupyterProject1\PythonProject\BAYAN\src')))
from app import app
client = app.test_client()
def test(text):
print(f"\n--- Testing: {text} ---")
resp = client.post('/api/analyze', json={'text': text})
data = resp.get_json()
if data and 'corrected' in data:
print(f"Corrected: {data['corrected']}")
if data and 'suggestions' in data:
for s in data['suggestions']:
print(f"[{s['type'].upper()}] '{s['original']}' -> '{s['correction']}'")
elif data and 'error' in data:
print("Error:", data['error'])
else:
print("Raw Data:", data)
if __name__ == "__main__":
# Test 1: Single Entity (Should not have punctuation added)
test("شركة أبل")
# Test 2: Short phrase (Should not have punctuation added)
test("مرحبا بكم في التطبيق")
# Test 3: Grammar error that gets fixed but then corrupted by punctuation
# "الى" is spelled wrong (needs hamza on alif below if it's إِلى or just remains الى depending on rules,
# but let's see what grammar does). Actually "يذهبون المهندسون" is a grammar error in Arabic
# (should be يذهب المهندسون).
test("يذهبون المهندسون الى الشركة")
# Test 4: Verify Grammar Model preserves punctuation
test("يذهبون المهندسون الى الشركة، أليس كذلك؟")