import re
import Levenshtein

def get_myanmar_text(filepath):
    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

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
    dist = Levenshtein.distance(ref, hyp)
    acc = max(0.0, 1.0 - dist / len(ref))
    return acc * 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}%")
