kone
ainovel

ainovel

용어집을 좀 더 강력하게 적용시키는 법

12/06/2025, 03:13:13
정보
8193 views · 8 likes

요즘 자가번역 트라이하시는 분이 많으신지 용어 적용에 관한 글이 종종 올라오는데


프롬프트에 넣는 용어집도 어쨋든 프롬프트의 일종이기에, 아주 짧게 끊어서 번역하는게 아닌 이상은 오류가 자주 납니다. 이게 어떻게 오류날지를 몰라서 읽기 전에 미리 처리하는것도 어렵구요.


그래서 용어집을 좀 더 강력하게 처리하는 방법을 알려드리고자 하는데, 이 방법은 자가번역을 어느정도 해보신 분들만 추천드립니다. 오류가 생길 건덕지가 꽤 많아요.



# 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)의 '哈利·波特'라는 단어를 모두 '해리 포터'로 강제 치환하는겁니다.


그래서 수정본상으론


"해리 포터?她说的是那个해리 포터吗?"


이렇게 나옵니다.


다만 이렇게 구분할 경우 오류가 많이 생깁니다.

  1. 용어집은 반드시 원문 글자 순서대로 정렬.
    예를 들어 나루토의 日向日向의 경우(사실 중국어로는 글자가 좀 다르긴 합니다만, 예시를 위해서 일본식으로 적었습니다) '휴우가 히나타'입니다.
    그런데 日向 = 휴우가(히나타)가 위에 있고, 日向日向 = 휴우가 히나타가 밑에 있다면 원본에선 日向日向 = 휴우가휴우가로 치환할겁니다. 혹은 히나타히나타가 될거구요 제가 가지고 있는 저 코드는 용어집의 위에서부터 순서대로 치환하기 때문입니다. 그러니 日向日向 = 휴우가 히나타를 위에. 그리고 日向=휴우가를 밑에. 그래야 정상적으로 치환됩니다.

  2. 이름이 원래의 본 뜻이 있을 경우
    원피스의 후지토라 잇쇼의 잇쇼는 원문으로 一笑입니다. 원래는 한번 웃는다, 냉소 이런 뜻이에요. 그런데 이걸 모두 '잇쇼'라고 번역해버릴경우, '캐릭터가 잇쇼했다' 이렇게 번역이 됩니다. 이런 단어들 전부 걸러내셔야 해요

  3. 원문이 한글자인 경우
    風. 바람풍입니다. 그런데 나루토 프롬프트를 씌우면 이건 단조의 부하 야마나카 '후우'입니다. 그렇다고 바람 풍자를 모두 후우로 바꾸면 풍둔이 후우둔이라 번역되겠죠. 바람 풍자를 쓰는 모든 단어가 전부 망가질겁니다. 이런 경우엔 프롬프트로 따로 빼놓고 한글자 단어들은 문맥에 맞게 사용해달라고 적어놓는게 속 편하실 겁니다.

  4. 이름은 모두 쪼개야 합니다.
    원피스의 '겟코 모리아'의 겟코는 月光입니다. 나루토의 겟코 일족도 같은 글자를 쓰죠. 그런데 '겟코 모리아'만 써놓고 '겟코' '모리아'를 따로 써놓지 않으면, 그냥 '겟코' 혹은 그냥'모리아'란 단어에 대해선 치환이 안된 상태로 번역을 시작할겁니다. 그러니 '겟코 모리아', '겟코', '모리아' 전부 따로따로 단어가 필요합니다. 덤으로 '月光'도 사고가 많이 나는 단어입니다. 그냥 달빛이란 단어로 많이 쓰여서요.

  5. 이 모든걸 충족하는 용어집을 만들때에 오류가 꽤 많이 납니다.
    제미나이로 용어집을 다듬는다고 가정할 때에, 용어집의 길이가 꽤 길어집니다. 같은 단어라도 몇개로 쪼개다보니, 용어 10개면 충분할게 20~30개로 늘어나거든요. 그래서 출력중에 json형식이 풀린다던가, 원본이나 단어에 매칭이 안된다던가. 간체, 번체, 구칭, 현칭, 번역본도 정발번역 기준으로 할지, 일반적으로 쓰이는 번역으로 할지 등에 대한 오류가 거의 반드시 생깁니다.


용어를 수정을 하고 번역할때 추가로 또 발생하는 일이


평소보다 오류문의 숫자가 더 많아질 겁니다.
해당 수정본은 프롬프트를 사용할 때에, 미리 한글로 되어있는 부분은 반드시 건들지 말라는 문구를 넣어야 합니다. 안그러면 우리가 작업해놓은 한글부분도 맘대로 수정하거든요. 그런데 이렇게 하면 AI가 문장을 한글을 놔두고 나머지를 어떻게 번역해야 할지 몰라서 유기시키는 문장이 나옵니다. 이걸 뽑아서 다시 번역하고 교체하는 작업을 하셔야 해요. 원래보다 좀 더 양이 많아질겁니다.



그래서 결론을 말씀드리자면, 용어집을 미리 원본에서 치환시키면 용어집을 강력하게 적용한 상태로 번역을 시작할 수 있다. 다만 이에 대한 부작용이 꽤 많으니, 초심자보단 경험이 좀 있으신 분들에게만 추천드린다. 이 정도일 것 같네요

8
4 comments
Sign in to comment
배치 번역기에도 용어치환 기능 있기는 함
12/06/25
있다 새롭게 번역한거 읽어봐야겠음
12/06/25
그냥 번역하기 전에 텍스트 원문에서 고유명사만 일괄 변환시키고 돌림
12/06/25
용어집이 오히려 자연스런 번역의 발목잡기가 될 수도 있어서, 원본에 고유명사만 용어치환하고, 용어집은 자주 뻑나는 공통한자만 사용하는 편.
Sign in to comment
[포켓몬] 포켓몬스터:호연의 노도 1-300
[패러디]
야돈
12/10/25 2760 19
[DC] 배트맨의 트릭스터 1-212
[패러디]
야돈
12/10/25 2979 17
[헌터x헌터] 헌터X헌터 무한 성장 1-390
[패러디]
야돈
12/10/25 3644 23
[코난] 난 베이커 거리야 말로 천국이라고 생각해 1-408
[패러디]
야돈
12/10/25 3496 23
[원피스] 염동염동 열매 능력자, 바다를 뒤엎다 1-115
[패러디]
야돈
12/10/25 3739 18
[나루토] 마이너스 1부터 시작 1-58
[패러디]
야돈
12/10/25 3044 19
[포켓몬] 포켓몬 세계의 정수 1-1288 (완)
[패러디]
야돈
12/10/25 4156 31
[포켓몬] 포켓몬스터의 전설적인 트레이너 1-800
[패러디]
야돈
12/10/25 3923 23
[포켓몬] 포켓몬이지만 스타듀 밸리 이야기 1-179
[패러디]
야돈
12/10/25 3619 16
[포켓몬] 포켓몬, 드래곤 타입 사천왕 1-200
[패러디]
야돈
12/10/25 2905 20
[포켓몬] 그 포켓몬 놔줘 1-150
[패러디]
야돈
12/10/25 2822 19
(수정)블루스타/패러독스 경로(재번역)/사이버펑크2071/70년도 회귀 사랑받는 며느리
[일반]
kone1133
12/10/25 3423 22
[포켓몬] 포켓몬 탐정 사건 파일 1-469
[패러디]
야돈
12/10/25 7839 33
스피드 쌀먹 공유 모음
[일반]
tassdar
12/09/25 7411 92
요청하셨던 원문들 올려요
[일반]
명일방주너무좋아광인
12/09/25 5470 24
종말의 49가지 규칙 1-276
[일반]
darksun
12/09/25 5210 25
[우마무스메]출주 정지 후, 저는 트레이너가 되었습니다 (완결)
[패러디]
hyun6871
12/08/25 4146 23
[역내청x다중]평온하지 않은 일상不平静的日常 완결
[패러디]
hyun6871
12/08/25 5053 49
스피드 쌀먹 공유 모음 20251208
[일반]
tassdar
12/08/25 7291 84
콜로모 프롬프트 공유
정보
Sorkim
12/08/25 12243 15
[다중] 나의 '스탠드'는 스티브! 1~1366
[패러디]
aabbp
12/08/25 4749 41
붕괴 스타레일 풍요의 흉물이 되어버렸다 1~389
[패러디]
라스트오리진으로 팔려간 댕라
12/08/25 3355 52
[AI 번역] 종말 대홍수 옆집 여자가 식량을 빌리러 왔다 (末世大洪水:女邻居上门借粮) 【1~945】
[야설]
greener-straper
12/08/25 7111 37
[실지주] 저는 당신들의 보상이 필요할 뿐입니다 1~745 완결+외전+완전판
[패러디]
라스트오리진으로 팔려간 댕라
12/07/25 6726 57
스피드 쌀먹 공유 모음 20251207
[일반]
tassdar
12/07/25 7987 91
[엘든링]엘데의 장작의 왕艾尔登薪王 (완)
[패러디]
hyun6871
12/07/25 7189 52
포켓몬 : 저 트레이너 너무 막나가잖아 1~581
[패러디]
라스트오리진으로 팔려간 댕라
12/07/25 3083 40
나는 테라에 살면서 기상천외한 소국을 다스린다 1-1192
[패러디]
naxlamas
12/07/25 2661 16
[우마무스메]출주 정지 후, 저는 트레이너가 되었습니다 1~1451
[패러디]
hyun6871
12/06/25 4103 16
수선은 의외로 과학적인 면이 있다 1-1114(251217 수정)(완결)
[선협]
kone1133
12/06/25 6235 58