라틴어 사전을 보강하기 위한 소소한 아이디어들

Posted by 적분 ∫2tdt=t²+c
2016.07.19 09:47 적분史

여름방학 즈음부터 한동안 관리를 소홀히했던 라틴어 사전을 보강하고자 여러 노력을 기울이고 있습니다. 먼저 페르세우스 프로젝트에서 고전 원문 텍스트를 받아서 사전에 추가하는 작업을 했지요. http://www.perseus.tufts.edu/hopper/opensource 에서 친절하게 오픈소스로 원문 배포를 해주고 있어서, XML 파싱을 위한 코딩만 약간 해서 방대한 양의 고전 라틴어 텍스트를 얻어낼 수 있었습니다. 이렇게 훌륭한 자료를 제공해주다니, 역시나 우리 모두는 거인의 어깨 위에 올라서서 좀 더 먼 곳을 내려다보는게 분명합니다..! ^^


텍스트가 확보되었으니, 여러가지 실험들을 해볼 수 있지요! 제 라틴어 사전을 보면서 스스로 가장 아쉬웠던 점은 예문이 부족하고, 기재된 단어가 2만여개 밖에 되지 않는다는 것이었습니다. (숙어 같은것도 전혀 제공이 안되구요. 안타까울 따름입니다.) 라틴어 문장을 코퍼스화하기 위해서 심심할때마다 태깅을 하곤 하는데 그때마다 사전에 미등재된 단어가 불쑥 나타나 짜증을 불러일으키기도 했구요. 코퍼스 구축하는데 지장이 많은 상황이었죠.


그러던 도중 좋은 생각이 떠올랐습니다. 태깅 코퍼스를 구축하기 위해서 사전의 도움이 필요하지요. 거꾸로 사전을 구축하는데 코퍼스의 도움을 받을수도 있지 않을까 하는 생각이었죠. 코퍼스에서 이미 사전에 등재된 것으로 식별된 단어말고 나머지 형태를 모두 골라내서 미등재 단어를 찾아내는 거죠. 물론 라틴어 단어는 어형 변화가 커서 단순히 단어 형태만 비교해서는 단어의 기본형이 어떤 것인지 추측하기가 까다롭긴 합니다. 

하지만 이미 라틴어 형태소 분석기를 가지고 있는 제 컴퓨터는 열쇠를 이미 가지고 있는 셈이었죠. 형태가 유사한 것이 얼마나 자주 등장하는지, 그리고 해당 형태가 얼마나 코퍼스 내에서 자주 등장하는 지를 기준으로 점수를 매기고, 고득점 형태 집단부터 출력해보았습니다.


출력 예. 큰 글씨가 공통 어간이고, 괄호 안의 수치가 점수입니다.


짜잔. 어느정도 같은 단어 끼리 묶였어요. 1위 먹은 Pompeius(고유명사), 2위 먹은 futurus(sum동사의 미래분사형), 3위 먹은 prior(비교급 형용사) 등등, 제 사전에서 누락된 단어가 어떤 것인지 잘 드러나고 있어요. (고유명사가 많이 보이네요) 이걸 수작업으로 일일히 추가할 수는 없으니, 저기 어형변화들을 살펴보고 이 단어가 명사인지, 형용사인지 동사인지 추론해서 기본형을 뽑아낼 수 있으면 참 좋겠어요. 라틴어를 배운 사람이 보면 눈치가 딱 오는 것이지만 저런 녀석들이 거의 1만개 가량 분포한다고 데이터베이스가 말해주고 있어서... 컴퓨터한테 시켜야지요.


지금 떠오르는 해결법으로는 각 어형별로 형태소 분석을 실시해서 어간을 추출하고 어간을 묶어서 곡용/활용 변화가 일치하는 녀석들만 골라내는게 제일 간단할 듯합니다. (코딩하기엔 간단한데 프로그램 돌리기엔 시간이 오래 걸리거 같다는게 함정)


누락된 단어의 형태를 발견해서 보충해도 문제는 있습니다. 그 단어의 뜻을 알 수 있는 방법이 없어요... 병렬 코퍼스가 제대로 구축되어 있다면 대응되는 한국어 문장에서 공기율이 높은 의미로 어느정도 찍어볼수라도 있을텐데, 그렇지가 않으니 아직 갈 길이 멉니다. 그래도 흥미로운 소일거리가 될거 같긴하네요. 조만간 좋은 소식 들고 돌아오길 바랍니다~ ㅎ

이 댓글을 비밀 댓글로