NLP/AI기술 자연어처리 전문가 양성 과정 3기_NLP

Day35. NLP intro

이니니 2022. 3. 22. 13:51

오늘은 NLP의 기초와 word embedding에 대해 알아봅시다!

 

먼저, NLP의 정의 입니다. 

NLP란, 컴퓨터와 인간 언어 사이의 상호작용, 특히 많은 양의 자연 언어 데이터를 처리하고 분석하도록 컴퓨터를 프로그래밍하는 방법과 관련된 언어학, 컴퓨터 과학 및 인공지능의 하위 분야이다.

NLP의 목표는 문서의 내용을 컴퓨터가 이해할 수 있도록 하는 것이며, '이해한다'는 것에는 문서 내 언어의 문맥적 뉘앙스도 포함한다.

NLP는 문서에 포함된 정보와 인사이트를 정확하게 추출할 수 있을 뿐만 아니라 문서 자체를 분류하고 구성할 수 있다.

 

 

NLP의 응용분야입니다.

- 텍스트 분류 : 스팸 검출, 감정 분석, 등...

- 질의응답 : 검색 엔진

- 기계 번역

- 챗봇

- 개인 비서(ex. siri, 빅스비)

- 텍스트 요약 등이 있다.

 

 

 

NLP에는 최신 딥러닝 기반의 모델과 태스크가 포함되어 있다.

Low-level parsing

- Tokenization(토큰화) : 주어진 문장을 단어 단위로 쪼개 나가는 과정

- stemming(어간 추출) : 단어로부터 어간을 추출하는 작업이다. 예를 들면, '먹다'를 말할 때, 먹고, 먹지만, 먹은 등으로 어미가 다양하게 변화할 수 있다. 이렇게 단어의 어미가 변함에도 불구하고 같은 의미를 나타내는 단어임을 컴퓨터가 이해할 수 있어야 한다.

Word and phrase level

- Named Entity Recognition(객체명 인식 : NER) : 단일 단어, 여러 단어로 이루어진 고유명사 (ex. 하늘 다람쥐) 를 분리하지 않고도 정보를 추출할 수 있도록 한다. 이는 도메인적 특성을 반영하기도 한다.

- 품사 태깅(POS tagging) : 실용적인 작업을 하기 전에 반드시 해야하는 사전 단계로써, 단어의 품사나 성분이 무엇인지 알아내는 태스크이다. 이는 단어 토큰화를 거친 토큰들에게 품사를 붙이는 작업이다.

Sentence level

- Sentiment analysis(감정 분석) : 문장을 보고 긍정인지, 부정적인지 예측한다.

- machine traslation(기계 번역) : 문장을 전체적으로 이해하며, 단어마다 알맞은 번역과 문법에 필요한 어순을 잘 고려하여 번역을 수행한다.

Multi-sentence and paragraph level

- Entailment prediction : 두 문장 간의 논리적인 내포나 모순 관계를 예측한다.

- question answering : 묻는 문제에 대해 답을하게 만든다. 그러나 준비되지 않은 질문들이 주어진다면, 항복을 한다.

-dialog systems : 챗봇과 같은 대화를 수행할 수 있는 자연어 처리 기술이다.

- summarization : 주어진 문서를 한 줄로 요약해준다.

 

 

Text mining (빅데이터 분석과 관련 많음)

- extract useful information and insights from text and document data : 과거 1년간 나온 몇백만 건의 뉴스 기사를 모아서 특정 키워드의 빈도 수를 시간순으로 트렌드 분석하고, 그 결과를 파악할 수 있다. 상품에 대한 이야기와 키워드를 분석함으로써 소비자의 반응을 얻어내기도 한다.

- document clustering( ex. topic modeling) : 서로 다른 키워드이지만, 비슷한 의미를 가진 키워드를 자동으로 수행할 수 있게하는 방법

- highly related to computational social science : 소셜 미디어 데이터를 기반으로 사람들의 정치적 성향 진화를 분석

Information retrieval (정보 검색)

현재의 검색 기술은 어느 정도 성숙화되어있는 상태이다. 따라서, 기술 발전도 앞에서의 NLP나 Text mining에 비해서 느린 편이다. 하지만 이것의 세부 분야로 추천 시스템이라는 분야가 존재한다.

 

 

- 텍스트 데이터는 일련의 단어들로 간주될 수 있다. 각 단어들은 Word2Vec 또는 GloVe와 같은 내장 벡터로 표현된다.

- RNN, LSTM, GRU 등의 RNN 기반 모델은 순차 데이터를 처리한다.

- 어텐션이나 트랜스포머가 해제되면, RNN은 self-attention으로 대체된다.

- 최근 BERT와 같은 self-supervised 모델은 대규모 데이터 셋으로 훈련되고, 다양한 다운스트림 작업에 미세조정된다.


Word Embedding

 

 

Bag-of-Words

Bag-of-Words(BoW)는 딥러닝 기술이 적용되기 이전에 많이 활용되던 방식으로써, 단어 및 문서를 숫자 형태로 나타내는 간단한 형태의 기법이다. 문장 내의 단어들의 순서와 맥락은 전혀 고려하지 않고, 단어들의 출현에만 집중하였다.

=> 문서에서 각 단어가 얼마나 자주 등장하는가

 

모델링 방법은 다음과 같다.

1. 유니크한 단어들을 모아서 사전(vocabulary)를 만든다. (-> 중복된 단어 제거)

2. 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 one-hot vector를 만든다.

 

(예제)

문장1 : 정부가 발표하는 물가상승률과 소비자가 느끼는 물가상승률은 다르다.

vocabulary {'정부': 0, '가': 1, '발표': 2, '하는': 3, '물가상승률': 4, '과': 5, '소비자': 6, '느끼는': 7, '은': 8, '다르다': 9}

bag of words vector : [1, 2, 1, 1, 2, 1, 1, 1, 1, 1] --> index2인 '발표'는 문장1에서 1번 등장한다.

 

 

Naive Bayes Classifier(나이브 베이즈 분류기)

베이즈 정리는 위 공식과 같다.

 

 

 

 

 

 

 

 

 

'NLP > AI기술 자연어처리 전문가 양성 과정 3기_NLP' 카테고리의 다른 글

Day 40. NLP Quiz 1  (0) 2022.06.11
Day 39. LSTM & GRU  (0) 2022.06.09
Day 38. RNN  (0) 2022.06.09
Day 37. Word Embedding  (0) 2022.06.08
Day 36. Topic Modeling  (0) 2022.06.07