상세 컨텐츠

본문 제목

라틴어 사전 개발기

적분史

by ∫2tdt=t²+c 2014. 11. 23. 15:27

본문




라틴어 사전 개발에 대한 욕망은 <살아있는 라틴어> 사이트를 개설할 때부터 있었습니다. 그때의 생각은 그냥 단순하게 사이트에 수록된 본문들에서 자주 등장하는 단어들을 정리해서 페이지를 방문하는 사람들이 바로 살펴볼수 있게 도와주는 기능 정도로 생각하고 있었습니다. 그래서 아주 단순한 단어장을 만들어서 링크해주고 있었죠.

그리고 그 다음 생각한 기능은 라틴어 단어의 활용 형태를 보여주는 것이었습니다. 불규칙적인 경우를 제외하면 라틴어 단어 활용형은 알고리즘적으로 생성하는게 가능했기에 규칙적인 경우에 대해서 활용형태를 제공하는 기능을 <살아있는 라틴어>에 추가했습니다. 하지만 이는 불규칙 활용형을 배제했기에 불완전할 수 밖에 없었고, 이를 해결하려면 라틴어 단어 DB를 모아 불규칙적인 경우는 별도의 활용형을 제공해줘야 한다는 것을 새삼 느끼게 되었습니다. 하지만 라틴어 단어 DB를 구축한다는것은 정말로 방대한 작업이었기에 감히 도전할 엄두를 내지 못했습니다.

결국 이런 꿈을 이루기 전에 입대를 하게 되었고, 라틴어 단어 DB 구축은 미완의 아이디어로 남겨두고 떠날 수 밖에 없었습니다. 하지만 부대 내에서 시간을 보내면서 라틴어 단어 DB 구축에 대한 열망은 커졌고, 방대한 작업을 혼자서 수행할 수 있는 아이디어가 떠올랐습니다.


단어 DB를 웹에서 크롤링하자!

Wiktionary는 제가 알고 있는 라틴어 단어가 가장 많이 수록된 온라인 사전이었습니다. 제 아이디어는 Wiktionary에서 라틴어 단어 리스트를 뽑아내고, 그 리스트를 바탕으로 다시 Wiktionary를 크롤링해서 (영어로 된) 라틴어 단어 DB를 구축한다는 것이었습니다. 이는 스크립트 언어인 Python을 이용해 어렵지 않게 수행할 수 있다고 판단했습니다. (사실 Python으로 네이버 사전에서 수 천자의 한자 데이터를 뽑아낸 적이 일전에 있어서 코드를 어느 정도 재활용하면 가능한 일이었습니다.) 아이디어를 실행에 옮기기전에 사전조사를 해보았습니다. 그런데! 그 사이에 네이버에서 라틴어 사전을 출시했습니다. 먼저 완성되어있는 라틴어 사전이 있다는 생각에 맥이 빠졌지만, 네이버 라틴어 사전을 둘러보고서는 희망을 가졌습니다. 네이버 라틴어 사전은 그저 라틴어 단어 뜻과 예문들의 집합에 불과했다고 판단했기 때문이죠.('네이버 라틴어 사전은 반쪽짜리 사전이다' 참고)


저는 디지털 시대에 사전은 어떤 형태로 진화해야 할까에 대해 고민해보았습니다. 단순히 단어와 그 뜻만 수록된 사전이 아니라 라틴어 학습자에게 더 많은 도움을 주는 사전을 만들고 싶었기 때문이죠.

사전이 오늘날처럼 축약된 기호들과 적은 수의 예문, 표제어만을 가지고 격변화/활용형태를 추론해야하는 문제 등을 가지게 된 것은 한정된 지면에 최대한 많은 정보를 담아야한다는 압박이 있었기 때문일 것입니다. 사전이 종이로 만들어지던 시대에 이는 매우 중요한 문제였을것이었기에 이용자들이 사전 보는데 불편함을 느끼더라도 어찌할 방법이 없었을 것입니다. (오죽하면 사전 보는 법에 대해서 별도로 교육을 받아야 할 정도였으니) 하지만 이제는 사전이 종이에서 풀려나 자유로운 디지털 세상으로 나왔으니, 그런 제한으로부터도 자유로워졌습니다. 그래서 라틴어 학습자들뿐만 아니라 라틴어를 잘 모르는 사람도 쉽게 사용할 수 있는 사전을 만들 가능성이 생겼죠.

단어뜻과 단어의 문법적 성질을 등재하는 것은 기본적으로 해야할 입니다. 거기다가 활용형태를 전부 제공하기로 결정했습니다. 더 나아가 활용형태와 함께 활용형태의 뜻을 제공하기로 했습니다. 이용자들에게 "puella의 복수 여격형"이라는 해설보다는 "(puella의 복수 여격형) 소녀들에게"라는 해설을 제공하는게 훨씬 받아들이기 쉬울것이 자명하기 때문입니다.

또한 사전을 찾을 때 단어의 사전등재형으로만 색인이 가능하던 한계를 뛰어넘고 싶었습니다. 그래서 어떤 활용형으로 검색해도 단어 검색이 가능하게 만들기로 했습니다. hanc가 hic의 단수 여성 대격형이라는 것을 모르는 사람들은 hanc의 사전등재형이 hic라는 것을 알리가 없습니다. 사전등재형뿐만아니라 어떠한 형태의 활용형으로라도 단어 검색이 가능해야 라틴어를 잘 모르는 이용자에게도 도움을 줄 수 있겠죠.

더 나아가 복수의 단어로 된 문장을 입력했을 경우, 각각의 단어를 사전에서 찾아주는 것을 넘어 간단하지만 문장의 의미까지 파악하여 그 구조를 이용자들에게 보여줄 수 있으면 좋겠다고 생각했습니다. 이는 물론 쉬운 작업은 아니겠지만, 라틴어 단어의 어미를 잘 분석하여 성/수/격/인칭/시제 등의 정보를 끄집어 낼 수 있다면 어느 정도 가능하다고 판단했지요.





그래서 첫 휴가 나오자마자 작업을 시작했습니다. 당장 Python 코드를 작성하고 돌렸습니다. 휴가기간이 넉넉하지 않았기 때문에 서둘렀습니다. Wiktionary에서 뽑아낸 라틴어 단어의 개수는 21520개. (파싱 실패로 긁어오지 못한 단어도 일부 있어서 실제 단어는 더 많을 것으로 추정됩니다.) 이 단어의 뜻과 문법 요소들을 긁어오는데 며칠 밤이 걸렸는지 모릅니다. 휴가 내내 컴퓨터를 계속 켜두고 돌아다녔죠. 

불행히도 구축된 DB에는 영어 뜻만 담겨있을 뿐입니다. 번역기를 붙여서 영어 뜻을 한국어 뜻으로 일괄 번역할까 고민도 했지만, 오역이 너무 많을 것 같아서, 수작업으로 영어를 한국어로 번역하기로 결심했습니다. 어차피 군생활은 길게 남았고, 사지방에서 틈틈히 번역하면 제대 전까지 끝낼수 있을거라는 희망 때문이었죠. 첫 휴가에서는 단어 DB수집과 번역툴을 개발하는데 그쳤습니다.


(많은 시간은 아니지만) 부대에서 사지방을 이용할 수 있을때마다 단어를 번역하여 두 번째 휴가전까지 약 2100개의 단어를 번역해냈습니다. 하지만 활용형태를 제공하는 기능이 아직 미비했기 때문에 갈길이 멀었죠. 결국 두 번째 휴가 때, 서버 PHP단에 많은 시간을 투자하여 활용형태와 그 뜻을 제공하는 기능까지 추가하게 되었습니다. 그리고 제한적으로 활용형을 통해서도 단어 검색을 할 수 있는 기능 역시 추가했습니다.


현재는 전체 약 21000여 개의 단어 중 약 3700여 개까지 번역을 완료했습니다. 그리고 이쯤이면 부족하긴 하지만 공개해도 되겠다고 판단하여 이렇게 글을 올립니다. 아직 네이버 라틴어 사전만큼 표제어가 많지는 못하지만, 네이버 라틴어 사전에서 제공하지 못하는 기능을 제공하고 있기에 충분히 유용하다고 생각합니다.

네이버 라틴어 사전에서 hanc를 검색하면 단어 뜻이 나오지 않지만, 살아있는 라틴어 사전에서는 기본형과 함께 형태정보까지 출력됩니다.


3700여 단어 밖에 번역되지 않은 사전을 이렇게 공개하고 떠난다는 것은 정말로 무책임하다고 생각하기에, 여기에 감히 공약 하나를 올리고 떠나려합니다. 무슨일이 있어도 이 약속은 꼭 지키도록 하겠습니다.

적어도 2016년 2월이 오기전까지는 21000 단어 번역을 모두 마치겠습니다.

그리고 이 작업이 끝나면, 본래 단어DB 수집을 통해서 목적하는 바였던 라틴어 코퍼스 구축에 들어가고 싶습니다. (제대로 된 코퍼스 구축을 위해서는 먼저 코퍼스에 등장하는 단어들이 저장되어있는 사전이 필요하겠죠. 라틴어 단어 DB구축은 사실 이 작업을 위한 전초작업이었습니다.) 덧붙여, Wiktionary에 라틴어 단어를 등록해주신 전세계의 인터넷 이용자들에게 감사를 표합니다.


이 방법이 사전 구축에 있어서 바른 방법이 아니라는 것은 잘 알고 있습니다. 또한 Wiktionary에 등재된 단어 설명을 신뢰할 수 있는가에 대한 이견도 많지요. 이 문제에 대해서는 앞으로 이어질 코퍼스 구축을 통해 더 많은 예문을 수집하고, 이를 바탕으로 사전 내용을 검증해나가는 방식으로 해결하고자 합니다.

관련글 더보기

댓글 영역