인공지능/머신러닝

[머신러닝 - 이론] NLP - Natural Language Processing (자연어 처리)

바보1 2022. 6. 1. 00:19

1. NLP (Natural Language Processing)이란?

 

 

NLP란 Natural Language Processing의 약자로 자연어 처리를 뜻합니다.

이것은 언어학, Computer Science, AI의 하위 부분이며, 컴퓨터와 인간의 언어의 교집합입니다.

또한 컴퓨터가 어떻게 방대한 양의 자연어를 처리하고 분석하는지를 연구하는 분야입니다.

 

이 분야의 목적은 컴퓨터가 문장의 늬양스를 이해하는 것을 목표로 하며, 더 나아가 문서 안에 있는 정보나 insight를 정확하게 추출하는 것이 목적입니다.

 

다양한 NLP 작업들이 있지만, 대표적인 예시로

Text classfication, Machine translation, Text summarization, Language generation/understanding, Question answering이 있습니다.

추가적으로 NLP와 Computer Vision이 합친 분야로는 Text-Image search, Image/Video Captioning이 있습니다.

 


2. Text Classification

 

 

Text Classification은 말 그대로 텍스트를 분류하는 것입니다.

이는 감정(부정적인지, 긍정적인지)을 분류하거나, 뉴스를 분류하는 등 다양한 목적으로 쓰입니다.

 

다양한 처리법들이 있지만, CNN으로 접근하거나, HDLTex(Hierarchical Deep Learning for the text classification)이 있습니다.

 

이때 한쪽에 OverFitting이 되지 않게 골고루 데이터를 나눠야 하고, 

모델 친화적으로 Data Preprocssing이 필요합니다.

 

데이터 전처리 과정 중 하나가 Embedding, vectorization입니다.

단어 임베딩은 단순히 글자를 ont-hot-encoding을 하는 것이 아니라, 연관성이 있는 데이터들끼리 비슷한 방향에 위치 시키는 것입니다.

예를 들어 왕 - 여왕, 왕 - 남자, 여왕 - 여자 같이 연관성이 있는 데이터들끼리 가까이 위치시키는 것이 단어 임베딩입니다.

임베딩을 하면 훨씬 효과적인 학습을 할 수 있습니다.

 

이때 전처리 하는 과정을 아예 모델 안에 넣는 방법이 있고, 미리 전처리를 한 후 모델에 넣는 방법이 있습니다.


3. Machine Translation

 

 

만약 English to Spanish라면 두 개의 언어를 모두 TextVectorization을 해줍니다.

이후 Sequence-to-sequence Transformer 모델에 넣어줍니다.

이 모델은 RNN, CNN이 아니고 새로운 Network입니다.

 

 

 

음... 시험 공부 때문에 너무 대충 썼네요.. 나중에 기회가 된다면 더 자세히 쓰도록 하겠습니다.

 

감사합니다.

 

 

지적 환영합니다.