일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- BAM
- 삼성전자 소프트웨어멤버십 SSM
- 인공지능
- 빅데이터
- hopfield network
- Neural Network
- 신경회로망
- 동아리
- 패턴인식
- 삼성소프트웨어멤버십
- Google App Engine
- NarwalFreo
- 삼성
- 증강현실
- 물걸레로봇청소기추천
- Bidirectional Associative Memory
- Friendship
- 물걸레자동세척로봇청소기
- 나르왈프레오
- Python
- 하이퍼바이저
- 가상화
- 멤버십
- 구글 앱 엔진
- 갤럭시탭S8울트라
- 신경망
- 파이썬
- SSM
- 패턴 인식
- 고려대학교
- Today
- Total
정보공간_1
[4기 신촌 김형진] 자연어 처리와 형태소 분석의 기초 #2 본문
안녕하세요.
신촌멤버십 22-2기 김형진입니다.
지난 포스트에 이어서 형태소 분석 방법에 대해 작성하겠습니다.
4. 일반적인 형태소 분석
일반적인 형태소 분석 과정을 도식화하면 다음과 같습니다.
특정 문자열이 입력되면, 전처리/후처리 과정을 제외하고 3가지 과정이 필요합니다.
전처리는 입력 문자열에서 단어 또는 어절을 추출하는 과정입니다.
전처리 단계에서 생성한 어절에 대하여 형태소 분리 및 원형 복원 과정을 거쳐 분석 후보를 생성합니다. 여기에서 사용되는 것은 어미나 조사, 접두사 등을 인식하고 음운의 축약, 탈락 등의 음운현상에 의한 형태소에 대해 원형을 복원합니다. 후보를 정확하게 생성할수록 결과가 더욱 정확하게 나타날 수 있습니다.
결합 제약 검사는 분석결과에 비해 ‘후보’는 매우 많은 양이 생성되는데, 여기에서 규칙에 어긋난 것을 제거하는 과정을 통해 선택의 폭을 줄여나가는 과정입니다. 중간에 결합 제약을 검사하는 이유는 경우에 따라 ‘맞춤법 검사기’ 등의 경우는 이러한 제약 요건의 검사를 이용한 중간 분석 결과가 필요하기 때문입니다.
분석 후보 선택은 어휘사전 검색 및 단어형성규칙에 의해 최종적으로 올바른 후보를 선택하는 과정입니다.
후처리는 중의성을 내포하는 단어들에 대해 두 가지 이상의 분석 결과를 제시할 수 있도록 해 주는 과정입니다. 여기에서 오로지 “형태소”만을 분석한 결과로는 “하늘을 나는 새”와 “나는 밥을 먹었다”의 “나는”에 대한 분석 결과가 동일하기 때문에, 여기에 추가로 문장 구조 등의 검사가 이루어져야 정확한 결과를 얻을 수 있습니다.
5. 한국어의 형태소 분석 방법
한국어 형태소 분석은 크게 4가지 방법이 있는데, 이는 다음과 같습니다.
Head-tail 구분법 | 변형되는 부분(head) / 변형되지 않는 부분(tail)으로 나누어, head-tail 결합 관계를 “접속 정보표”를 검사하여 분석합니다. 모든 가능한 tail을 조사한 다음 이 tail들을 바탕으로 head를 추정하고 둘의 관계를 표에서 찾아내는 방식입니다. |
Tabular 파싱법 | 모든 자모 단위의 부분 문자열을 모두 검색하여 실질, 형식 형태소를 추출하고, 이를 모두 테이블에 저장합니다. Dynamic Programming 기법을 사용하게 됩니다. |
최장(단)일치법 | 단어의 가장 길거나 짧은 형태소를 우선적으로 검사하는 방식입니다. Tabular의 비효율성을 제거하고 효율을 높이기 위한 ‘선호도’를 반영하여 처리속도를 높입니다. |
음절 단위 분석법 | 음절 단위로 특정 범주에 포함되는지 확인하여 비효율성을 제거합니다. 즉 “멤버십에서”라는 어절에서 ‘에’, ‘서’는 조사의 일부가 될 수 있지만 ‘멤’, ‘버’, ‘십’이라는 음절이 포함된 조사나 어미는 존재하지 않는다는 점에 착안하여 분석합니다. |
한국어 형태소의 분석 과정을 도식화하면 다음과 같습니다.
전, 후처리 과정은 동일하며, 사전 데이터를 활용하여 형식 형태소와 실질 형태소를 구별해 내는 과정이 추가됩니다. 즉, 일반론에서의 “분석 후보 생성” 과정을 한국어의 특수성에 맞추어 분석하는 과정입니다.
여기서 형식 형태소는 결합이 가능한데, 크게 4가지 분류가 있습니다.
1 – 조사로만 이루어진 결합형
2 – 어말 어미로만 이루어진 결합형
3 – 1에 어말 어미의 결합
4 – 2에 조사의 결합
예를 들어 “멤버십에서부터였다고는” 라는 어절이 있다면, 이는 다음과 같이 나눌 수 있습니다.
즉, 조사+어미 형식으로 이루어져 있는 3번 유형으로 분석이 가능합니다. 만약 이런 결합형을 찾기 위해 앞서 본 Tabular 방식을 사용하는 경우, 모든 경우를 조사/어미 사전에서 찾아야 하기 때문에, 접속 정보표가 [조사/어미의 수]의 제곱이 되는 검색 횟수가 발생합니다. 하지만 결합형을 모두 사전에 수록하는 경우, 결합 가능한 조사/어미는 약 1,500~2,000여개로, 조사/어미의 수가 약 600여개이기 때문에 이의 제곱인 360,000번의 검색보다는 결합형 사전에서 찾는 것이 훨씬 효율적입니다.
한국어에서는 특히 형태소가 한 음절에서 분리되는 경우가 많은데, 이를 위해서는 한글 음절 11,172개가 모두 수록된 유니코드 방식의 인코딩이 유용합니다. 만약 UTF-16 형식의 문자 코드가 code란 변수에 저장되어 있다면, 다음과 같은 코드로 초/중/종성을 분리할 수 있습니다.
또한, 한국어는 “선어말어미”라는 것이 있어, 어미와 어간 사이에 끼어 들어가는 어미가 존재하는데, 이 중 결합 제약이 거의 없는 “-시-”, “-었-”, “-겠-”만 분석할 수 있도록, 초, 중성이 “시”이거나 종성이 “ㅆ”인 음절을 선어말어미로 분리하고 분석합니다. 이외의 선어말어미들은 결합 규칙이 존재하므로 일반적인 어미인 어말어미로 생각하고 처리합니다. 접미사 역시 어말어미와 같은 방식으로 처리합니다.
불규칙 활용의 경우는, 이름은 “불규칙 활용”이지만 “불규칙끼리 규칙적”인 특성을 갖고 있습니다. 특정 용언에만 적용되기 때문에, 이를 “불규칙의 규칙”을 활용하여 원래 어간을 복원하면 실질 형태소를 얻어낼 수 있습니다.
7. 형태소 분석의 효율성
형태소 분석 방법이 얼마나 효율적인가는 다음 3가지 기준을 생각해 볼 수 있습니다.
알고리즘의 효율성
같은 형태소 분석이라도, 영어와 한국어는 분석 방법에 큰 차이가 있습니다. “고립어”로 분류하는 영어는 일반적으로 언어의 변화가 적고 형태소 자체가 어절에 반영되기 때문에 형태소 분석에서 일부 접미사만 분류하면 됩니다. 하지만 한국어는 변화가 많아 분석 방법이 다양해질 수밖에 없습니다. 따라서 이 경우 상대적으로 효율이 감소하게 됩니다.
어휘 사전 탐색
사전의 탐색 방법 역시 효율성에 영향을 끼칩니다. 특수 목적을 위해 분석을 하는 경우에는 어휘 사전을 최소화하고, 사전 탐색 방법을 바꾸거나, I/O 속도, 탐색 횟수 최소화를 이용하여 효율적인 방법으로 탐색을 할 수 있습니다.
어휘의 중의성
문장 분석의 결과 수는 다음과 같이 각 성분의 중의성 개수의 곱으로 표시할 수 있습니다.
즉 각각의 중의성 개수가 많다면 그만큼 결과가 많아지기 때문에, 어느 정도의 중의성은 제거되어야 합니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[4기 강남 노진우] 아름다움과 사용성 (0) | 2013.10.29 |
---|---|
[4기 강남 노진우] 검색이 기억에 미치는 영향 (0) | 2013.10.29 |
[4기 신촌 김형진] 자연어 처리와 형태소 분석의 기초 #1 (0) | 2013.10.28 |
[4기 신촌 김형진] UDP Hole Punching 소개 (1) | 2013.10.28 |
[4기 부산 김솔] Codeigniter 3 (0) | 2013.10.28 |