import sys
import re
import difflib

def extract_myanmar_text(filepath):
    with open(filepath, 'r', encoding='utf-8') as f:
        text = f.read()
    # Filter only Myanmar characters (U+1000 - U+109F)
    # This ignores English, Vietnamese, punctuation, spaces, newlines, headers, etc.
    myanmar_chars = re.findall(r'[\u1000-\u109F]', text)
    return ''.join(myanmar_chars)

def evaluate(standard_file, target_file):
    standard_text = extract_myanmar_text(standard_file)
    target_text = extract_myanmar_text(target_file)
    
    if not standard_text:
        print("Lỗi: Không tìm thấy ký tự tiếng Myanmar trong file chuẩn.")
        return
        
    matcher = difflib.SequenceMatcher(None, standard_text, target_text)
    ratio = matcher.ratio() * 100
    
    print(f"TỔNG QUAN:")
    print(f"- Số ký tự Myanmar file chuẩn: {len(standard_text)}")
    print(f"- Số ký tự Myanmar file trích xuất: {len(target_text)}")
    print(f"- Độ chính xác (tương đồng): {ratio:.2f}%")
    
    # Analyze differences
    opcodes = matcher.get_opcodes()
    deletions = 0
    insertions = 0
    replacements = 0
    
    for tag, i1, i2, j1, j2 in opcodes:
        if tag == 'replace':
            replacements += (i2-i1)
        elif tag == 'delete':
            deletions += (i2-i1)
        elif tag == 'insert':
            insertions += (j2-j1)
            
    print(f"\nCHI TIẾT LỖI:")
    print(f"- Ký tự bị sai (replace): {replacements}")
    print(f"- Ký tự bị thiếu (delete): {deletions}")
    print(f"- Ký tự bị thừa (insert): {insertions}")

if __name__ == "__main__":
    standard = "An Duc Tam Bao/tam_bao_071_080_standard.txt"
    target = "An Duc Tam Bao/tam_bao_071_080.md"
    evaluate(standard, target)