자연어 처리 (Natural Language Processing) (Lecture Note #27)

Slides:



Advertisements
Similar presentations
Chapter 2. Text Patterns 2.1 ~ 2.3 서울시립대 전자전기컴퓨터공학과 데이터마이닝 연구실 G 노준호.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
정의 의문사가 있는 의문문이 다른 문장의 일부가 될 때 주어와 동 사의 위치가 바뀌게 되는데 이것을 간접의문문이라고 한다. 간접의문문 A Do you know what time it is? I don’t understand why they are angry. No one.
→ 「 too+ 형용사 [ 부사 ]+to 부정사」는 ‘ 너무 ~ 해서... 할 수 없다 ’ 라는 의미 로 이때의 to 부정사는 정도를 나타내는 부사적 용법으로 쓰였다. too ~ to 용법 A → 「 so+ 형용사 [ 부사 ]+that+ 주어 +cannot+ 동사원형」으로.
문자코드 1 박 2 일 (4 조 ) 이경도 이준집 이수연 엄태규. 문자코드란 ? 문자나 기호를 컴퓨터로 다루기 위하여, 문자나 기호 하나하나에 할당 시키는 고유의 숫자를 말하는 것이다.
형태소 분석 형태소의 정의 형태소 분석 의미가 있는 최소의 단위 (minimally meaningful unit)
컴퓨터와 인터넷.
4D기술로 인한 책의 인터페이스 변화 : 디지로그북
Deep Learning.
Deep Learning.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System
Entity Relationship Diagram
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
3장 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
WJ543 인공지능 2003년도 제 2학기.
2. 형식언어 (Formal Language)
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
Multi Intelligence Theory
3강 한글 맞춤법 총칙.
컴퓨터과학 전공탐색 배상원.
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
Simulating Boolean Circuits on a DNA Computer
1. 현대 생활과 응용 윤리의 필요성 2. 윤리 문제의 탐구와 실천 3. 윤리 문제에 대한 다양한 접근
(Extensible Markup Language)
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
지식 표현과 논리 (Lecture Note #5)
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
2. 형식언어 (Formal Language)
프로그래밍 개요
5. Context-free 문법 5-1. 서 론 5-2. 유도와 유도 트리 5-3. CFG표기법.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
‘Chess’를 읽고 컴퓨터공학부 배상수.
Multi Intelligence Theory
프로그래밍 언어론 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
USN(Ubiquitous Sensor Network)
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
합집합과 교집합이란 무엇인가? 01 합집합 두 집합 A, B에 대하여 A에 속하거나 B에 속하는 모든 원소로 이루어진 집합을 A와 B의 합집합이라고 하며, 기호 A∪B로 나타낸다. A∪B ={x | x∈A 또는 x∈B}
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
Writing Machine 이용 시 주의 사항
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
텍스트 분석 기초.
알고리즘 알고리즘이란 무엇인가?.
Chapter 1 단위, 물리량, 벡터.
Chapter 1 단위, 물리량, 벡터.
창의적 공학 설계 < 사용자 중심의 공학설계 > : Creative Engineering Design
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
자연언어의 의미 자연언어 처리의 분석 단계 프로그래밍 언어와 같은 인공언어에 대응하는 개념, 인간이 일상적으로 사용하는 언어
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
Can Automatic Calculating Machines Be Said To Think?
제 3장. Regular Languages 와 Regular Grammars
텍스트 분석 ㈜ 퀀트랩.
3장 (2) 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
제 4 장 Record.
Automatic Music Transcription
수치해석 ch3 환경공학과 김지숙.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
자연언어 처리 인지과학 입문.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 02 Unit 4 3형식과 4형식 문장의 형태.
레크리에이션과 여가 배장섭.
 6장. SQL 쿼리.
퍼지 이론 (Lecture Note #12) 인공지능 이복주 단국대학교 컴퓨터공학과
꽃잎의 수로 피보나치 수열하기 장전초등학교 6학년 신찬유.
Presentation transcript:

자연어 처리 (Natural Language Processing) (Lecture Note #27) Modified from the slides by SciTech Media 자연어 처리 (Natural Language Processing) (Lecture Note #27) 인공지능 이복주 단국대학교 컴퓨터공학과

Outline 자연언어 처리 자연언어 처리를 위한 문법 형태소 분석 파싱 자연언어 생성 자연 언어 응용 예

자연언어 처리 자연언어의 의미 자연 언어 처리 역사 프로그래밍 언어와 같은 인공언어에 대응하는 개념, 인간이 일상적으로 사용하는 언어 자연언어를 컴퓨터로 처리하려고 하는 분야 기계 번역, 대화식 사용자 인터페이스 (음성 포함), 데이타베이스에서 자연어 질의 자연 언어 처리 역사 대표적 언어학자 Noam Chomsky 언어는 인간 정신 세계의 반영 변형을 부정하고 의미와 어휘의 역할 강조 초기 학자들의 생각 프로그램 언어 같은 인공 언어를 확장하면 자연어 처리가 쉽게 될 것 결국 실패: 인간은 기억된 상식, 전문 지식을 이용하여 추론

자연언어 처리 자연언어 처리의 분석 단계 형태소 분석 (morphological analysis) 입력된 문자열을 분석하여 형태소라는 자연언어 분석을 위한 기본 단위로 분류하는 것 (형태소 결합 규칙을 역으로 적용) 예) 감기는 → ‘감기 (명사) + 는 (조사)’ 구문 분석 (syntactic analysis) 형태소들이 결합하여 문장이나 구절을 만드는 구문 규칙에 따라서 문장 내에서 각 형태소들이 가지는 역할 (주어, 목적어)을 분석하는 것 예) 직장인은 휴일을 쉰다. (직장인은 주어, 쉰다는 서술어 )

자연언어 처리의 분석 단계 의미 분석 (semantic analysis) 실용 분석 (pragmatic analysis) 구문 분석의 결과를 해석하여 문장이 가지는 의미 (형태소의 의미)를 분석하는 것 예) 배가 간다. 배를 차로 바꾸면 차가 간다. 차가 간다 와 배가 간다는 구문적으로 올바른 문장. 배가 먹는 배로 의미한다면 이 문장은 의미상으로 올바른 문장 아님 의미 분석은 간단하지 않고, 실제 문제 영역에 따라 그 처리 방법이 달라짐. 실용 분석 (pragmatic analysis) 문장이 실세계와 가지는 연관 관계를 분석하는 것 예) 지금 시간을 아니? 라는 문장 현재 시간을 아느냐 + 나에게 알려 달라는 의미도 포함 실세계 지식이나 상식 등을 토대로 화자와 청자의 대화 의도를 분석하는 것이 요구한다. 이와 같은 실용 분석은 자연어로 된 질의어를 분석하거나 사용자 인터페이스를 구축하는데 중요 보다 완전한 자연어 처리: 음성학적 지식, 주제 관련분야 지식 필요

자연어 처리의 예 자연어 처리의 예: "Mr. Kim’s family enjoyed a barbeque party.“ 의미 분석 단계: “Mr. Kim’s family”라는 사람이 “a barbeque party라는 대상을 “enjoyed”라는 행위를 수행

자연어 처리의 예 자연어 처리의 예: "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의 형식 문법 무제약 문법 (unrestricted grammar) 문맥 의존 문법 (context-sensitive grammar) 문맥 자유 문법 (context-free grammar) 정규 문법 (regular grammar)

자연언어 표현을 위한 문법 무제약 문법 (unrestricted grammar) 가장 일반적인 문법 A  W A  (N  T)* - {} // 즉 A는 공백 문자가 아니어야 함 W  (N  T)* ,   (N  T)* 위축형 문법 (contracting grammar) Wi  Wi+1 에서 Wi+1이 Wi보다 길이가 짧아질 수 있다 cD  c 문맥 의존 문법 (context-sensitive grammar) A  N // 즉 A 비단말 기호가 W  (N  T)* - {} // 공백 아닌 단말 및 비단말로 대치될 수 있음 단 A앞뒤에 ,  일치해야 함. 즉 문맥 영향 받음

자연언어 표현을 위한 문법 문맥 자유 문법 (context-free grammar) 정규 문법 (regular 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

자연언어 표현을 위한 문법 예제 11.2 정규 문법, 문맥자유 문법 자연 언어는? 문맥 의존 문법 L1 = {anbn| n  0} L2 = {anbn| n  1} 어느 것이 문맥 자유 언어인가? L2: S  aSb | ab [문맥 자유] L1: S  aSb | ab |  [무제약 언어] 정규 문법, 문맥자유 문법 가장 많이 연구됨 프로그래밍 언어는? 문맥 자유 문법 자연 언어는? 문맥 의존 문법 효율적 처리 방법 아직 없음

자연 언어의 이해 자연언어의 이해하는 방법 문장을 형태소 (morpheme) 분석과 파싱 (parsing) 이라는 두 단계로 분석 형태소 분석: 단어 단위로 분리된 입력 문자열로부터 각각의 형태소를 분리하고, 변형이 일어난 단어에 대해서는 원형을 복원하는 과정 파싱 (parsing): 문장의 구조가 문법이론에 따라 구조적으로 맞게 되어 있는지를 분석하는 과정 형태소 분석 언어를 분석하기 위한 기본 단위 의미를 가지는 요소로서 더 이상 분석할 수 없는 가장 작은 문법 단위 단순어의 어근, 어미, 조사, 접두사, 접미사 등 더 이상 분석하면 뜻을 잃어버리게 됨 용언의 불규칙활용 등의 단어에 대해서 원형 복원해야 함 AKA, lexical analysis

형태소 분석 형태소 분석 (어휘 분석)의 과정 전처리 단계 → 후보 생성 단계 → 후보 선택 단계 → 후처리 단계 1. 전처리 단계 (형태소 분리) 문서로부터 형태소 분석의 대상이 되는 단어를 추출하고, 문장을 분리하고, 숫자나 특수 문자열을 처리 형태소 분석의 단위는 띄어쓰기 단위로 된 문자열 한글, 영어: 용이함 일본어, 중국어: 문장을 단위로 하여 단어 분리 → 이 단계가 매우 중요 2. 후보 생성 단계 형태소 분리 과정과 원형 복원 과정을 거쳐 가능한 모든 분석 후보들을 생성 한국어의 형태소 분리 과정: 하나 이상의 형태소로 이루어진 입력 문자열로부터 어근, 조사, 어미, 접두사, 접미사 등을 인식 (용도, 사전 단위 고려) 예) ‘ 예뻐지다 ‘ → ‘ 예쁘’ +’어‘+ ‘지’ + ‘다’ or ‘예뻐지’ + ‘다’ 원형 복원 과정: 활용이나 축약, 탈락과 같은 음운 현상으로 인하여 형태론적 변형이 일어난 형태소에 대하여 원형을 복원 예) ‘아름다워’  ‘아름답’ + ‘어’ ( ‘ㅂ’불규칙 현상) 예) ‘나는’ (날아가는)  ‘날’ + ‘는’ (‘ㄹ’탈락 현상)

형태소 분석 형태소 분석 (어휘 분석)의 과정 (계속) 3. 후보 선택 과정 4. 후처리 단계 생성된 후보 형태소들을 단어 형성 규칙에 따라 최소한으로 확장 후보 형태소들에 대한 어휘 사전의 검색과 결합 제약조건 등에 의해 최종적으로 올바른 후보를 선택 4. 후처리 단계 복합 명사나 사전 미등록어, 줄임말 등과 같이 언어 종속적이거나 특이한 언어 현상들을 처리 형태론적 모호성(품사 모호성)을 내포하는 단어는 두가지 이상 결과 제시. 예) ‘나는’ ‘나(명사, 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

Summary 자연언어 처리 자연언어 처리를 위한 문법 형태소 분석 파싱 자연언어 생성 자연 언어 응용 예