190 likes | 581 Views
자연언어 처리. 자연언어의 의미 프로그래밍 언어와 같은 인공언어에 대응하는 개념 , 인간이 일상적으로 사용하는 언어 자연언어를 컴퓨터로 처리하려고 하는 분야 기계 번역 , 대화식 사용자 인터페이스 ( 음성 포함 ), 자연어 질의 자연언어 처리의 분석 단계 형태소 분석 (morphological analysis) 입력된 문자열을 분석하여 형태소라는 자연언어 분석을 위한 기본 단위로 분류하는 것 ( 형태소 결합 규칙을 역으로 적용 ) 예 ) 감기는 → ‘감기 ( 명사 ) + 는 ( 조사 )’
E N D
자연언어 처리 • 자연언어의 의미 • 프로그래밍 언어와 같은 인공언어에 대응하는 개념, 인간이 일상적으로 사용하는 언어 • 자연언어를 컴퓨터로 처리하려고 하는 분야 • 기계 번역, 대화식 사용자 인터페이스(음성 포함), 자연어 질의 • 자연언어 처리의 분석 단계 • 형태소 분석(morphological analysis) 입력된 문자열을 분석하여 형태소라는 자연언어 분석을 위한 기본 단위로 분류하는 것(형태소 결합 규칙을 역으로 적용) 예) 감기는 → ‘감기(명사) + 는(조사)’ • 구문 분석 (syntactic analysis) 형태소들이 결합하여 문장이나 구절을 만드는 구문 규칙에 따라서 문장 내에서 각 형태소들이 가지는 역할(주어, 목적어)을 분석하는 것 예) 직장인은 휴일을 쉰다. (직장인은 주어, 쉰다는 서술어 )
자연언어 처리의 분석 단계 • 의미 분석 ( semantic analysis ) 구문 분석의 결과를 해석하여 문장이 가지는 의미(형태소의 의미)를 분석하는 것 예) 배가 간다. • 배를 차로 바꾸면 차가 간다. 차가 간다 와 배가 간다는 구문적으로 올바른 문장. • 배가 먹는 배로 의미한다면 이 문장은 의미상으로 올바른 문장 아님 • 의미 분석은 간단하지 않고, 실제 문제 영역에 따라 그 처리 방법이 달라짐. • 실용 분석 ( pragmatic analysis ) 문장이 실세계와 가지는 연관 관계를 분석하는 것 예) 지금 시간을 아니? 라는 문장 • 현재 시간을 아느냐 + 나에게 알려 달라는 의미도 포함 • 실세계 지식이나 상식 등을 토대로 화자와 청자의 대화 의도를 분석하는 것이 요구한다. • 이와 같은 실용 분석은 자연어로 된 질의어를 분석하거나 사용자 인터페이스를 구축하는데 중요 • 보다 완전한 자연어 처리: 음성학적 지식, 주제 관련분야 지식 필요
자연어 처리의 예 • 자연어 처리의 예 • 예제 문장: "Mr. Kim’s family enjoyed a barbeque party."
자연언어 표현을 위한 문법 • 문법 인간의 언어 능력에 의해 해석되어 무한한 자연언어를 생성할 수 있는 유한한 규칙으로 정의(formal grammar) • 자연언어: 문맥 의존 언어 • 프로그래밍 언어: 문맥 자유 언어 • 형식 언어 이론에서의 문법 G ={N, T, S, P}로 정의 N: 문법 기호에 해당하는 비단말 기호 ( nonterminal symbol ) T: 단말 기호 ( terminal symbol ) S: 시작기호로서 대개 문장을 나타내는 문법 기호가 시작기호 P: 시작기호 S로부터 시작한 유도 과정을 통하여 단말 기호의 열이 얻어지기까지 적용되는 생성규칙들의 집합 • Chomsky의 형식 문법 • 무제약 문법 ( unresticted grammar ) • 문맥 의존 문법 ( context-sensitive grammar ) • 문맥 자유 문법 ( context-free grammar ) • 정규 문법 ( regular grammar )
자연 언어의 이해 • 자연언어의 이해하는 방법 문장을 형태소 분석과 파싱( parsing ) 이라는 두 단계로 분석 • 형태소 분석: 단어 단위로 분리된 입력 문자열로부터 각각의 형태소를 분리하고, 변형이 일어난 단어에 대해서는 원형을 복원하는 과정 • 파싱 ( parsing ): 문장의 구조가 문법이론에 따라 구조적으로 맞게 되어 있는지를 분석하는 과정 • 형태소 분석 • 언어를 분석하기 위한 기본 단위 • 의미를 가지는 요소로서 더 이상 분석할 수 없는 가장 작은 문법 단위 → 단순어의 어근, 어미, 조사, 접두사, 접미사 등 → 더 이상 분석하면 뜻을 잃어버리게 됨 • 용언의 불규칙활용 등의 단어에 대해서 원형 복원해야 함 • lexical analysis
형태소 분석 • 형태소 분석( 어휘 분석 )의 과정 전처리 단계 → 후보 생성 단계 → 후보 선택 단계 → 후처리 단계 • 전처리 단계(형태소 분리) • 문서로부터 형태소 분석의 대상이 되는 단어를 추출하고, 문장을 분리하고, 숫자나 특수 문자열을 처리 • 형태소 분석의 단위는 띄어쓰기 단위로 된 문자열 • 한글, 영어: 용이함 • 일본어, 중국어: 문장을 단위로 하여 단어 분리 → 이 단계가 매우 중요 • 후보 생성 단계 • 형태소 분리 과정과 원형 복원 과정을 거쳐 가능한 모든 분석 후보들을 생성 • 한국어의 형태소 분리 과정: 하나 이상의 형태소로 이루어진 입력 문자열로부터 어근, 조사, 어미, 접두사, 접미사 등을 인식(용도, 사전 단위 고려) 예) ‘ 예뻐지다 ‘ → ‘ 예쁘’ +’어‘+ ‘지’ + ‘다’ or ‘예뻐지’ + ‘다’ • 원형 복원 과정: 활용이나 축약, 탈락과 같은 음운 현상으로 인하여 형태론적 변형이 일어난 형태소에 대하여 원형을 복원 예) ‘아름답’ + ‘어’ 아름다워로 되는 ‘ㅂ’불규칙 현상 ‘나는’ ‘날’ + ‘는’ 과 같은 ‘ㄹ’탈락 현상
형태소 분석 • 형태소 분석( 어휘 분석 )의 과정 전처리 단계 → 후보 생성 단계 후보 선택 단계 → 후처리 단계 • 후보 선택 과정 • 생성된 후보 형태소들을 단어 형성 규칙에 따라 최소한으로 확장 • 후보 형태소들에 대한 어휘 사전의 검색과 결합 제약조건 등에 의해 최종적으로 올바른 후보를 선택 • 후처리 단계 • 복합 명사나 사전 미등록어, 줄임말 등과 같이 언어 종속적이거나 특이한 언어 현상들을 처리 • 형태론적 모호성(품사 모호성)을 내포하는 단어는 두가지 이상 결과 제시 예) ‘나는’ ‘나(명사, I) +는(조사)’ '나(동사, produce)+는(어미)’ '날(동사,fly)+는(어미)’
형태소 분석 예 입력: 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
파싱 Ⅰ • 파싱(Parsing) • 입력 문장을 문장에서 의미있는 단위들에 해당하는 계층 구조로 변환하는 작업 • 파싱을 하기 위한 많은 방법들의 공통적 고려사항 두가지 1) 언어에서 허용하는 문장의 구조를 형식적으로 정의하는 체계인 문법 • 문법을 표현하는 방법은 생성 규칙 또는 문법 규칙들의 집합을 사용하는 것 2)파싱 기법으로서 입력 문장의 구조를 문법에 따라 분석하는 방법 • 문장 구조를 표현하는 보편적인 방법은 트리를 사용하는 것 → 파싱 트리 → 전체 문장이 어떤 부분 구조들로 분리되는지를 명확하게 보여줌. S 규칙1) S → NP VP 규칙2) NP → ART NOUN 규칙3) NP → NAME 규칙4) VP → VERB NP 규칙5) VP → VERB 규칙6) NAME → Bill 규칙7) ART → a | an | the 규칙8) VERB → bought 규칙9) NOUN → book VP NP (S (NP (NAME Bill)) (VP (VERB bought) (NP (ART the) (NOUN book)))) NAME VERB NP Bill bought ART NOUN the book
파싱 Ⅱ • 자연언어 문장에 대한 트리 구조 생성을 위한 요소 • 단어 • 문장을 구성하는 최소 단위로서, 문장을 구성하는 트리 구조에서 단말 노드에 나타남.(각 단어는 문법적인 품사를 가진다.(bought는 VERB)) • 구문 기호 • 트리 구조의 비단말 노드에 나타나는 문법적 구조들에 대한 이름 • S : 문장, NP : 명사구, VP : 동사구 등 • 문법 규칙 • 입력된 단어열이 일정한 규칙에 맞게 구성되어야 문장이 되는 규칙 • 구문기호가 어떤 다른 기호로 다시 구성되는가를 정의 • 자연언어의 문법 규칙을 기술하는 가장 일반적인 방법 → 문맥 자유 문법 • 입력된 문장에 대하여 트리구조를 분석해 내는 과정 • 하향식 파싱 • 트리구조의 최상단을 가리키는 문장 기호 S로부터 시작하여, 이 S를 문법 규칙에 따라 반복 적용함으로써 단어들의 열인 문장을 얻는 방법 • 상향식 파싱 • 단어들의 연속인 문장으로부터 각 단어들을 품사 기호로 변환하고, 그 중의 일부 연속된 부분을 규칙에 의해 묶어서 새로운 기호로 바꾸어 준다.
하향식과 상향식의 예 • 하향식: • S → NP VP(규칙 1) • → NAME VP (규칙 3) • → Bill VP (규칙 6) • → Bill VERB NP (규칙 4) • → Bill bought NP (규칙 8) • → Bill bought ART NOUN (규칙 2) • → Bill bought the NOUN (규칙 7) • → Bill bought the book (규칙 9) • 문법규칙의 적용: 전방향 규칙 적용 • (Forward rule apply) 상향식: Bill bought the book → NAME bought the book(규칙 6) → NAME VERB the book (규칙 8) → NAME VERB ART book (규칙 7) → NAME VERB ART NOUN (규칙 9) → NP VERB ART NOUN (규칙 3) → NP VERB NP (규칙 2) → NP VP (규칙 4) → S (규칙 1) 문법규칙의 적용: 역방향 규칙 적용 (Backward rule apply)
파싱 Ⅲ • 파싱 기법과 관련된 모호성 • 구조적 모호성 • 문법 규칙에 따라 문장의 구조를 분석할 때 두 가지 이상의 구조로 분석될 수 있는 성질 예) "Bill went to the park with the peacocks." (pp. 287 그림 11.4) • 어휘적 모호성 • 한 단어가 두 가지 이상의 품사로서 사용되는 성질 예) "Time flies like an arrow." (pp. 288 그림 11.5) 1) flies: 동사, like: 전치사 2) flies: 명사, like: 동사 the park with the peacocks went to Bill
파싱을 수행하는 대표적 기법 • 확장 전이망 (Augmented Transition Network; ATN) • 파싱 과정이 전이망 안의 시작 상태에서 종료 상태로의 상태 전이로 기술 • Tomita 파싱 • 프로그래밍 언어 파싱을 위한 LR 파싱 알고리즘을 자연언어를 파싱하기에 적합하도록 확장된 방법 • 차트 파싱 (Chart Parsing) • 파싱의 중간 과정에서 구해지는 모든 부분구조들을 저장하여 선택적인 파싱 경로를 따라 이들을 재사용함으로써 백업을 피하는 방법 • 차트: 파싱의 중간 과정의 부분적인 구조를 기록하는 표 • 상향식 파싱: 문법 규칙에서 우변의 기호들이 순서대로 일치하면 좌변의 기호를 갖는 새로운 구조 생성
차트 파싱 알고리즘 • 기본 자료구조: 차트, 키 리스트 • 차트: 완성, 미완성 문법 구조들에 대한 기록 • 키 리스트: <C, pi, pj>의 리스트 형태 • C: 완성구조에 최종적으로 적용된 문법규칙의 우변 기호 • pi, pj: 해당 구조가 입력 문장에서 위치하는 구간의 시작과 끝 위치 • 과정 • 입력 문장에 대해서 규칙 우변의 시작 기호들을 하나씩 차례로 매칭 • 우변의 기호가 매치된 경우, 매치된 기호와 앞으로 매치될 기호 사이에 점을 찍는 표현 방법 사용 • 규칙의 다음 기호를 순서대로 매칭하여 규칙을 확장 예) "He ate the pie"의 상향식 차트 파싱 문법: 규칙 1. S → NP VP 규칙 2. NP → ART NOUN 규칙 3. NP → PRON 규칙 4. VP → VERB NP 단어 사전: PRON = {He}, ART={the}, VERB={ate}, NOUN={pie}
차트 파싱 과정 → 차트 구축 방향(상향식) 규칙 매칭 과정
자연언어의 생성 • 자연언어의 생성 • 인간과 컴퓨터간의 의사 전달을 위해 컴퓨터 내부의 지식표현으로부터 문법과 사전을 이용하여 그에 해당하는 자연언어 문장을 만들어 내는 과정(cf. 자연언어 이해는 입력 언어를 의미있는 구조로 변환) • 대화식 사용자 인터페이스 시스템 • 자연어 질의 응답 시스템 • 전문가 시스템의 결론 및 설명 시스템 • 데이타베이스의 내부 데이터를 사용자에개 출력 → 내부 정보 표현이 사용자는 이해가 힘들다. → 자연언어로 표현 → 사용자의 이해도 향상 • 비대화식 시스템(문서 생성) • 기계 번역 시스템 • 보고서 생성기: 명세로부터 정해진 양식의 문서 자동 생성
자연언어 생성과정 • 자연언어의 생성 방법 • 여러 가지 지식을 사용하여 나타내고자 하는 정보를 선택하고, 문법 구조와 어휘의 결정을 통해 문장을 생성 • 따라서, 생성되는 문장은 주어진 명제적 지식, 사용하는 언어학적 방법론, 화자의 의도, 상황등에 따라 다르게 표현(예: 동일한 의미의 문장을 주어를 바꾸어 상이한 표현구조를 생성) • 초기의 자연언어 생성 • 문법, 어휘에 대한 정보없이 단순 패턴의 대치 및 변형 • 예) ELIZA: 의사와 정신병환자의 단순 대화 모방 → 상황에 대한 융통성 부족, 제한된 유형의 문장만 출력 • 점차 문법과 어휘에 대한 지식을 기반으로 한 문장 생성 방식 개발
자연언어 처리의 응용예 • 초기 50-60년대 시스템 • SAD-SAM:가족관계에 대한 영어문장 분석하는 시스템 • 데이타베이스, 추론, 문맥자유 문법 이용 • 모호성 문장의 한계, 추론의 한계→ 자연언어 이해 분야의 가능성 확인 • GAT: 초기의 대표적 기계번역 시스템(소련어 물리학 문서 → 영어) • 단어와 단어를 1:1로 대치, 언어학적 이론 비사용 • 질이 매우 낮으나 문서를 대충 훑어 볼 수 있는 수준 • 70년대 시스템 • LUNAR: 달표면 지질학에 대한 정보를 자연어로 검색 • 자연어에 의한 사용자 인터페이스의 가능성에 대한 연구 • 어휘사전, 확장 전이망에 의한 영어구문 규칙, DB 질의용 언어 처리기 • 지질학 문장 유형, 데이타베이스 용어 → 응용 영역 제한, 복잡한 문장에 어려움 • SYSTRAN: GAT의 개발자에 의한 최초 상품화된 MT 시스템 • NASA에서 문서 번역을 위해 채택 • 러-영, 영-불, 불-영, 영-이 등의 번역 시스템이 차례로 개발 • 번역수준은 낮으나 중요치 않은 자료 번역에는 충분히 사용 가능
80년대 • 80년대 중반 인공지능 분야의 반성 • 주어진 문제의 풀이 기술보다는 확장가능한 기술로의 관심 이동 • Nagao: 예제기반 분석 시스템 • 새로운 문장 분석시 기존의 분석 저장된 자료를 참고 • 가장 가까운 형태를 찾고 이에 따라서 문장을 분석 • 일본의 경우 기계번역에 대한 연구를 가장 많이 함. 기업체 중심 연구 • 유렵: EC 국가들의 9개 언어를 상호번역: EUROTRA 1단계 완료 • 90년대 • 정리된 언어학 이론을 자연언어 처리에 이용 • 대규모 지식을 이용한 문장 분석 및 이해 → 대량의 정보처리 요구 • 앞으로의 컴퓨터 기술의 발전을 기대 • 기타 • 앙꼬르 • 인터넷 정보와 연계한 많은 연구의 필요성