본문 바로가기

자연어 처리 intro 본문

딥러닝/자연어처리

자연어 처리 intro

jaegomhoji 2022. 3. 2. 19:47

NLP ( Natural Language Processing ) 

* 컴퓨터 과학에서 어떻게 하면 컴퓨터와 사람이 자연어를 통해서 소통할 수 있을까? 

* computational linguistics 라고도 썼었다. 하지만 CL은 컴퓨터를 통해서 언어학을 연구하는 느낌에서 차이가 있다. 

 

 

Goals of the NLP , 자연언어처리의 목표 

컴픂터가 우리 이메일이나 책 내용 요약 등 언어를 이해한다면 굉장히 유용할 것이다 

언어의 모호성 ambiguity가 있어서 굉장히 많은 어려움이 있다.

> 컴퓨터가 어떻게 하면 human language 등 자연어를 잘 처리할 수 있게 할 것인가?

 

 

관련 분야들 

- Artificial Intelligence , 인공지능 기법과 자연언어처리 연구는 상당히 밀접하다 

- Formal Language ( Automata ) Theory , 자연언어처리로 어디까지 가능할 지 판단할 수 있다

- Machine Learning

- Linguistics , 지금까지도 많은 언어학 계의 아이디어가 자연언어 처리에 상당한 영향을 주었다 

- Psycholinguistics , 언어심리학 , 위와 동일

- Cognitive Science , 인지심리학 + 뇌과학 , 위와 동일 

- Philosophy of Language 

 

 

자연언어처리 단계와 구성도 

Levels of NLP 

1) Phonetics/Phonology : 음성학, 음운학 

2) Morphology : 형태론, 형태에 대한 학문 ( 형태소 분석 )

3) Syntax : 구문론, 구문 분석 ( 문법 )

4) Semantics :  의미론, 의미 분석 

5) Pragmatics : 화용론 , 실생활 언어 적용 ( common sense knowledge )  

6) Discourse : 담화 분석, 문맥을 가지고 분석 

 

1) Phonetics 음성학 & Phonology 음운론 

음성처리 연구, 언어의 소리에 대한 학문이고, 음소들의 단위로 어떻게 실제로 발음되는가?

discrete sound : 음소, 가장 작은 소리의 단위. 어떤 문장을 발음했을때 이는 음소들의 조합. 

 

it is easy to recognize speech      vs      it is easy to wreck a nice beach 

 

음성처리 연구 

굉장히 부진하다가 DNN 이후 매우 진척이 많다 

음성 인식 : signal to symbol ( 소리 -> 전파 -> 음성 인식 ) 

음성 합성 : symbol to signal ( 텍스트 -> 소리 )

 

 

2) Morphology

sequence of symbol -> sub-word units of meaning 로 나누는 것 

disconnect = dis + connect 

 

터키어, 중국어, 일본어 같이 띄어쓰기가 없는 언어도 있다 

uygarlastiramaddiklarimiz -> uygar las tir ama dik lar imiz 

 

한국어는 어절 단위 띄어쓰기 

감기는 = 감기(명사) + 는(조사) ? / 감(동사) + 기는(어말어미) ... 여러가지의 경우가 있다 

 

* P-O-S ( Part of Speech ) tagging , 품사 태깅 

문장의 각 단어들을 품사로 태깅한다 

syntatic parsing , word sense disambiguation 등의 단계로 넘어가기 전에 시행 필수 

 

input -> Iatethespaghettiwithmeatballs                                                                     | 음성인식    

          -> I ate the spaghetti with meatballs                                                                | 음성처리     

          -> I(pro) ate(verb) the(det) spaghetti(n) with(prep) meatball(n)+s(복수형) | pos tagging

 

 

* Phrase Chunking

한 문장 안의 non-recursive 한 구들, 명사구 ( NPs ) 와 동사구 ( VPs ) 를 분리 하는 것 , pp(전치사구)는 중요하지 않음. 

 

구와 절 , 공통점 : 단어들의 조합 

구 ( phrase ) : 주어와 동사가 포함되지 않음 -> the pretty girl 

절 ( clause ) : 포함됨 -> the girl is pretty 

 

He reckons [ the current account deficit ]     [ will narrow ]       to [ only 1.8 billion ]       in september

np      vp                     [ np ] ~ 현재 계좌 부채가   vp 줄어들것이다     pp     np 고작 18억으로    pp     np

 

 

3) Syntax : 구문 분석 ( 문법 )

구문론, 단어들 사이의 구조적인 단계를 찾는 것 , 일종의 트리 구조가 된다. 

앞선 단계에서 품사 태깅을 한 것도, 문법 규칙을 적용하기 위해서이다. 

4) Semantics :  의미 분석 

의미론, 문장의 글자 그대로의 의미를 찾는 것 ( 피상적인 의미 )

feature , value 쌍을 찾는 것 

 

I know that you and frank were planning to disconnect me 

 

action : disconnect

actor : you , frank 

object : me

 

but, 의미 파악에 있어서도 어려운 점이 있다 

 

* Word Sense DIsambiguation ( WSD ) 

다의어나 중의어의 경우에는 단어의 적절한 의미를 포착하기 어려운 경우도 있다.

이럴 경우 잘못된, 엉뚱한 응답이나 번역이 이루어질 확률이 높다.

> 주변 단어의 의미나 문맥을 포착해야 한다.   

 

5) Pragmatics : 화용론 , 실생활 언어 적용 ( common sense knowledge )  

or Dialog Knowledge  

상황에 맞춰서 대화를 이해하는 것 

 

6) Discourse : 문맥 정보를 가지고 분석 

the structure of conversation : turn taking(발화자와 청자가 돌아가면서 대화), thread of meaning (이전 내용을 파악해야 다음 내용을 이해 ) , 일종의 coreference problem 

 

ex ) 

bowman : open the pod bay doors, hal.

hal : im sorry dave , im afraid i cant do ( that <- thread of meaning )  

 

또, world knowledge ( common sense knowledge ) 도 필요.

 

1. 철수는 어항을 떨어 뜨렸다

2. 그는 울고 말았다.

 

1) 그는 누구인가? -> thread of meaning 

2) 철수는 왜 울었는가? -> 어항이 깨져서? 금붕어가 죽어서? 물을 쏟아서? 엄마한테 혼날까봐? 

-> 철수가 왜 울었는지는 문맥에 없지만 우리는 다양한 상황에 대한 이해를 해볼 수 있다. ( world knowledge ) 

+ 우리는 기본적으로 공유하고 있는 지식이 있지만, 컴퓨터는 우리가 그걸 만들어 주지 않으면 제대로 이해할 수 없다. 

 

 

 

 

 

 

 

 

 

** 자연어 처리 section 의 글들은 서정연 교수님 수업을 바탕으로 작성했습니다. 

Comments