윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어...

11
윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 일정한 텍스트에서 원하는 부분들을 찾아서 읽는 것은 인문학도들에게 매우 일상적인 일 이다. 과거에 읽었던 텍스트인 경우 ‘내가 그 내용을 어디서 읽었더라’ 하면서 기억을 더듬 어 원하는 부분을 찾아간다든지, 아직 읽어 보지 못한 텍스트인 경우 색인이나 목차 등의 도움을 받아 원하는 내용이 들어 있는 부분을 찾아가는 등의 경험을 독자들도 수없이 많이 해 보았을 것이다. 그러면서 ‘이 소모적인 일을 좀 더 효율적으로 할 수 있는 방법은 없을 까’ 하는 탄식도 많이 했을 것이다. 전산화된 텍스트와 프로그램을 이용하여 이런 일은 이 제 매우 쉽게 이루어지게 되었다. 예를 들어 셰익스피어를 연구하는 영문학도가 셰익스피어의 작품들에 등장하는 두 단어 liberty와 freedom의 차이에 대해 조사하고 싶다고 하자. MonoConc Pro라는 프로그램으 로 이 두 단어의 용례를 검색해 본 결과가 <그림 1>과 <그림 2>에 제시되어 있다. <그림 1> ‘liberty’의 concordance

Upload: others

Post on 19-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출

일정한 텍스트에서 원하는 부분들을 찾아서 읽는 것은 인문학도들에게 매우 일상적인 일

이다. 과거에 읽었던 텍스트인 경우 ‘내가 그 내용을 어디서 읽었더라’ 하면서 기억을 더듬

어 원하는 부분을 찾아간다든지, 아직 읽어 보지 못한 텍스트인 경우 색인이나 목차 등의

도움을 받아 원하는 내용이 들어 있는 부분을 찾아가는 등의 경험을 독자들도 수없이 많이

해 보았을 것이다. 그러면서 ‘이 소모적인 일을 좀 더 효율적으로 할 수 있는 방법은 없을

까’ 하는 탄식도 많이 했을 것이다. 전산화된 텍스트와 프로그램을 이용하여 이런 일은 이

제 매우 쉽게 이루어지게 되었다.

예를 들어 셰익스피어를 연구하는 영문학도가 셰익스피어의 작품들에 등장하는 두 단어

liberty와 freedom의 차이에 대해 조사하고 싶다고 하자. MonoConc Pro라는 프로그램으

로 이 두 단어의 용례를 검색해 본 결과가 <그림 1>과 <그림 2>에 제시되어 있다.

<그림 1> ‘liberty’의 concordance

Page 2: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

<그림 2> ‘freedom’의 concordance

이들 그림에서 보듯이 텍스트에서 원하는 문자열을 검색해서 그 문자열의 앞뒤 문맥을 일

정한 길이로 보여 주는 프로그램들이 여럿 나와 있다. <그림 1>과 <그림 2>에서 보듯이 텍

스트에서 target 문자열의 사용례를 그 문맥과 함께 제시한 것을 콘코던스(concordance)라

고 하고, 그런 콘코던스를 자동으로 만들어 주는 소프트웨어를 concordancer 또는

concordance program이라고 한다. 콘코던스는 키워드를 문맥 속에서 보여주기 때문에 흔

히 KWIC(keyword in context)이라고도 부른다. 예전 DOS 시절부터 콘코던스 프로그램이

여럿 있었지만, 현재 윈도즈 환경에서 편리하게 이용할 수 있는 것으로 가장 유명한 것은

Wordsmith이다. 텍스트를 가지고 할 수 있는 다양한 작업들을 두루 지원하는 패키지이다.

Wordsmith만큼 강력하지는 않지만 그런 대로 요긴한 기능들을 갖추고 있는 소프트웨어로

MonoConc Pro가 있다. Wordsmith나 MonoConc Pro 같은 콘코던스 패키지들은 기본적으

로 다음과 같은 기능들을 지원한다.

① 텍스트의 어휘 통계 자료 추출

② 문자열 검색 (정규표현 검색 일부 지원)

③ 검색 결과를 앞뒤 문맥에 따라 소팅하는 기능

④ 앞뒤 문맥의 길이를 조절하는 기능

⑤ 고급 검색 기능: 일정한 거리 내에 있는 연어 추출 등.

⑥ 텍스트 내 단어의 type-token 비율 산출 ……

Page 3: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

어휘 통계 작업들 중 상당 부분을 편리하게 할 수 있게끔 해 놓았고, 콘코던스도 보기 좋게

추출해 주는 것이다. 따라서 이런 편리한 도구가 어떤 기능들을 지니고 있는지 잘 알아 보

고 이런 도구를 잘 이용하기만 해도 연구에 상당한 도움을 받을 수 있을 것이다. 그러나 이

런 프로그램을 이용한다고 해서 모든 일이 다 해결되는 것은 아니다. 예를 들어 텍스트에서

어떤 단어의 콘코던스를 뽑았는데 이것을 자신의 논문에서 이용하고 싶다고 치자. 그렇게

하려면 검색 결과를 텍스트 파일로 저장해서 이것을 자신의 용도에 맞게 다듬어야 할 것이

다. 그런 후처리 작업을 하기 위해서는 후술할 유닉스 툴이 유용하다. 그리고 상용화된 프

로그램들을 많이 사용하다 보면 차츰 느끼게 되겠지만, 이들 도구가 제공하는 일정한 기능

들, 일정한 포맷이 마음에 들지 않는 경우가 생기게 된다. 텍스트를 자기 입맛에 맞게 마음

대로 주무를 수는 없는 것이다. 그렇게 하려면 조금 어렵고 귀찮더라도 텍스트 처리의 기법

들을 익혀야 한다. 이 책에서는 우선 편리한 도구의 기본적인 기능들에 대해 소개하고, 그

다음에는 유료인 그런 도구들을 굳이 구입하지 않더라도, 자기 스스로 콘코던스를 만들 수

있다는 것을 보여주고자 한다.

1. MonoConc Pro

대부분의 콘코던스 프로그램들이 기본적인 기능에 있어서는 비슷하기 때문에, 한 가지 프

로그램에 대해서 자세하게 살펴보면 다른 프로그램도 어렵지 않게 사용할 수 있다. 우선은

분석 대상이 되는 텍스트를 loading해야 한다. MonoConc Pro의 경우 메뉴바의 File 항목

에서 Load Corpus File(s)를 선택하면 폴더 및 파일을 선택할 수 있는 대화상자가 열린다.

이 때 load하고자 하는 파일들을 클릭해서(복수의 파일을 선택할 때에는 클릭과 Ctrl-Click,

Shift-Click을 적절히 섞어서 사용함으로써) 선택한다.(<그림 3>)

<그림 3> load할 파일(들) 선택

‘열기’를 클릭하면 선택한 파일들이 Corpus Text라는 제목의 창에 나타난다. 기본적인 빈

도 통계를 추출하기 위해서는 메뉴바의 Frequency - Corpus Frequency data 항목을 이

용한다. 로딩된 텍스트 내에서 각 단어의 빈도를 알파벳순 또는 빈도순으로 보여준다.(<그

Page 4: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

림 4>)

<그림 4> 코퍼스 빈도 데이터

문자열 검색을 하고자 할 때에는 메뉴바의 Concordance - Search 항목을 이용한다. 검

색할 문자열을 입력할 대화상자가 뜨면 찾고자 하는 문자열을 입력하고 OK 버튼을 클릭하

면 해당 문자열 및 그 앞뒤 문맥이 리스트 형식으로 제시된다.(<그림 5>) 메뉴바의

Concordance - Search Options 항목을 클릭해서 검색 결과를 제시할 때의 최대 개수, 앞

뒤 문맥의 길이, 구분자(delimiter)로 사용할 문자 등을 정해 줄 수 있다. Advanced

Search를 이용하면 정규표현 검색, 대소문자 구분 없는 검색 등의 고급 검색 기능을 사용

할 수 있다. 검색 결과는 기본적으로 텍스트에 원래 출현하는 순서대로 제시된다. 그런데

검색 대상 단어 앞이나 뒤에 어떤 요소들이 많이 오는가를 보기 위해서는 앞이나 뒤 문맥에

따라 정렬이 되어 있는 것이 편리하다. 이를 위해서는 메뉴바의 Sort 항목을 이용한다. 바

로 앞 단어, 앞의 두번째 단어, 바로 뒤 단어, 뒤의 두번째 단어 등을 정렬 기준으로 사용할

수 있고, 제2 정렬 기준도 명시할 수 있다. MonoConc Pro는 미국에서 제작된 소프트웨어

이기 때문에 기본적으로 한글에 대한 고려가 잘 되어 있지는 않다. 그러나 한글 윈도즈상에

서는 한글 텍스트도 비슷한 방식으로 별 어려움 없이 이용할 수 있다. 다만 몇 가지 주의할

Page 5: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

것이 있다. 하나는 앞뒤 문맥의 길이를 Search Options에서 조절할 수 있게 되어 있는데,

이 때 제시되는 숫자는 바이트 수를 의미한다는 것이다. 영문자나 숫자, 기타 키보드에서

직접 입력이 가능한 기호들은 1바이트를 차지한다. 반면에 한글이나 한자 등은 하나의 글자

가 2바이트를 차지한다. 따라서 문맥의 길이를 40이라고 정해 주면, 이것은 40바이트를 의

미하지 한글 40자를 의미하는 것이 아니다. 그리고 Coprpus Frequency Data 등을 추출한

결과가 제시될 때 한글이 깨져서 보이는 경우가 있다. 이럴 때에는 메뉴바의 Display -

Change Font 항목을 이용해서 글꼴을 바꿔 보기 바란다. 한글을 지원하는 글꼴로 바꿔 주

면 대개 제대로 나온다.

<그림 5> 문자열 검색 결과

2. 글잡이Ⅱ

글잡이Ⅱ는 21세기 세종계획의 일환으로 제작되어 일반에게 무료로 공개되고 있는 콘코

던스 프로그램이다. 기본적인 사용법은 MonoConc Pro와 비슷하다. 메뉴바의 말뭉치 -새말

뭉치 열기 메뉴를 이용하여 파일들을 로딩하는데, 텍스트 파일뿐 아니라 글 파일도 사용

Page 6: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

할 수 있다(<그림 6>). 용례 검색에서 특징적인 것은, 우리나라에서 제작된 프로그램답게

한글의 특성을 고려하여 자소 단위 검색도 가능하게 해 놓았다는 점이다. 예를 들어 ‘가

[ㄱ,?,#]’이라고 검색식을 주면(<그림 7>) ‘가’라는 음절 뒤에 초성이 ‘ㄱ’이고 중성이 아무

거나 하나 있고 종성은 비어 있는 경우를 찾아 준다(<그림 8>).

<그림 6> 글잡이Ⅱ에서 말뭉치 파일 열기

<그림 7> 자소 단위 검색식

Page 7: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

<그림 8> 자소 단위 검색 결과

어절 통계뿐 아니라 음절 통계, 자소 통계를 내는 기능도 포함되어 있다.

3. 유니코드 파일 검색 프로그램

지금까지 살펴본 콘코던스 프로그램들은 나름대로 매우 요긴한 기능들을 두루 갖춘 훌륭

한 프로그램이기는 하지만, 한 가지 아쉬운 점은 아스키 텍스트만을 검색 대상으로 하고 유

니코드 텍스트 파일을 검색 대상으로 할 수 없다는 점이다. 옛한글이 포함되어 있는 국어사

자료라든지 확장 한자가 많이 포함되어 있는 역사 자료 등은 아스키 텍스트로 저장하면 옛

한글과 확장 한자가 소실된다. 따라서 이런 자료는 유니코드 텍스트로 저장해야 정보가 손

실되지 않는데, 위에서 살펴본 프로그램들은 유니코드를 지원하지 않는 것이다. 그래서 몇

몇 국어사 연구자들을 중심으로 해서 유니코드 기반의 콘코던스 프로그램을 만들려는 시도

가 이루어지게 되었다. 대표적인 것으로 SynKDP(일명 깜짝새)와 Uniconc를 들 수 있다.

이들은 모두 무료로 사용할 수 있다.

SynKDP는 내부적으로는 유니코드 기반으로 돌아가지만, 입출력은 글의 2바이트 파일

포맷을 사용한다. 즉, SynKDP로 텍스트를 검색하고자 할 때에는 우선 해당 파일을 글(글97 또는 그 이전 버전)에서 2바이트 파일로 저장해야 한다. 또는 HwpConv를 이용하여

다른 포맷의 파일을 2바이트 파일로 변환할 수 있다. 글의 2바이트 파일 포맷으로 된 것

을 메뉴바의 ‘열기’ 메뉴를 통해 열고 전문가 탐색창에서 앞뒤 어절의 출력 범위를 지정하

고 검색식에서 ‘머거’라고 입력하고 조건을 ‘71’로 주었는데 앞의 ‘7’은 음절 전제가 일치되

어야 함을 의미하고 뒤의 ‘1’은 초성이 일치함을 의미한다. 검색 결과를 보면 ‘머’라는 음절

뒤에 초성이 ‘ㄱ’인 예들이 추출되었음을 알 수 있다. 검색 결과를 앞뒤 문맥에 따라 소팅하

는 기능, 특정 예의 앞뒤 문맥을 더 길게 보는 기능, 어절 ․ 음절 ․ 자소별 빈도 통계를 내는

기능 등이 포함되어 있다.

Page 8: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

<그림 9> synKDP의 자소 단위 검색 결과

SynKDP에 있어서 좀 아쉬운 점은 하나의 파일만을 검색 대상으로 할 수 있다는 점이다.

검색 대상이 되는 파일이 여럿일 때에는 이 파일들을 먼저 하나로 합쳐 놓고 로딩을 해야

한다. 파일 수가 적을 때에는 그렇게 하는 것이 별로 어렵지 않겠지만, 파일 수가 많아지고

전체 말뭉치의 양이 늘어나면 늘어날수록 그렇게 하는 것은 점점 더 어려워진다. 복수의 파

일을 검색 대상으로 하는 기능이 필요한 것이다. EmEditor는 콘코던스 전문 프로그램은 아

니지만 그런 기능을 제공한다. ‘파일로부터 검색(Find in files)’ 메뉴를 사용하면 복수의 파

일을 검색 대상으로 하여 문자열 검색을 할 수 있는 것이다. 게다가 EmEditor는 아스키 텍

스트건 유니코드 텍스트건 상관없이 다 검색할 수 있으며, 정규표현 검색도 가능하다.

Page 9: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

<그림 10> EmEditor의 ‘파일로부터 검색’

<그림 10>에서 보는 것처럼 검색 대상 폴더를 지정해 주면 그 폴더 안에 있는 모든 파일들

(또는 특정 유형의 모든 파일들)을 검색 대상으로 하게 된다. <그림 10>의 정규표현은 ‘비

록’과 ‘라도’가 공기하되 그 사이에 줄바꿈 문자 이외의 임의의 문자가 임의의 개수만큼 오

는 경우를 찾는 것이다. <그림 11>에서 보듯이 찾아진 용례들이, 출전 파일명 및 그 파일

에서 몇 번째 라인에 용례가 출현하는지에 대한 정보와 함께 제시된다. 하이퍼텍스트 링크

기능까지 되어 있어서 파일명을 클릭하면 해당 파일의 해당 부분이 별도의 창으로 열린다.

일본에서 만들어진 소프트웨어라 한글의 자소 단위 검색 기능은 제공되지 않는다. 그리고

콘코던스 전문 프로그램에서는 검색 대상 문자열을 중심으로 좌우 문맥을 보기 좋게 정렬해

주는 데 비해, EmEditor에는 그런 기능은 마련되어 있지 않다. 그렇기는 해도, 정규표현 검

색 기능을 제공하는 등 장점이 많이 있다.

EmEditor의 이런 장점들과 한글의 자소단위 검색 기능을 결합해서 필자가 만든 Uniconc

라는 프로그램도 있다. <그림 12>에서 보듯이 일반 문자열 검색, 자소 단위 검색, 정규표현

검색의 3가지 mode 중 하나로 검색을 할 수 있으며, EmEditor처럼 폴더를 지정해 주면 그

폴더 및 그 하위폴더들에 존재하는 모든 유니코드 텍스트 파일들을 대상으로 검색을 해 준

다. 좌우 문맥의 길이를 조절할 수 있고, 검색 결과를 좌우 문맥 및 검색 대상 문자열을 기

준으로 소팅할 수 있다. Monoconc Pro나 글잡이Ⅱ에서 지원하는 정규표현은 매우 제한된

것인 데 반해, EmEditor나 Uniconc에 내장되어 있는 정규표현 엔진은 이른바 full-fledged

정규표현을 모두 지원한다. 가장 풍부한 정규표현을 지원한다고 알려져 있는 Perl의 정규표

현을 모두 지원하는 것이다.

Page 10: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

<그림 11> EmEditor의 ‘파일로부터의 검색’ 결과

Page 11: 윈도즈용 프로그램을 이용한 용례 검색 및 통계 정보 추출 예를 들어 …hosting03.snu.ac.kr/~korean/old/data/han/concordancer.pdf · 윈도즈용 프로그램을

<그림 12> UniConc의 자소 단위 검색 결과

[참고] 옛한글 입력: KISTI CJK IME Pad (http://giis.kisti.re.kr)