AI 업무 활용

AI가 번역한 업무 문서의 숫자, 단위, 이름, 부정 표현을 확인하는 방법

AI 번역문이 자연스러운지만 보지 말고 숫자, 단위, 이름, 부정 표현과 의미를 원문과 체계적으로 비교합니다. 작은 합성 예제와 역번역 점검, Python 스크립트로 중요한 정보가 유지됐는지 확인합니다.

목차 보기

이런 분께AI 채팅 도우미로 업무 문서를 번역하고 공유 전에 중요한 정보가 정확히 유지됐는지 반복 가능한 방식으로 확인하려는 실무자를 위한 글입니다.

준비사항
  • Python 3.12
  • 원문과 AI 번역문을 저장한 텍스트 파일

01자연스러운 번역도 틀릴 수 있는 이유

AI 번역문은 매우 자연스럽게 읽혀도 중요한 사실이 달라질 수 있습니다. 소수점 위치가 바뀌거나, 단위가 사라지거나, 제품명이 불필요하게 번역되거나, 부정 명령이 긍정 의미로 바뀔 수 있습니다. 특히 기술, 구매, 일정, 규정, 운영 문서에서는 작은 표현 변화도 실제 업무 지시를 바꿀 수 있습니다.

아래 예시는 합성 예제입니다. 문학적인 번역 품질을 평가하려는 것이 아니라, 언어가 바뀌어도 그대로 유지되어야 하는 핵심 정보가 실제로 유지됐는지 검증하는 것이 목적입니다.

02작은 합성 업무 문서로 시작하기

가상의 시험팀을 위한 짧은 영어 업무 지시문이 있다고 가정합니다. 이 예제에서는 목표 언어 자체보다 검증 절차가 중요합니다.

원문 항목원문
수량Prepare 12 samples.
토크Tighten Bolt A to 35 N·m.
온도Do not exceed 80 °C.
날짜Send the report by October 14, 2026.
이름Send the final file to Mina Park.
제품명Use the Alpha-X bracket.

따라서 핵심 값은 12, 35 N·m, 80 °C, October 14, 2026, Mina Park, Alpha-X입니다. 또한 'Do not exceed'라는 부정 표현도 중요합니다. 부정이 사라지거나 약해지면 작업 지시의 의미 자체가 달라집니다.

03보호해야 할 정보를 유지하도록 AI에 요청하기

번역을 요청할 때는 어떤 항목을 그대로 유지해야 하는지, 어떤 내용을 임의로 바꾸면 안 되는지 명시하는 것이 좋습니다.

프롬프트를 주의해서 작성해도 검증은 여전히 필요합니다. 좋은 프롬프트는 오류 가능성을 줄일 뿐, 모든 핵심 정보가 제대로 유지됐다는 것을 증명하지는 않습니다.

04숫자, 단위, 이름, 부정 표현을 하나씩 확인하기

  1. 숫자: 모든 수량, 소수, 백분율, 날짜 구성요소, 모델 번호, 리비전 번호를 원문과 비교합니다.
  2. 단위: 별도 변환을 요청하지 않았다면 35 N·m가 35 N·m로, 80 °C가 80 °C로 유지됐는지 확인합니다.
  3. 이름: 사람 이름, 회사명, 프로젝트명, 제품명을 원문의 공식 표기와 대조합니다.
  4. 부정 표현: 원문에서 not, never, do not, cannot, except, without 같은 표현을 찾고 번역문에서도 같은 제한이 유지됐는지 확인합니다.
  5. 의무 강도: must, should, may, can을 구분합니다. 업무 지시에서 이 표현들은 서로 같은 의미가 아닙니다.
  6. 날짜: 날짜 값뿐 아니라 날짜의 역할도 확인합니다. 마감일이 회의일이나 예상일로 바뀌면 안 됩니다.
번역 문제검토 결과
35 N·m가 35 Nm로 번역됨의미는 이해될 수 있지만 문서에서 단위 표기 형식을 정확히 유지해야 하는지 확인해야 합니다.
80 °C가 80 °F로 번역됨명시적인 단위 변환 요청이 없고 계산 검증도 하지 않았다면 잘못된 번역입니다.
Mina Park의 표기가 바뀜공식 이름 표기와 다시 대조해야 합니다.
Do not exceed 80 °C가 Maintain 80 °C로 번역됨금지 의미와 실제 작업 조건이 바뀌었으므로 잘못된 번역입니다.
Alpha-X가 설명형 일반 단어로 번역됨Alpha-X가 공식 제품명이라면 잘못된 번역입니다.

05역번역은 표본 점검용으로 사용하기

두 번째 확인 방법으로 번역된 문장 일부를 다시 원문 언어로 번역해 볼 수 있습니다. 이때 원래 문장은 보여 주지 않습니다. 특히 부정 지시, 약속, 마감일, 원문과 표현 차이가 크게 느껴지는 문장을 골라 확인하는 데 유용합니다.

예를 들어 역번역 결과가 'Do not exceed 80 °C'가 아니라 'Keep the temperature at 80 °C'로 나오면 번역된 작업 지시를 다시 확인해야 한다는 신호입니다. 반대로 역번역이 원문과 비슷하게 나온다고 해도 정확성이 증명되는 것은 아닙니다. 같은 AI가 이전의 잘못된 해석을 그대로 재현할 수 있기 때문입니다.

06Python으로 보호 대상 토큰 비교하기

간단한 스크립트로 보호해야 할 정보의 명백한 변화를 찾을 수 있습니다. 다음 표준 라이브러리 기반 예제는 source.txt와 translation.txt를 읽고 숫자와 지정한 보호 문자열을 추출한 뒤 outputs/translation_check_report.txt에 결과를 기록합니다. 원본 파일은 수정하지 않으며 outputs 폴더가 이미 있으면 중지합니다.

python
from pathlib import Path
import re
import sys

SOURCE_PATH = Path("source.txt")
TRANSLATION_PATH = Path("translation.txt")
OUTPUT_DIR = Path("outputs")
REPORT_PATH = OUTPUT_DIR / "translation_check_report.txt"

if not SOURCE_PATH.is_file():
    sys.exit("Missing input file: source.txt")

if not TRANSLATION_PATH.is_file():
    sys.exit("Missing input file: translation.txt")

if OUTPUT_DIR.exists():
    sys.exit("Stop: outputs folder already exists. Remove or rename it manually first.")

source = SOURCE_PATH.read_text(encoding="utf-8")
translation = TRANSLATION_PATH.read_text(encoding="utf-8")

number_pattern = re.compile(r"(?<!\d)\d+(?:\.\d+)?(?!\d)")
source_numbers = number_pattern.findall(source)
translation_numbers = number_pattern.findall(translation)

protected_strings = [
    "N·m",
    "°C",
    "Mina Park",
    "Alpha-X",
]

lines = []
lines.append("AI TRANSLATION CHECK")
lines.append("====================")
lines.append("")
lines.append(f"Source numbers: {source_numbers}")
lines.append(f"Translation numbers: {translation_numbers}")

if source_numbers == translation_numbers:
    lines.append("PASS: number sequence matches")
else:
    lines.append("CHECK: number sequence differs")

lines.append("")
lines.append("Protected strings:")

for item in protected_strings:
    in_source = item in source
    in_translation = item in translation
    if in_source and in_translation:
        lines.append(f"PASS: {item}")
    elif in_source:
        lines.append(f"CHECK: missing or changed in translation -> {item}")

lines.append("")
lines.append("Manual checks still required:")
lines.append("- Verify negations and obligation strength sentence by sentence.")
lines.append("- Confirm that each number still refers to the same item.")
lines.append("- Check dates, names, units, and product names in context.")
lines.append("- Spot-check high-risk sentences with back-translation.")

OUTPUT_DIR.mkdir()
REPORT_PATH.write_text("\n".join(lines) + "\n", encoding="utf-8")
print(f"Created: {REPORT_PATH}")

두 텍스트를 저장한 뒤 python translation_check.py를 실행합니다. 숫자 목록이 일치하는 것은 도움이 되지만 충분하지 않습니다. 번역문에 같은 숫자가 있어도 잘못된 문장에 붙어 있을 수 있으므로 중요한 항목은 문맥까지 직접 확인해야 합니다.

07AI 번역을 검수할 때 자주 하는 실수

  • 번역문이 자연스럽게 읽히는지만 확인합니다.
  • 소수점, 마이너스 기호, 백분율 기호, 단위 변경을 놓칩니다.
  • 제품명이나 프로젝트명을 일반 단어처럼 번역하도록 둡니다.
  • not, never, except, without 같은 표현이 사라진 것을 놓칩니다.
  • must, should, may, can을 같은 수준의 표현으로 취급합니다.
  • 역번역 결과가 원문과 비슷하다는 이유만으로 정확하다고 판단합니다.
  • 토큰이 존재하는지만 확인하고 각 숫자나 단위가 여전히 올바른 문장에 연결되어 있는지는 확인하지 않습니다.

자동 점검은 눈에 보이는 불일치를 찾는 데 강하지만 문장의 의도, 범위, 예외, 책임, 법적 효과가 유지됐는지는 판단하기 어렵습니다. 이런 부분은 문맥을 직접 읽어야 하며, 중요도가 높은 문서라면 해당 분야의 검토 절차가 필요합니다.

08최종 번역 검수 체크리스트 사용하기

  1. 모든 숫자, 날짜, 백분율, 모델 번호, 리비전 번호를 비교합니다.
  2. 모든 단위를 확인하고 요청하지 않은 변환이 발생하지 않았는지 봅니다.
  3. 사람, 회사, 프로젝트, 제품 이름을 공식 표기와 대조합니다.
  4. 모든 부정 표현과 예외 조건을 원문 문장과 직접 비교합니다.
  5. must, should, may, can 같은 의무 수준 표현을 확인합니다.
  6. 위험도가 높은 문장 몇 개는 원문을 보여 주지 않고 역번역해 봅니다.
  7. 자동 토큰 점검 결과만 보지 말고 최종 번역문을 전체 문맥에서 읽습니다.

실무에서는 AI 번역을 초안으로 보고 핵심 사실을 독립적으로 검증하는 것이 적절합니다. 계약, 안전 지침, 규제 문서, 의료 내용 또는 다른 고위험 자료는 간단한 AI와 스크립트 점검에만 의존하지 말고 조직에서 요구하는 전문 검토 절차를 사용해야 합니다.

실행·검증 기록

ChatGPT Python tool · Python 3.x · standard library pathlib, re, sys

  • 원래 스크립트는 성공적으로 실행되어 outputs/translation_check_report.txt를 생성했다.
  • 유효한 한국어 번역을 사용했을 때 원래 정규식은 원문 숫자 ['12', '35', '80', '14', '2026']를 추출했지만 번역문 숫자는 ['35', '80', '14']만 추출하여 Unicode 단어 경계 동작 때문에 잘못된 불일치를 보여 주었다.
  • 보호 대상 문자열 N·m, °C, Mina Park, Alpha-X는 모두 PASS했다.
  • 정규식을 (?<!\d)\d+(?:\.\d+)?(?!\d)로 교체한 후에는 두 파일 모두 ['12', '35', '80', '14', '2026']를 생성했고 보고서는 PASS: number sequence matches를 반환했다.
  • source.txt와 translation.txt는 바이트 단위로 완전히 동일하게 유지되었다.
  • 두 번째 실행은 outputs가 이미 존재하여 중단되었고, 이전 보고서는 덮어쓰지 않았다.
  • 2026-09-21 Python 3.12.14로 로컬 재검증: 수정된 예제가 통과했고 원본 보존과 덮어쓰기 방지도 확인했습니다.
검증 범위의 한계
  • 문서에는 완전한 목표 언어 translation.txt 예제가 하나로 명시되어 있지 않아, 지정된 보호 정보를 유지하는 충실한 한국어 번역을 실행에 사용했다.
  • 수정된 정규식도 모든 지역화 숫자 표기, 부호 있는 숫자, 천 단위 구분자, 지역별 소수점 표기를 인식하지는 않는다.
  • 스크립트는 의미적 충실성, 부정 표현, 의무 강도의 차이, 또는 보존된 숫자가 올바른 문장에 연결되어 있는지를 검증할 수 없다.
  • Python 환경에서 관련 없는 스프레드시트 런타임 워밍업 경고가 stderr에 출력되었지만 문서 스크립트나 검증 결과에는 영향을 주지 않았다.

참고 출처

설명과 예제는 직접 작성했습니다. 관련 동작과 개념은 아래 공식 자료에서 확인할 수 있습니다.