말뭉치 주석
말뭉치 주석(corpus annotation)은 말뭉치의 활용도를 극대화하기 위해 말뭉치의 본문에 특별한 표시를 하는(tagging) 작업이다. 다르게 표현하면 원시 말뭉치에 언어학적 정보를 부여하여 주석 말뭉치로 만드는 작업이라고도 할 수 있다.
이중 가장 기초적인 것은 품사 주석(part of speech annotation)이다. 지금은 정확도가 높은 기계적 형태 분석이 가능하므로 예전에 비해 품사 주석 작업은 많이 쉬워졌다. 하지만 99%가 해결되고 1%에 오류가 있다고 할 때 그 오류를 수작업으로 수정하지 않으면 안될 때도 있다. 그래서 이것은 여전히 지난한 작업이며 비교적 여러 연구자들 사이에 합의된 태그를 이용해 꾸준하게 보완할 필요가 있다. 대부분의 말뭉치는 품사 주석이 되어있으나 종종 주석이 되어있지 않은 말뭉치를 다뤄야 하는 경우가 있다. 그럴 때는 자신이 적절한 틀을 만들 수밖에 없으며 그 작업은 주석달기와 추상화가 동시에 이루어지는 과정이다.
말뭉치의 주석이 지켜야 하는 세가지 기준이 있다.
주석 말뭉치를 공개하는 것은 타인과 연구결과를 공유한다는 측면에서 매우 중요하다. 일단 말뭉치를 만드는 작업은 매우 큰 노력을 요하기 때문에 중복 작업을 하는 것은 대단한 낭비이다. 그리고 구축한 말뭉치를 다른 관점의 연구자가 활용하면 색다른 영감을 줄 수도 있다.
말뭉치 주석의 가장 기본은 품사 주석이며 좀 더 많은 정보를 얻어내기 위해 구문 주석, 의미 주석, 담화 주석으로 확장될 수 있다. 또 주석은 연구자가 자신의 필요에 의해 말뭉치에 표지를 다는 것이기 때문에 이상에서 언급한 것들 외에도 다양한 주석이 더 있을 수 있다. 예를들어 운율 주석(prosodic annotation), 화용 주석(pragmatic annotation), 문체 주석(stylistic annotation) 등이 그것이다.
사실 품사 주석을 상세하게 들어갈 때 발생하는 세세한 문제는 한두가지가 아니다. 예를들어 띄어쓰기를 잘 지키지 않는 의존명사를 어떻게 처리할 것인가, 어미와 조사는 어떻게 할 것인가, 복합명사와 보조용언은 어떻게 처리할 것인가, 그리고 가장 처리하기 어려운 중의성 문제는 어떻게 할 것인가가 있다. 이는 상세 작업을 하면서 지침을 마련해야 한다.
먼저 다어절의 단어를 어떻게 처리할 것인가이다. '~에 대하여'는 하나의 조사로 처리하는 것이 더 나을 수 있다. 마찬가지로 'in spite of'도 하나의 전치사로 처리하는 것이 더 낫다. 더욱 어려운 것은 어디까지를 끊어서 하나로 묶을 것인가를 판단하는 일이다.
반대로 준말이나 준꼴을 어떻게 처리하는가도 문제가 된다. hasn't는 has/VERB n't/NEG와 같은 형태로 잘 나누어야 하며 n't가 not과 같은 것이라는 것은 주석단계에서 고민하지 말고 이후 해석단계에서 판단하는 것이 편리하다. 하지만 '논자시'라는 준말을 '논문 제출 자격 시험'으로 풀어서 쓰는 것은 문제가 된다. 이런 것들은 추후 검토가 필요하다는 주석을 달고 뒤로 넘어가는 것이 덜 혼란스럽다.
그리고 고민되어야 할 것은 주석의 종류가 너무 많아서는 안된다는 것이다. 사람이 작업하는 것이기 때문에 인지의 한계상 주석의 종류가 많으면 적절하게 구분해줄 수가 없다. 50개를 넘으면 효율이 떨어진다는 보고가있다. 또 분명한 기준을 제시할 수 없는 범주는 만들지 않는 것이 좋다. 그리고 주석을 명명할 때는 간결성(conciseness), 명료성(perspicuity), 분석가능성(analysability)을 고려해서 만드는 것이 바람직하다. 영어권이라면 표준으로 정착하고 있는 TEI(Text Encoding Initiative)를 따라가는 것이 좋다.
품사 주석 다음으로 중요한 것은 구문 주석(syntactic annotation)이다. 구문 주석의 구체적인 활용 목적으로는 자동 구문 분석기의 개발과 통사정보에 기반한 어휘정보의 추출을 들 수 있다. 형태소 분석기와 마찬가지로 자동 구문 분석기를 만들 수 있으며 이는 잘 구축된 구문 주석 말뭉치를 통해 학습시킬 수 있다. 아직 형태소 분석기 수준으로 가지는 못했지만 초기 분석정도는 충분히 해줄 수 있는 수준의 구문 분석기는 만들어져있다. 그리고 구문 정보와 함께 조합되면 좀 더 구분된 어휘정보를 추출할 수 있다. 예를들어 어휘 중의성이 있는 단어라도 구문 정보가 조합되면 나머지를 버리고 하나를 결정할 수 있는 것이다.
구문 주석 말뭉치를 트리뱅크(Treebank)라 부르는데 이것은 기존에 구구조 분석으로 부르던 것을 좀 더 정교하게 만든 수형도(tree structure)의 집합이다. 트리뱅크중에 가장 유명한 것은 400만 어절 규모의 펜 트리뱅크(Penn Treebank)이다. 트리뱅크를 만들기 위해서는 먼저 기초구문분석(skeleton parsing)을 하는 것이 좋다. 그것은 정확도를 높이기 위한 방편으로, 애매하거나 너무 상세한 단계까지 주석작업을 하지 않는 것이다. 사람이 빠른 속도로 비교적 정확한 트리뱅크를 우선 만들어야 하기 때문에 정교함보다는 정확함을 우선시하는 것이다. 그리고 구문 주석은 복잡도가 품사 주석에 비해 높기 때문에 일관된 기준을 제시하는 것 보다는 적절한 것과 적절하지 못한 것의 예를 모아내는 것이 더 바람직하다. 이런 사례가 모이면 추후 신규 작업자에 대한 매뉴얼이 될 수 있다.그리고 이 매뉴얼에 맞추어 기존 트리뱅크를 수정해나간다. 이런 순환과정을 통해 기초구문분석 결과가 점차 상세화될 수 있다.
이런 구문 주석 과정을 거친 대표적인 트리뱅크를 제시한다.
구문 주석과 함께 품사 주석의 중의성을 해소할 수 있는 방법으로 의미 주석(semantic annotation)이 있다. can은 조동사일 수도 있고 깡통일 수도 있으므로 아예 can이 어떤 의미를 가지고 있는가를 적어두는 것이다. can의 경우는 품사가 달라졌기 때문에 구문 주석으로 해결할 수도 있지만 window처럼 명사로만 쓰이는 경우는 PC의 OS를 말하는 것인지 창문을 말하는 것인지 구분하기 어렵다.
어휘의 의미적 분류는 로제(Roget) 이후 여러 사람들에 의해 시도되었는데 가장 대규모로 구현된 것은 워드넷(WordNet)이다. 의미의 체계는 작업자들마다 달라질 수밖에 없는 것이나 영어의 워드넷은 대규모로 구축되었고 또 지속적으로 수정되어 가장 많은 사람들이 받아들이는 의미분류체계라 할 수 있다. 따라서 워드넷에 의해 의미 주석이 된 말뭉치가 상당수 존재한다.
의미 주석은 해당 문서가 어떤 유형을 가지는지 금방 알게 해준다. 이를 응용해 의미 주석 작업은 문서의 자동분류 시스템의 개발에 활용되고 있다. 웹상에서 만들어지는 수많은 문서를 효과적으로 보기 위해서는 관련도 높은 문서끼리 묶어서 볼 필요가 있기 때문이다.
담화 주석(discourse annotation)은 대화의 흐름이 어떻게 이루어지는가를 연구하는 담화 분석을 위한 주석이다. 담화 분석은 담화가 잘 이루어지고 있는가, 담화의 흐름을 방해하는 요소는 어디에 있는가를 살펴보기 위한 것이기도 하지만 이를 응용하면 자동 응답 시스템을 만드는 것도 가능하다.
담화 분석 중에서도 대화를 연결해주는 가장 중요한 고리로 대화와 대화를 이어주는 조응어(anaphora)를 들 수 있다. 조응어의 위치와 생략 등에 대해 주석을 달 수 있으며 이 주석의 양이 늘어나면 점차 자동 주석 뿐 아니자 담화 수준의 대화 시스템 개발도 가능해질 것이다.
전방 조응 정보는 아래처럼 주석을 단다. 구체적인 대상인 선행사와 그를 가리키는 대용형을 표시해야 하고 해당 대용형이 생략되었다면 생략된 위치를 지정해 줄 수 있다.
전방 조응 정보는 기술하려면 얼마든지 깊게 기술할 수가 있어서, 어떤 목적으로 어느 수준까지 기술할 것인가를 정하지 않으면 안된다. 아래에 잘 알려진 전방 조응 정보 주석 체계의 예를 든다.