✏️ ABOUT NLP
NLP(Natural Language Processing)는 무엇일까?
Natural Langage?
인간에 의해 말해지는 모든 종류의 언어들을 '자연어'라 일컫는다. (예 - 한국어, 영어, 중국어)
굳이 자연어라 명명할 필요가 있나?
→ 기계에서 사용되는 언어와 인간이 쓰는 언어에 구분을 두기 위해 정의.
NLP는 컴퓨터와 인간 사이의 상호작용을 의미한다.
따라서 NLP의 궁극적 목표는 기계를 사용해 문서의 내용을, 문맥상 의미를 포함하여 해석하고 이해하는 것이다.
연구분야
- Multidisciplinary(다학적) : 언어학, 인지과학,심리학, 철학 등
- Within CS : 형식 언어 이론, 기계 학습, 인간-컴퓨터 상호작용 등

컴퓨터는 Input 정보의 의미를 이해하려고 노력하는데, 이 과정을 자연어 이해(NLU)라 일컫는다. 그런 다음, 시스템별 정보 프로세스를 기반으로 마치 인간이 말하는 것처럼(자연어) 적절한 정보를 생성하곤 하는데, 이 과정을 자연어 생성(NLG)이라 한다.
이 과정을 거치는 시스템의 예시로는 Alexa, Chatbot 같은 virtual assistant가 있다.
Linguistic Terminology
NLP에서 사용되는 분석은 크게 네 가지가 있다. 순서대로 형태소 분석 / 구문 분석 / 의미 분석 / 화용 분석이다.
1. Morphological Anyalysis (형태소 분석)
단어와 단어의 일부(어근, 접두사, 접미사 등)를 분석하는 과정.
ex) Unusually : Un(prefix) + usual(stem) + ly(affix)
2. Syntatic Analysis (구문 분석)
문장의 문법 구조를 이해하는 과정. (Syntax : Grammatical structure of the text)
기본적으로 NLP는 문법을 바탕으로 자연어를 분석하는 과정을 시작한다.
3. Semantics Analysis (의미 분석)
구문 분석으로 문법적 오류는 없을지 몰라도, 어떤 문장은 말도 안 되는 것일 수 있다.
따라서, 의미상으로 옳은지 분석하는 과정이 필요하다. (Semantic : related to meaning of logic)
ex) "책이 날아간다" → 문법적으로 오류는 없지만 책이라는 물체는 날아다닐 수 없다.
4. Pragmatics Analysis (화용 분석)
문맥상 의미를 분석하는 과정.
ex) I HEART you! : 이 문장에서 Heart는 '사랑'이라는 뜻이지만, 의미 분석상으로는 몸 안의 '장기'를 뜻한다.
NLP Pipeline
자연어처리 파이프라인 : NLP는 아래와 같은 절차를 따른다.
텍스트 데이터를 다른 기계 학습 모듈에 공급하기 전에 원시 텍스트 데이터를 구현하기 위한 몇 가지 기본 단계가 필요하다.

1. Tokenization : 텍스트를 'token(토큰)'이라고 불리는 더 작은 단위로 분리하는 방법.
2. Text Cleaning : 텍스트 데이터에서 특정 단어와 항목들을 삭제하여 기계 학습 모델 효율성을 향상시킴.
3. (Part of Speech) Tagging : 문장의 각 단어에 적절한 태깅(라벨링)을 진행.
*Part of Speech : 품사 (ex - 명사, 대명사, 동사, 형용사 등)
4. Stopwords : 문장의 의미에 많은 기여를 하지 않는 단어들.
Stopwords를 제거하며 데이터의 크기를 줄일 수 있고, 유의미한 단어들만 남아 처리 성능이 향상될 수 있음.
5. Lemmatization : 단어의 가장 기본적인 형태, 또는 레마(lemma)를 찾는 과정.
ex) I have candy / candies 에서 candy와 candies는 모두 '사탕'을 뜻하지만 그 형태가 다르므로 가장 기본형을 찾아주어야 함.
NLP Applications

Why NLP hard?
인간의 언어(자연어)는 기계로 이해하기 어려운 '구조화 되어있지 않은 언어(unconstructed)'지만, 컴퓨터는 구조화 된 언어만을 다루기 때문이다. 자연어는 고차원적이고 추상적이기때문에 기계로 처리하기에 모호하고 부정확하다고 할 수 있다.
'Python > NLP' 카테고리의 다른 글
[NLP] Extracting Information from Text : Information Extraction (0) | 2022.12.01 |
---|---|
[NLP] Language Processing and Python (0) | 2022.10.23 |
[NLP] 실습환경 구축 : Google Colab (구글 코랩) (0) | 2022.10.22 |