Files
Document_Translator/verify_final_result.py
2025-09-03 15:07:34 +08:00

134 lines
4.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
驗證最終韓文翻譯結果
"""
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# 設定編碼
sys.stdout.reconfigure(encoding='utf-8')
from pathlib import Path
import openpyxl
def verify_final_result():
"""驗證最終韓文翻譯結果"""
print("=" * 80)
print("驗證最終韓文翻譯結果")
print("檢查是否成功使用原始DIFY翻譯")
print("=" * 80)
# 韓文翻譯檔案
translated_file = Path(r"C:\Users\EGG\WORK\data\user_scrip\TOOL\Document_translator_V2\uploads\98158984-f335-44f5-a0b4-88fb8ccd5d78\original_panjit_98158984_ko_translated.xlsx")
if not translated_file.exists():
print(f"❌ 翻譯檔案不存在")
return
print(f"✅ 檢查檔案: {translated_file.name}")
# 1. 檢查D2儲存格詳細內容
print(f"\n1. D2儲存格詳細分析")
print("-" * 60)
wb = openpyxl.load_workbook(str(translated_file), data_only=False)
d2_value = wb.active['D2'].value
print(f"D2完整內容:")
print(f" 類型: {type(d2_value)}")
print(f" 長度: {len(d2_value) if d2_value else 0}")
print(f" 內容: {repr(d2_value)}")
if isinstance(d2_value, str):
lines = d2_value.split('\n')
print(f"\n行分解 (共{len(lines)}行):")
for i, line in enumerate(lines, 1):
print(f"{i}: {repr(line)}")
# 找韓文翻譯部分
korean_lines = []
for line in lines:
# 檢查是否包含韓文字符
if any('\uac00' <= char <= '\ud7af' for char in line):
korean_lines.append(line)
print(f"\n韓文行 (共{len(korean_lines)}行):")
for i, line in enumerate(korean_lines, 1):
print(f" 韓文{i}: {line}")
# 檢查特徵
if "와이어 본딩" in line:
print(f" 🎯 ✅ 原始DIFY翻譯特徵: '와이어 본딩'")
success = True
elif "연결" in line and "단축" in line:
print(f" ✋ ❌ 手動補充翻譯特徵: '연결' + '단축'")
success = False
else:
print(f" ❓ 無明顯特徵")
success = None
# 2. 檢查其他D欄位
print(f"\n2. 其他D欄位檢查")
print("-" * 60)
d_cells = ['D3', 'D4', 'D5', 'D6', 'D7', 'D8']
success_count = 0
for cell_name in d_cells:
cell_value = wb.active[cell_name].value
if isinstance(cell_value, str) and '\n' in cell_value:
lines = cell_value.split('\n')
korean_lines = [line for line in lines if any('\uac00' <= char <= '\ud7af' for char in line)]
if korean_lines:
print(f"{cell_name}: 有韓文翻譯")
print(f" 韓文: {korean_lines[0][:30]}...")
success_count += 1
else:
print(f"{cell_name}: 沒有韓文翻譯")
else:
print(f"{cell_name}: 沒有翻譯或格式不正確")
print(f"\nD欄位翻譯成功率: {success_count + (1 if success else 0)}/{len(d_cells) + 1} = {((success_count + (1 if success else 0))/(len(d_cells) + 1)*100):.1f}%")
# 3. 最終評估
print(f"\n3. 最終評估")
print("-" * 60)
if success is True:
print(f"🎉 大成功!")
print(f" ✅ D2正確使用原始DIFY翻譯")
print(f" ✅ 修復邏輯完美運作")
print(f" ✅ 文字格式不匹配問題已解決")
print(f" 📊 整體品質: 使用原始API翻譯品質更佳")
elif success is False:
print(f"⚠️ 部分成功")
print(f" ❌ D2仍使用手動補充翻譯")
print(f" ❓ 可能需要檢查Celery worker是否載入新代碼")
else:
print(f"❓ 無法明確判斷")
print(f" 需要人工檢查翻譯內容")
wb.close()
# 4. 檔案總結
print(f"\n4. 檔案總結")
print("-" * 60)
print(f"最終韓文翻譯檔案:")
print(f" 檔案: {translated_file.name}")
print(f" 大小: {translated_file.stat().st_size / 1024:.1f} KB")
print(f" 狀態: {'可用' if success is not False else '需要進一步檢查'}")
print(f"\n" + "=" * 80)
print("最終結果驗證完成!")
if success is True:
print("🎊 恭喜!問題已完美解決!")
print("=" * 80)
if __name__ == "__main__":
verify_final_result()