요즘 자가번역 트라이하시는 분이 많으신지 용어 적용에 관한 글이 종종 올라오는데
프롬프트에 넣는 용어집도 어쨋든 프롬프트의 일종이기에, 아주 짧게 끊어서 번역하는게 아닌 이상은 오류가 자주 납니다. 이게 어떻게 오류날지를 몰라서 읽기 전에 미리 처리하는것도 어렵구요.
그래서 용어집을 좀 더 강력하게 처리하는 방법을 알려드리고자 하는데, 이 방법은 자가번역을 어느정도 해보신 분들만 추천드립니다. 오류가 생길 건덕지가 꽤 많아요.
# 1. 용어집 (딕셔너리)
# 이곳에 원하시는 단어를 추가하거나 수정할 수 있습니다.
glossary = {
"哈利·波特": "해리 포터"
}
# 원본 파일 경로
input_filepath = '1.cleaned_text.txt'
# 저장할 파일 경로
output_filepath = '2.word_changed.txt'
try:
# 2. 파일 읽기
# utf-8 인코딩으로 파일을 엽니다. 중국어 파일은 보통 utf-8을 사용합니다.
with open(input_filepath, 'r', encoding='utf-8') as f:
original_text = f.read()
print("파일을 성공적으로 읽었습니다.")
modified_text = original_text
# 3. 단어 치환
# 용어집의 모든 단어에 대해 반복하면서 텍스트를 변경합니다.
for chinese, korean in glossary.items():
modified_text = modified_text.replace(chinese, korean)
print(f"'{chinese}' -> '{korean}' 변경 완료.")
# 4. 파일 저장
# 변경된 내용을 새로운 파일에 저장합니다.
with open(output_filepath, 'w', encoding='utf-8') as f:
f.write(modified_text)
print(f"번역된 내용을 '{output_filepath}' 파일에 성공적으로 저장했습니다.")
except FileNotFoundError:
print(f"오류: '{input_filepath}' 파일을 찾을 수 없습니다. 파일 경로를 확인해주세요.")
except Exception as e:
print(f"오류가 발생했습니다: {e}")
이건 제가 쓰는 용어집을 원문에 '강제 적용'하는 파이썬 코드입니다(made in 제미나이)
원리는 간단합니다.
원본(1.cleaned_text.txt)의 '哈利·波特'라는 단어를 모두 '해리 포터'로 강제 치환하는겁니다.
그래서 수정본상으론
"해리 포터?她说的是那个해리 포터吗?"
이렇게 나옵니다.
다만 이렇게 구분할 경우 오류가 많이 생깁니다.
용어를 수정을 하고 번역할때 추가로 또 발생하는 일이
평소보다 오류문의 숫자가 더 많아질 겁니다.
해당 수정본은 프롬프트를 사용할 때에, 미리 한글로 되어있는 부분은 반드시 건들지 말라는 문구를 넣어야 합니다. 안그러면 우리가 작업해놓은 한글부분도 맘대로 수정하거든요. 그런데 이렇게 하면 AI가 문장을 한글을 놔두고 나머지를 어떻게 번역해야 할지 몰라서 유기시키는 문장이 나옵니다. 이걸 뽑아서 다시 번역하고 교체하는 작업을 하셔야 해요. 원래보다 좀 더 양이 많아질겁니다.
그래서 결론을 말씀드리자면, 용어집을 미리 원본에서 치환시키면 용어집을 강력하게 적용한 상태로 번역을 시작할 수 있다. 다만 이에 대한 부작용이 꽤 많으니, 초심자보단 경험이 좀 있으신 분들에게만 추천드린다. 이 정도일 것 같네요
