Management of Software Development

Download Report

Transcript Management of Software Development

Modified from the slides
by SciTech Media
자연어 처리 (Natural Language
Processing)
(Lecture Note #27)
인공지능
이복주
단국대학교 컴퓨터공학과
1
Outline






자연언어 처리
자연언어 처리를 위한 문법
형태소 분석
파싱
자연언어 생성
자연 언어 응용 예
2
자연언어 처리

자연언어의 의미
– 프로그래밍 언어와 같은 인공언어에 대응하는 개념, 인간이
일상적으로 사용하는 언어
– 자연언어를 컴퓨터로 처리하려고 하는 분야
– 기계 번역, 대화식 사용자 인터페이스 (음성 포함), 데이타
베이스에서 자연어 질의

자연 언어 처리 역사
– 대표적 언어학자 Noam Chomsky
• 언어는 인간 정신 세계의 반영
• 변형을 부정하고 의미와 어휘의 역할 강조
– 초기 학자들의 생각
• 프로그램 언어 같은 인공 언어를 확장하면 자연어 처리가 쉽게 될 것
• 결국 실패: 인간은 기억된 상식, 전문 지식을 이용하여 추론
3
자연언어 처리

자연언어 처리의 분석 단계
– 형태소 분석 (morphological analysis)
• 입력된 문자열을 분석하여 형태소라는 자연언어 분석을 위한 기본 단
위로 분류하는 것 (형태소 결합 규칙을 역으로 적용)
• 예) 감기는 → ‘감기 (명사) + 는 (조사)’
– 구문 분석 (syntactic analysis)
• 형태소들이 결합하여 문장이나 구절을 만드는 구문 규칙에 따라서 문
장 내에서 각 형태소들이 가지는 역할 (주어, 목적어)을 분석하는 것
• 예) 직장인은 휴일을 쉰다. (직장인은 주어, 쉰다는 서술어 )
4
자연언어 처리의 분석 단계
– 의미 분석 (semantic analysis)
• 구문 분석의 결과를 해석하여 문장이 가지는 의미 (형태소의 의미)를
분석하는 것
• 예) 배가 간다.
– 배를 차로 바꾸면 차가 간다. 차가 간다 와 배가 간다는 구문적으로 올바른 문장.
– 배가 먹는 배로 의미한다면 이 문장은 의미상으로 올바른 문장 아님
– 의미 분석은 간단하지 않고, 실제 문제 영역에 따라 그 처리 방법이 달라짐.
– 실용 분석 (pragmatic analysis)
• 문장이 실세계와 가지는 연관 관계를 분석하는 것
• 예) 지금 시간을 아니? 라는 문장
– 현재 시간을 아느냐 + 나에게 알려 달라는 의미도 포함
– 실세계 지식이나 상식 등을 토대로 화자와 청자의 대화 의도를 분석하는 것이 요구한다.
– 이와 같은 실용 분석은 자연어로 된 질의어를 분석하거나 사용자 인터페이스를 구축하
는데 중요
– 보다 완전한 자연어 처리: 음성학적 지식, 주제 관련분야 지
식 필요
5
자연어 처리의 예

자연어 처리의 예: "Mr. Kim’s family enjoyed a
barbeque party.“
– 형태소 분석: “Mr.”, “Kim’s”, “family”, …
– 구문 분석: “Mr. Kim’s family”: 주어, “enjoyed”: 서술어,
“a barbeque party”: 목적어
– 의미 분석 단계: “Mr. Kim’s family”라는 사람이 “a
barbeque party라는 대상을 “enjoyed”라는 행위를 수행
6
자연어 처리의 예

자연어 처리의 예: "Mr. Kim’s family enjoyed a barbeque
party.“
– 실용 분석 단계
experiencer
like
object
internal representation
person : Mr. Kim's family
agent
object : a barbeque party
behavior : enjoy object
instrument
location
outdoor
object
fork & knife
location
7
자연언어 표현을 위한 문법

문법
– 인간의 언어 능력에 의해 해석되어 무한한 자연언어를 생성
할 수 있는 유한한 규칙으로 정의 (formal grammar)
• 자연언어: 문맥 의존 언어
• 프로그래밍 언어: 문맥 자유 언어
• 문맥 의존 언어  문맥 자유 언어
– 형식 언어 이론에서의 문법 G = {N, T, S, P}로 정의
•
•
•
•
N: 문법 기호에 해당하는 비단말 기호 (nonterminal symbol)
T: 단말 기호 (terminal symbol)
S: 시작기호로서 대개 문장을 나타내는 문법 기호가 시작기호
P: 시작기호 S로부터 시작한 유도 과정을 통하여 단말 기호의 열이 얻
어지기까지 적용되는 생성 규칙들의 집합
– Chomsky의 형식 문법
•
•
•
•
무제약 문법 (unrestricted grammar)
문맥 의존 문법 (context-sensitive grammar)
문맥 자유 문법 (context-free grammar)
정규 문법 (regular grammar)
8
자연언어 표현을 위한 문법

무제약 문법 (unrestricted grammar)
– 가장 일반적인 문법
– A  W
• A  (N  T)* - {}
• W  (N  T)*
• ,   (N  T)*
// 즉 A는 공백 문자가 아니어야 함
– 위축형 문법 (contracting grammar)
• Wi  Wi+1 에서 Wi+1이 Wi보다 길이가 짧아질 수 있다
• cD  c

문맥 의존 문법 (context-sensitive grammar)
– A  W
• AN
// 즉 A 비단말 기호가
• W  (N  T)* - {} // 공백 아닌 단말 및 비단말로 대치될 수 있음
• ,   (N  T)*
– 단 A앞뒤에 ,  일치해야 함. 즉 문맥 영향 받음
9
자연언어 표현을 위한 문법

문맥 자유 문법 (context-free grammar)
– AW
• AN
// 즉 A 비단말 기호가
• W  (N  T)* - {} // 공백 아닌 단말 및 비단말로 대치될 수 있음
–  = ,  = 로 제약이 가해짐
– A앞뒤에 ,  일치할 필요 없음. 즉 문맥 관계 없음

정규 문법 (regular grammar)
– 우선형 (right linear): A  aB | a
• A  N  {S}
• BN
• aT
– 좌선형 (left linear): A  Ba | a
10
자연언어 표현을 위한 문법

예제 11.2
–
–
–
–
–

L1 = {anbn| n  0}
L2 = {anbn| n  1}
어느 것이 문맥 자유 언어인가?
L2: S  aSb | ab [문맥 자유]
L1: S  aSb | ab |  [무제약 언어]
정규 문법, 문맥자유 문법
– 가장 많이 연구됨
– 프로그래밍 언어는? 문맥 자유 문법

자연 언어는? 문맥 의존 문법
– 효율적 처리 방법 아직 없음
11
자연 언어의 이해

자연언어의 이해하는 방법
– 문장을 형태소 (morpheme) 분석과 파싱
(parsing) 이라는 두 단계로 분석
• 형태소 분석: 단어 단위로 분리된 입력 문자열로부터 각각의
형태소를 분리하고, 변형이 일어난 단어에 대해서는 원형을 복
원하는 과정
• 파싱 (parsing): 문장의 구조가 문법이론에 따라 구조적으로
맞게 되어 있는지를 분석하는 과정
– 형태소 분석
• 언어를 분석하기 위한 기본 단위
• 의미를 가지는 요소로서 더 이상 분석할 수 없는 가장 작은 문
법 단위
– 단순어의 어근, 어미, 조사, 접두사, 접미사 등
– 더 이상 분석하면 뜻을 잃어버리게 됨
• 용언의 불규칙활용 등의 단어에 대해서 원형 복원해야 함
• AKA, lexical analysis
12
형태소 분석

형태소 분석 (어휘 분석)의 과정
– 전처리 단계 → 후보 생성 단계 → 후보 선택 단계 → 후처리
단계
– 1. 전처리 단계 (형태소 분리)
• 문서로부터 형태소 분석의 대상이 되는 단어를 추출하고, 문장을 분리
하고, 숫자나 특수 문자열을 처리
• 형태소 분석의 단위는 띄어쓰기 단위로 된 문자열
– 한글, 영어: 용이함
– 일본어, 중국어: 문장을 단위로 하여 단어 분리 → 이 단계가 매우 중요
– 2. 후보 생성 단계
• 형태소 분리 과정과 원형 복원 과정을 거쳐 가능한 모든 분석 후보들을
생성
• 한국어의 형태소 분리 과정: 하나 이상의 형태소로 이루어진 입력 문자
열로부터 어근, 조사, 어미, 접두사, 접미사 등을 인식 (용도, 사전 단
위 고려)
– 예) ‘ 예뻐지다 ‘ → ‘ 예쁘’ +’어‘+ ‘지’ + ‘다’ or ‘예뻐지’ + ‘다’
• 원형 복원 과정: 활용이나 축약, 탈락과 같은 음운 현상으로 인하여 형
태론적 변형이 일어난 형태소에 대하여 원형을 복원
– 예) ‘아름다워’  ‘아름답’ + ‘어’ ( ‘ㅂ’불규칙 현상)
– 예) ‘나는’ (날아가는)  ‘날’ + ‘는’ (‘ㄹ’탈락 현상)
13
형태소 분석

형태소 분석 (어휘 분석)의 과정 (계속)
– 3. 후보 선택 과정
• 생성된 후보 형태소들을 단어 형성 규칙에 따라 최소한으로 확
장
• 후보 형태소들에 대한 어휘 사전의 검색과 결합 제약조건 등에
의해 최종적으로 올바른 후보를 선택
– 4. 후처리 단계
• 복합 명사나 사전 미등록어, 줄임말 등과 같이 언어 종속적이거
나 특이한 언어 현상들을 처리
• 형태론적 모호성(품사 모호성)을 내포하는 단어는 두가지 이상
결과 제시. 예) ‘나는’
– ‘나(명사, I) +는(조사)’
– '나(동사, produce)+는(어미)’
– '날(동사, fly)+는(어미)’
14
형태소 분석

형태소 분석 예
– 입력: working, shopping, dying, taking
– 목표: working → work + ing
–
shopping → shop + ing
–
dying → die + ing
–
taking → take + ing
– 1) 'ing' 삭제 후, 기본 사전 탐색
• 결과: work, shopp, dy, tak
– 2) 중복 자음 삭제 후, 사전 탐색
• 결과: shop, dy, tak
– 3) y로 끝나면 ie로 바꾼 후, 사전 탐색
• 결과: die, tak
– 4) 끝이 자음이면 e를 붙인 후, 사전 탐색
• 결과: take
15
Summary






자연언어 처리
자연언어 처리를 위한 문법
형태소 분석
파싱
자연언어 생성
자연 언어 응용 예
16