import re
import difflib

def get_myanmar_text(filepath):
    try:
        with open(filepath, 'r', encoding='utf-8') as f:
            text = f.read()
        # Extract only Myanmar characters (U+1000 to U+109F)
        myanmar_chars = ''.join(re.findall(r'[\u1000-\u109F]+', text))
        return myanmar_chars
    except Exception as e:
        print(f"Error reading {filepath}: {e}")
        return ""

std_file = "/home/openclaw/.openclaw/workspace/An Duc Tam Bao/tam_bao_011_020_standard.txt"
old_file = "/home/openclaw/.openclaw/workspace/An Duc Tam Bao/tam_bao_011_020.md"
new_file = "/home/openclaw/.openclaw/workspace/An Duc Tam Bao/tam_bao_011_020_new_instruction.md"

std_text = get_myanmar_text(std_file)
old_text = get_myanmar_text(old_file)
new_text = get_myanmar_text(new_file)

def calc_accuracy(ref, hyp):
    if not ref: return 0.0
    matcher = difflib.SequenceMatcher(None, ref, hyp)
    return matcher.ratio() * 100

old_acc = calc_accuracy(std_text, old_text)
new_acc = calc_accuracy(std_text, new_text)

print(f"Standard Length: {len(std_text)}")
print(f"Old Extracted Length: {len(old_text)}")
print(f"New Extracted Length: {len(new_text)}")
print(f"Old Accuracy: {old_acc:.2f}%")
print(f"New Accuracy: {new_acc:.2f}%")
