|
출처: 시하늘 원문보기 글쓴이: 흐르는 물/정호순
2016년 3월, 알파고와 이세돌, 혹은 인공지능과 인간의 대결이 펼쳐졌다. 결과는 4승 1패로 알파고의 승리. 인공지능이 인간을 넘어선 순간, 인공지능은 4차 산업 혁명의 핵심 요소로 집중 조명을 받기 시작했다. 그로부터 수년이 지난 지금, 챗봇, 자율 주행 자동차, 드론, 음성 인식 기능을 갖춘 전자 기기 등 다양한 분야에서 인공지능을 접할 수 있게 되었다. 인간의 언어는 매우 복잡하다. 문맥과 상황에 따라서 다른 단어를 사용하기도 하고 같은 단어가 다른 의미를 가지기도 한다. 이처럼 복잡한 인간의 말을 인공지능이 어떻게 이해하고 인간처럼 사용할 수 있을까?
핵심은 말뭉치이다. 말뭉치는 사람들이 하는 말이나 글로 쓴 문장들을 모아 놓은 것으로 한 언어로 된 단일 언어 말뭉치(monolingual corpus, 단일 언어 코퍼스)도 있고 여러 언어로 번역되어 있는 병렬 말뭉치(parallel corpus, 병렬 코퍼스)도 있다. 인공지능은 이러한 말뭉치로 학습을 하기 때문에 말뭉치가 최대한 많을수록, 그리고 최대한 품질이 좋을수록 사람들의 다양한 말을 이해하고 다른 언어로 자연스럽게 번역이 가능하다.
병렬 말뭉치 구축 현황
세계적인 아이티(IT) 기업과 대학, 연구소 등에서 자연어 처리(NLP: Natural Language Processing) 연구를 진행하고 있으며, 영어가 공용어로 가장 널리 쓰이고 있는 만큼 각국의 모국어와 영어를 중심으로 병렬 말뭉치를 구축하고 있다. 우리나라에서는 국립국어원이나 한국지능정보사회진흥원에서 한국어-외국어 병렬 말뭉치를 구축해 연구에 이용할 수 있도록 공개하고 있다. OPUS(https://opus.nlpl.eu)는 병렬 말뭉치 구축 자료를 볼 수 있는 대표적인 사이트로 각 언어 쌍들의 병렬 말뭉치 개수도 확인할 수 있다.
▲ 출처: OPUS(https://opus.nlpl.eu), 확인일: 2022. 5. 23.
표에서 확인할 수 있듯이, 영어가 포함된 병렬 말뭉치에 비하여 한국어가 포함된 병렬 말뭉치 개수는 매우 적다. 특히 우즈베크어나 캄보디아어의 경우 구축된 말뭉치가 거의 없다고 볼 수 있다.
이런 상황에서, 한국어가 포함된 병렬 말뭉치를 구축하는 가장 빠른 방법은 영어를 한국어로 번역하는 것이다. 예를 들어, 한국어-우즈베크어 병렬 말뭉치 구축을 위해서는 영어-우즈베크어 병렬 말뭉치의 영어를 한국어로 번역하는 것이 빠르다. 한국어-우즈베크어를 구사하는 사람보다 영어-한국어를 구사하는 사람이 더 많기 때문이다. 이 과정을 거치면 영어-한국어 번역만으로도 40만 개의 한국어-우즈베크어 병렬 말뭉치를 확보할 수 있다.
병렬 말뭉치 구축의 난관
그러나 제2언어 말뭉치를 다른 언어로 번역하여 확장하는 방법에는 큰 문제가 있다. 한 언어에서 다른 언어로 번역하는 과정에서 원문의 의미를 제대로 파악하지 못해 발생하는 오역은 흔하다. 그런데 다시 한번 다른 언어로 번역하는 경우, 두 번의 번역 과정에서 오역이 발생할 가능성이 더 커진다.
병렬 말뭉치 구축의 난관
또한 이런 번역 과정을 거치기 위해서는 최초의 병렬 말뭉치의 품질이 좋다는 전제가 있어야 한다. 위 누리집(사이트)에서 제공하는 병렬 말뭉치는 개수는 많지만, 누리집을 수집하면서 만들어졌기 때문에 영어-한국어 병렬 말뭉치를 확인했을 때 어떤 의미인지 파악이 되지 않거나 번역 자체가 잘못된 경우를 다수 발견할 수 있었다.
오류 예시 첫 번째: 원문 의미 불명확, 번역 오류
영어: Zhu thus became grateful to Han.
한국어: 하며 세조가 진노하였다.
바른 해석: 따라서 주는 한에게 감사하게 되었다.
오류 예시 두 번째: 원문이 영어로 분류되어 있지만 실제 원문의 언어는 프랑스어
영어: En Grèce, c'est la mafia totale!
한국어: 2014년 1월 9일에 확인함. En Grèce, c'est la mafia totale!
이처럼 오류가 있는 병렬 말뭉치를 기계 학습에 사용할 경우 만족스러운 결과를 얻기 힘들기 때문에 검증된 전문 번역가들의 번역과 검수가 필요하다.
병렬 말뭉치 구축 방법
병렬 말뭉치 구축은 다음과 같은 과정을 통해 이루어진다.
1) 원문 확보
병렬 말뭉치 구축을 위한 첫 단계는 널리 쓰이면서도 유용한 원문을 확보하는 것이다. 초기에는 기계 번역 학습을 위해 정부 기관의 공식 문서를 병렬 말뭉치로 이용하였다. 캐나다는 정부의 모든 공식 문서를 영어와 프랑스어로 작성하며, 여러 국제기구에서도 영어 외, 기구에 참여하는 국가의 언어로 문서를 작성한다. 이 같은 문서를 활용한다면 정확한 고품질의 병렬 말뭉치 구축이 가능하다. 그러나 이런 문서에서 사용하는 표현이나 단어는 사람들의 일상 언어와는 거리가 있기 때문에 문어체 문장뿐만 아니라 구어체 문장을 확보하는 것 역시 매우 중요하다.
문어체 문장들은 신문이나 책, 공식 문서 등에서 저작권을 확보하고 비교적 쉽게 이용할 수 있는 반면 구어체 문장들은 이보다 더 복잡하고 어려운 과정을 거친다. 대표적인 구어체 문장은 인터넷 메신저 내 대화인데, 대화 내용 중에는 이름이나 전화번호, 주소, 이메일, 은행 계좌 번호 등 개인을 식별할 수 있는 내용이 있을 수 있다. 따라서 이 같은 개인정보를 비식별화해야 하고, 빠르게 대화를 주고 받는 인터넷 메신저 내 대화의 특성 상 한 문장을 여러번으로 나눠서 보내는 경우가 많다. 따라서 의미가 통하는 완전한 문장으로 가공하지 않는 한 말뭉치로 쓸 수 없다. 각 개인에게서 이 같은 메신저 대화를 구입하거나 가공하는 것이 쉽지 않기 때문에 플리토와 같이 기업이나 연구 기관의 요구에 맞게 전문적으로 데이터를 수집하고 구축 및 정제하여 제공하는 기업들도 늘어나고 있다.
2) 원문 정제
이렇게 확보한 문장은 정제 과정을 거쳐야 한다. 너무 긴 문장은 적당한 길이로 나누어야 하고, 개인을 식별할 수 있는 정보가 있다면 제거하거나 비식별화를 진행한다. 특히 성차별적인 표현, 혐오 표현 등이 포함된 경우 사전에 걸러 내는 작업이 필수이다. 그렇다고 해서 모든 표현을 완벽하게 정제하는 것도 좋지 않다. 최근 기계 번역기의 대부분은 인공신경망 번역 방식으로 대규모 병렬 말뭉치를 학습하여 기존에 학습한 문장을 참고하여 번역한다. 따라서 일상생활에서 자주 쓰이는 오타나 비표준어 등을 완벽하게 거르지 않고 일정 부분 허용하는 것도 필요하다. 예를 들어 ‘-고요’가 표준어이나 일상 대화 문장에서는 ‘-구요’라고 쓰이는 경우가 많다. 이런 경우, 비표준 표현을 모두 표준어로 정제하여 말뭉치를 구축하고 기계 학습에 사용한다면 기계 번역기는 일상 대화를 매끄럽게 번역하지 못할 수 있다.
3) 원문 번역
정확한 병렬 말뭉치 구축을 위해 가장 이상적인 방법은 이중 언어를 구사할 수 있는 사람들이 원문을 보며 하나하나 번역하는 것이다. 그러나 이런 방식은 시간과 자원이 너무 많이 들기 때문에 최근에는 MTPE(Machine Translation Post Editing)라는 방법도 사용한다. 기계 번역기를 이용하여 원하는 언어로 번역한 후, 잘못된 표현이나 단어 위주로 수정하고 필요한 경우에만 문장 전체를 새롭게 번역하면 더 빠르게 병렬 말뭉치 구축이 가능하다.
병렬 말뭉치 구축 시 주의할 점
번역은 단순히 한 언어에서 다른 언어로의 변환이 아니다. 언어를 사용하는 나라마다 고유한 문화적 특성이 있으며, 문화는 고스란히 언어에 반영되어 있다. 예를 들어 일본에서는 공식 문서나 일상에서 일본 고유의 연호가 자주 쓰인다. 올해 2022년은 令和(레이와) 4년이다. 태국 역시 불교력을 기준으로 하면 2022년은 2565년이 된다. 한국어 원문에 있는 2022년을 그대로 번역한다면 태국에서는 1479년이라고 잘못 받아들일 수 있다.
“친구 따라 강남 간다더니 너도 플리토에 간 거야?”, “금강산도 식후경이라는데, 저 식당에서 밥 먹고 가자.”와 같은 고유한 표현의 번역 역시 마찬가지이다. 이 같은 고유한 표현에는 특정한 의미가 담겨 있는데 이를 맥락에 따른 제대로 된 의미 파악 없이 ‘강남’, ‘금강산’을 그대로 번역하여 말뭉치를 구축하는 경우, 기계 번역 학습에도 영향을 미친다.
번역 시, 번역가 대부분은 표준어로 번역하지만 의도치 않게 표준어가 아닌 단어, 지역 방언 등을 사용하는 경우가 있다. 우즈베키스탄이나 필리핀, 베트남, 인도네시아 등은 다수의 민족이 하나의 나라를 형성하고 있으며 각 민족의 말은 경상도와 전라도 방언 정도의 차이가 아닌 서로의 의사소통이 어려울 정도로 큰 차이가 있다. 따라서 각 번역가의 출신 지역을 고려하는 것도 병렬 말뭉치의 품질을 높이는 데 도움이 될 수 있다.
구축된 병렬 말뭉치 검증하기
대량의 병렬 말뭉치를 한번에 구축한다면 구축 당시 고용된 번역가들의 실력, 번역 결과를 취합하는 과정에서 생기는 오류 등 변수가 생길 가능성이 높다. 수백만, 수천만 개의 병렬 말뭉치를 구축한다면 일부 오류가 있어도 기계 학습 과정에 큰 문제가 없겠지만 그렇지 않은 경우, 각각의 문장이 기계 학습의 매개 변수에 영향을 미치기 때문에 오류를 최소화하기 위한 여러 가지 방법들이 고려되어야 한다.
기계 번역기의 번역 품질을 객관적으로 평가하기 위한 대표적인 방법은 BLEU(Bi-lingual Evaluation Understudy) 점수를 계산하는 것이다. BLEU 점수는 기계 번역의 결과로 나온 번역문이 사람이 작성한 번역문과 얼마나 유사한지 비교해서 점수를 산출한다. BLEU 점수를 반대로 이용해서 번역가가 한 번역이 기계 번역기의 결과와 비교해 낮은 점수를 받는다면, 번역가의 번역이 맞는지 다시 한번 확인할 수 있다. 기계 번역기의 성능 향상으로 이 같은 방법을 사용하여 병렬 말뭉치 품질 검증이 가능하다.
병렬 말뭉치 확장하기
공개되어 있는 병렬 말뭉치를 이용하여 다른 언어까지 확장하는 경우, 병렬 말뭉치 자체의 신뢰도 검증, 번역 과정에서 생기는 오류 수정과 같은 과정이 새로 필요하다. 따라서 말뭉치 자체를 새로 구축하는 것에 비해 효율이 떨어질 수 있다. 그러나 영어를 한국어로 번역하는 것과는 달리 말레이어와 인도네시아어는 언어의 유사도가 매우 높아 번역 과정에서 생기는 오류가 적다. 우즈베크어 역시 같은 튀르크어 계통인 카자흐어, 키르기스어, 위구르어 등으로 상대적으로 쉽게 번역할 수 있다. 2021년 플리토와 국립국어원이 함께 구축한 8개 언어의 한국어-외국어 병렬 말뭉치를 활용한다면 그 외에 다른 언어로도 병렬 말뭉치 구축의 확장이 가능하다. 그동안 부족했던 여러 언어들의 병렬 말뭉치를 확보하고 나아가 우리나라의 인공지능 산업 발전에 기여할 수 있기를 기대해 본다.
함께 보면 좋은 기사
뭉치가 알려주는 국어 말뭉치
좋은 말뭉치가 인공지능 번역기를 더 똑똑하게 만든다
문장 다듬기
주어와 서술어는 호응해야 해요!
아 다르고 어 다른 우리말
사사와 사숙, 같은 듯 다른 쓰임새
문장 다듬기
피동 표현을 적절하게 써요!