“자연어처리” 소개 (Natural Language Processing) 서정연교수 Office: R관 908 Email: seojy@sogang.ac.kr
Natural Language Processing 자연언어처리란 기계가 인간의 언어를 이해하고 생성할 수 있도록 하기 위한 연구 응용분야 지능형 로봇: Terminator, Bicentennial Man, I Robot, … 대화 기능, 지능형 상호작용, … Ubiquitous web browsing: IPTV, Mobile PMP, … 문서 요약, 문서 분류, 문서 클러스터링, … 정보검색: Naver, Google, … 키워드 검출, 문서 유사도 측정, … 기계번역: 한영/영한, 일한/한일, 중한/한중, … 문서 작성 도움 기능: MS Word, 한글, …. 철자교정, 문법 교정, ….
Dialog System 인간의 대화는 예: 철수는 어제 어항을 떨어뜨렸다. 그는 울고 말았다. 대화 참여자간의 공유지식(Shared Knowledge)를 가정하고 벌어지는 행위 예: 철수는 어제 어항을 떨어뜨렸다. 그는 울고 말았다. 누가 울었는가? 왜 울었는가? 위의 두 문장을 이해하기 위해서 필요한 지식 어항을 떨어뜨리는 event/action 를 기점으로 연쇄적으로 일어날 수 있는 event/action/state 들에 관한 지식 한 문장의 의미 분석을 위한 지식 한 단어의 의미에 관한 지식 한 문장의 문법적인 분석에 관한 지식 ……
자연언어처리 시스템의 구성도 입력문장 형태소 분석기 구문분석기 문법 사전 의미분석기 생성사전 생성문법 각종 지식기반 (Knowledge-Base) 담화(discourse) 분석기 출력문장 문장생성기
어절, 단어, 형태소 - 어절 - 단어 / 형태소 예: 나는 책을 읽었다. 파릇파릇한 싹이 나는 계절이다. 양쪽에 공백을 갖는 띄어쓰기 단위의 문자열 - 단어 / 형태소 단일 품사를 갖는 단위 / 사전에 등록되어 있는 색인어의 집합 예: 나는 책을 읽었다. 파릇파릇한 싹이 나는 계절이다. 하늘을 나는 새를 보라. I tried to go to school. He tries to pass the exam.
형태소 분석기의 개념도 형태소 분석 문법 tries try+s, v, 단수, 3인칭 형태소 분석기 나는 나 + 는 날다 + 는 V + s -> 3인칭, 단수 명사+조사 동사+어미 형태소 분석 문법 tries try+s, v, 단수, 3인칭 형태소 분석기 나는 나 + 는 날다 + 는 나다 + 는 사전 try : V 나 : 명사 날다 : 동사 나다 : 동사 는 : 조사, 어미
형태소 분석기와 사전 - 사전이란 - 형태소 분석기와 사전: 형태소 분석의 개념도 언어의 어휘적 정보를 저장하는 장소 표제어 + 어휘정보(품사, 의미표지, 대역어 등) 표제어 : 형태소 수준 - 형태소 분석기와 사전: 어절 내에 있는 모든 형태소(사전 표제어)를 사전을 이용하여 찾아내고, 찾아낸 형태소들 사이의 결합관계의 적합성을 검사 형태소 분석의 개념도 나는 -> 형태소 분석기 -> 나+는, 날(다)+는, 나(다)+는 tries -> morphological analysis -> try + s, v, single
한국어 형태소 분석 방법 - 형태소 분석에서 다루어야 할 현상들 - 접사 처리 tries -> try + s, digger -> dig + er 읽어라 -> 읽 + 어라, 한국에서 -> 한국 + 에서 (주의) 마이크로 -> 마이크 + 로 민주주의 -> 민주주 + 의 - 불규칙 현상 및 음운 현상 하얀 -> 하얗다 + 는 - 복합어 처리 선진한국 -> 선진 + 한국, 미래지향 -> 미래 + 지향 - 미등록어 처리 항공우주연구소에서는 -> <항공우주연구소> + 에서 + 는
한국어 형태소 분석 방법 - 사전 검색을 통해 어절을 형태소 단위로 분절 - 결합관계의 문법적 적합성 검사를 위해 형태소 분석 문법 검사 - "과학자들에게"에 대한 분석 예 1) "과학자들에게" 사전 검색 -> 실패 2) "과학자들에" 사전 검색 -> 실패 3) "과학자들" 사전 검색 -> 실패 4) "과학자" 사전 검색 -> 성공 5) "들에게" 사전 검색 -> 실패 6) "들에" 사전 검색 -> 실패 7) "들" 사전 검색 -> 성공 8) "에게" 사전 검색 -> 성공 9) 결합관계 문법검사 성공 (명사 + 접미사 + 조사)
한국어 형태소 분석 방법 - "나는"에 대한 분석 예 - 여러가지 가능성을 모두 분석할 필요 a) 나(I) + 는 b) 날다(fly) + 는 c) 나다(born, come out, happen, . . .) + 는 - 여러가지 가능성을 모두 분석할 필요 1) 나는 오늘 형태소 분석에 대한 연구를 진행하고 있습니다. (a) 2) 하늘을 나는 기러기는 가을의 느낌을 줍니다. (b) 3) 싹이 나는 것을 보니 마음이 풍요로워 집니다. (c) 4) 저녁 식탁에 김이 나는 찌게를 준비하였습니다. (d)
Grammars and Parsing 문법 (Grammar) : 구문 분석기 (Parser) : 문장의 구조적 성질을 규칙으로 표현한 것 구문 분석기 (Parser) : 문법을 이용하여 문장의 구조를 찾아내는 process 문장의 구문 구조는 Tree 형태로 표현할 수 있다. 즉, 몇 개의 형태소들이 모여서 구문 요소(구: phrase)를 이루고, 그 구문 요소들간의 결합구조를 Tree형태로써 구문 구조를 이루게 된다. S NP VP N V ART John ate the apple
Grammars Grammar : a set of rewrite rules Context Free Grammar (CFG) : 각 rule의 LHS(Left-Hand side)가 하나의 symbol로 이루어진 문법 규칙 Grammar Rule 을 이용해서 sentence를 derive할 수도 있고(sentence generation), analyze 할 수도 있다(sentence parsing). (ex) S NP VP NP ART N NP N VP V NP
Sentence Generation (ex) By rewrite rule S NP VP N VP John VP John V NP John ate ART N John ate the N John ate the apple.
Sentence Parsing Bottom-up parsing vs. Top-down parsing 입력 문장의 단어로부터 시작하여 rewrite 규칙을 backward로 적용하여 S 하나만 나타날 때까지 적용 Top-down parsing : S부터 rewrite해서 주어진 sentence가 generate될 때까지 적용한다. 만일 모든 가능성을 다 적용해도 그 문장이 나타나지 않으면 parsing fail이다.
Bottom-up Parsing (ex) John ate the apple. N V ART N NP V ART N NP V NP NP VP S S NP VP N V ART John ate the apple
Good Grammar NLP에서는 임의의 문장을 분석해 내어야 하므로 매우 큰 Grammar가 요구된다. 이 때 좋은 문법으로써 고려하여야 할 사항은 다음과 같다. Generality : 해당 문법이 cover할 수 있는 sentence의 종류가 다양해야 한다. Selectivity : 해당 문법이 올바른 sentence와 non-sentence를 잘 구별할 수 있어야 한다. Understandability : 문법이 복잡하지 않고 문법을 개발하는 사람이나 사용자가 이해하기 쉽도록 simple해야 한다. * 보통 문법을 개발할 때는 의미있는 subtree들의 category를 잘 구별해야 하는데, 이런 subtree를 구(phrase)라고 한다.
의미 해석 의미해석이란 의미 해석의 어려움 문장 (symbol string) 에 표현된 각 단어가 의미하는 개념과 그 문장이 표현하고자 하는 “그 개념(단어)들 간의 관계”를 규명하는 프로세스 의미 해석의 어려움 인간의 정신 활동에 대한 표현의 어려움 Symbol to Meaning (i.e., concept) mapping computational model 구현의 어려움 real world knowledge 구축의 어려움
의미해석 문법적으로는 맞지만 의미적으로 틀린 문장들 사람이 사과를 먹는다. (o) 사람이 비행기를 먹는다. (x) 구문 구조 의미적 제약 S NP VP N V 사람 비행기 먹다 사과 [먹다 [ agent : 먹을수 있는 주체 object : 먹을 수 있는 대상 ....]]
담화 분석 (Discourse Analysis) 담화분석이란 지금 입력된 문장을 전체 문맥과 연결하면서 정확하게 그 의미를 분석하는 것 예1: “그는 울고 말았다.” 철수는 어항을 떨어뜨렸다. 그는 울고 말았다. 철수는 우승을 했다. 그는 울고 말았다. 예2: (로봇의 응답이 어떻게 되어야 하나?) 사용자: 저기 책상 위의 컵을 가져오너라. 로봇: 1. 네 컵을 가지고 가겠습니다. 2. 물을 드시려고 하십니까? 3. 약을 드시려고 하십니까?
멀티모달 대화 인터페이스 멀티모달 상호작용 관리자의 필요성 지능형 상호작용 관리 기능 멀티모달 표현 분석(대용어), 사용자의 의도 분석, 로봇의 의도 생성(communicative acts, domain physical goal 멀티모달 상호작용 관리자의 필요성 노인 : “탁자 위의 저 컵 좀 가지고 와.” 로봇 : 약을 드시려고 하십니까? 노인 : “그래” 로봇 : (컵을 가지러 탁자에 갔으나, 컵에 물이 없음을 확인한 후) 컵에 물이 없습니다. 떠 오겠습니다. 노인 : “그래라.” 또는 “아니야, 물은 여기 있으니까 컵만 가지고 와.” 약을 드시려고 하십니까. 저 컵 좀 가지고 와 지능형 상호작용 지능형 상호작용 관리 기능 사용자의 의도 파악을 위한 추론 사용자 모델을 이용한 지능형 대응 전략 로봇의 대화의도 결정 및 대화 생성 로봇의 영역 목적/행위 생성
채팅 시스템 채팅이란? 예: SK텔레콤 1mm 서비스 목적지향 대화가 아니고, 큰 의미 없이 말을 이어가면서 대화하는 것 대화를 통해 어떤 목표를 달성하는 것이 아니고 어색하지 않게 말을 이어만 가면 목적달성 예: SK텔레콤 1mm 서비스 사용자: 방가방가 시스템: 안녕 나도 반가워 사용자: 취미가 뭐냐 시스템: 음 글쎄, 음악 듣고 맛있는 것 먹기 사용자: 이 근처에 좋은 맛집 있으면 추천해봐
질의응답 시스템(Question/Answering System) 질문에 대한 정답추천 관련 홈페이지 직접 연결
질의응답 시스템 질문에 대한 정답추천 관련 홈페이지 직접 연결
Search engine vs. Q/A engine As – Is (기존의 검색 시스템) To – Be (질의 응답 시스템) 기능 측면에서의 질의 응답 결과 1. 해당되는 문서를 단순 나열함. 2. 문서 속에서 정답 검색이 여전히 필요. 3. 정보 검색 과정에 많은 시간 소요. 4. 사용자의 문서 활용도가 매우 낮음. 정확도 측면에서의 질의 응답 결과 1. 질문에서 키워드만을 추출. 2. 키워드에 대한 통계적 검색 결과만 제시. 3. 정확한 의도 분석이 불가능. 기능 측면에서의 질의 응답 결과 1. 문서에서 정답을 직접 찾아서 제시. 2. 정답 검색 과정 시간 단축. 3. 사용자 문서 활용도 증가 인지도 향상. 4. 웹 문서뿐 아니라 데이터베이스까지 검색 5. 특정 문서 직접 제시 가능 정확도 측면에서의 질의 응답 결과 1. 질문의 어휘 구조, 질문 의도까지 파악. 2. 정확한 질의 분석 의미있는 부분만 검색. 3. 검색 성능 최적화 가능. 질문 : “서정연 교수님의 전화번호는?” 1. 서정연+교수+전화+번호 문서 내에서 단순히 발현되는 정도 측정. “서정연”, “교수”, “전화”, “번호” , “전화번호” 라는 단어가 들어간 불필요한 모든 문서들을 제시 질문 : “서정연 교수님의 전화번호는?” 1. 전화번호에 관한 질문(서정연 교수) 우선 전화번호에 관한 질문이라는 것이 파악 되고, 그 대상이 서정연 교수라는 것을 인식 하여 정답 추출 웹사이트를 위한 지능형 정보 검색 에이전트. 사용자 질의 의도를 정확하게 파악하여 정확도를 최대로 높이는 진정한 의미의 Vertical 검색엔진.