NLP
자연어 처리(NLP, Natural Language Processing)는 인간의 언어를 컴퓨터가 이해하고 해석하며 생성할 수 있도록 하는 기술 분야로 언어학, 컴퓨터 사이언스, AI 분야를 결합해 텍스트 및 음성 데이터에서 의미 있는 정보를 추출하고 처리한다.
NLP 구성 요소
구성 요소 | 정의 | 예시 |
Tokenization | 텍스트를 의미 있는 단위(단어, 문장)로 나누는 과정 | "자연어 처리는 흥미롭다." → ["자연어", "처리", "는", "흥미롭다", "."] |
Morphological Analysis | 단어의 형태를 분석하여 어근, 접두사, 접미사 등을 추출 | "흥미롭다" → "흥미/롭다" |
POS Tagging(Part-of-Speech Tagging) | 각 단어에 품사 태그(명사, 동사, 형용사 등)를 할당 | "자연어/NN 처리/NN 는/JX 흥미롭다/VV ." |
정규화(Normalization) | 텍스트를 일관된 형태로 변환(대소문자 변환, 숫자 치환 등) | "U.S.A." → "USA" |
Stemming and Lemmatization | Stemming : 단어의 접미사를 제거하여 어근을 추출하는 과정 Lemmatization : 단어의 기본 형태를 찾는 과정 |
"running" → "run" "better" → "good" |
Stop Words Removal | 비교적 큰 의미를 가지고 있지 않은 일반적인 단어들을 제거 | "is", "the", "in" 등 |
Syntax Analysis | 문장의 구문 구조를 분석 | "The cat sat on the mat." → (구문 트리 형태로 표현) |
Semantic Analysis | 텍스트의 의미를 분석 | 문장 의미 분석, 개체명 인식(Named Entity Recognition, NER) |
Sentiment Analysis | 텍스트의 감정을 분석하여 긍정, 부정, 중립 등을 판별 | "이 제품은 정말 좋다!" → 긍정 |
Topic Modeling | 문서에서 주제 추출 | 여러 문서를 분석하여 주제를 추출 |
Text Generation | 입력된 텍스트를 기반으로 새로운 텍스트를 생성 | 챗봇, 자동 글쓰기 |
NLP Sequence (Speech -> Text -> Speech)
Phonology (음운론) |
Speech Analysis (음성 분석) |
입력된 음성 데이터를 분석해 텍스트로 변환 |
Speech Synthesis (음성 합성) |
텍스트 데이터를 음성으로 변환 | |
Pronunciation Model (발음 모델) |
발음 규칙 및 모델을 포함한 음성 데이터 처리 | |
Morphology (형태론) |
Morphological and Lexical Analysis (형태소 및 어휘 분석) |
단어를 구성하는 형태소(어근, 접사 등)를 분석하고, 어휘의 기본 형태를 식별 |
Morphological Realization | 문장 생성 시 동사의 시제 변화 등 단어의 형태를 결정 | |
Morphological Rules | 단어의 구조와 형태 변화를 정의하는 규칙 | |
Syntax (통사론) |
Parsing (구문 분석) |
문장의 구조를 분석해 구문 트리를 생성 |
Syntactic Realization | 문장 생성 시 문법 규칙에 맞게 단어와 구가 결합된 문장을 형성 | |
Laxicon and Grammar (어휘와 문법) |
어휘 목록과 문법 규칙을 포함해 문장의 구조 결정 | |
Semantics (의미론) |
Contextual Reasoning (문맥적 추론) |
문맥을 고려해 텍스트의 의미를 해석 |
Utterance Planning (발화 계획) |
문맥을 기반으로 문장을 생성하는 과정. 문장의 흐름과 논리적 일관성 유지 | |
Discourse Context (담화 문맥) |
대화나 텍스트의 문맥 정보를 포함해 문맥에 따른 의미를 해석 | |
Reasoning (추론) |
Application Reasoning and Execution (응용 추론 및 실행) |
특정 응용 프로그램의 목적에 맞게 텍스트를 처리하고 실행 예를 들어, 질문 응답 시스템에서 질문을 이해하고 답변을 생성 |
Domain Knowledge | 특정 도메인에 대한 지식 베이스를 포함해 도메인에서의 의미와 문맥을 이해 |
Classical Categorization of NLP
분야 | 연구 내용 | 상세 | 예시 |
Phonology (음운론) |
언어의 소리 | 음소, 음성 구조, 발음 규칙 등을 다루며, 주로 음성 언어를 분석하고 이해 | 'ㅅ' 발음이 '시' 앞에서 'sh' 소리로 변하는 것과 같은 현상을 연구 |
Morphology (형태론) |
단어의 의미있는 구성 요소 | 어근, 접두사, 접미사 등의 형태소 분석을 통해 단어의 구조와 형성을 이해 | 'unhappiness'라는 단어는 'un-', 'happy', '-ness'라는 형태소로 나뉘며, 각각 '부정', '기쁨', '명사화'의 의미 |
Syntax (통사론) |
단어들 간의 구조적 관계 | 문장 내에서 단어들이 어떻게 배열되고 구조를 이루는지 분석하며, 구문 트리 생성 등의 작업 | "The cat sat on the mat."에서 주어(S), 동사(V), 목적어(O) 등의 구조를 분 |
Semantics (의미론) |
언어의 의미 | 단어, 구, 문장 등의 의미를 분석하며, 문맥과 상호작용을 통해 의미를 파악 | 'bank'라는 단어가 '강둑'인지 '은행'인지를 문맥을 통해 파악 |
Pragmatics (화용론) |
언어가 목표를 달성하기 위해 어떻게 사용되는지 | 언어 사용의 사회적 맥락과 의도, 그리고 대화의 함축적 의미 등을 분석 | "Can you pass the salt?"라는 문장이 단순한 질문이 아니라, 소금을 건네달라는 요청임을 이해 |
Discourse (담화 분석) |
더 큰 언어 단위 | 문장 이상의 단위인 담화를 분석하여 일관성과 결속성, 주제 연속성 등을 연구 | 여러 문장이 모여 이루는 단락의 주제와 흐름을 분석 |
텍스트 마이닝에서는 주로 문법적 구조(Syntax)와 형태소(Morphology) 분석에 집중하며, 의미와 문맥적 이해는 더 복잡하고 까다롭다. 그러나 NLP 기술이 발전함에 따라 의미론, 화용론, 담화 분석 등도 점차 더 많이 활용될 가능성이 있다.
NLP Example
Lexical Analysis vs Morphology Analysis vs Syntax Analysis
분석 단계 | 정의 | 예시 | Task | 차이점 |
Lexical Analysis |
- 텍스트 데이터를 기본적인 어휘 단위 (토큰)로 나누는 과정 - 테스트를 단어, 숫자, 구두점 등으로 분리하고, 각 단위에 의미를 부여하는 작업을 포함 |
- "The quick brown fox." - ["The", "quick", "brown", "fox", "."] |
- Tokenization - 어휘 항목 인식 : 각 토큰의 종류(단어, 숫자, 구두점 등) 식별 |
- 가장 기초적인 단계로, 텍스트를 가장 작은 단위로 분해 - 의미나 문법적 구조를 고려하지 않음 |
Morphology Analysis | - 단어의 내부 구조를 분석하는 과정 - 단어를 형태소로 분해하고, 각 형태소의 역할을 분석 |
- "unhappiness" - ["un-", "happi", "-neess"] |
- 어근 추출 - 접두사 및 접미사 인식 |
- 단어 내부의 구조를 분석하여 형태소를 식별 - 단어가 어떻게 구성도고 변형되는지 이해하는 데 중점 |
Syntax Analysis |
- 문장의 문법적 구조를 분석하는 과정 - 단어들이 어떻게 결합되어 문장을 이루는지와 문법적 관계를 규명 |
- "The quick brown fox jumps over the lazy dogs." - 구문 트리 또는 파스 트리로 변환 |
- 구문 트리 생성 - 문법 규칙 적용 |
- 문장 수준에서 단어들의 문법적 관계를 분석 - 의미보다는 구조에 초점을 맞추어, 문장이 올바른 문법을 따르는지 판단 |
NLP가 어려운 이유
1. 정밀성과 폐쇄성의 부족
- 컴퓨터 사이언스는 정밀하고 폐쇄적이며, 인위적인 구조를 다루는데 익숙 (예를 들면, 프로그래밍 언어는 약 100개의 간단한 구문과 정확한 의미문을 가지고 복잡합 로직을 처리)
- 이러한 접근 방식은 자연어 처리에는 적용되지 않음(수만개의 언어, 복잡한 구문, 모호성, 끊임없는 변화)
2. 자연어의 모호성
- 자연어는 문장 구조와 의미가 모호할 수 있다.
- 동일한 문장이 여러가지 해석을 가질 수 있으며, 이는 NLP 시스템이 정확한 의미를 파악하기 어렵게 만든다.
- "He saw the man with the telescope."
3. 개념 간의 복잡한 관계
- 텍스트 내의 개념들은 복잡하고 미묘한 관계를 가지며, 문맥에 따라 단어의 의미가 달라질 수 있다.
- NLP 시스템이 문맥을 이해하고 처리하는 것은 쉽지 않다.
NLP의 발전
- 1950's : 엘런 튜링(Alan Turing)의 튜링 테스트가 제안되며 NLP의 기초를 다짐
- 1960's : ELIZA와 같은 문법 규칙을 이용해 텍스트를 분석하고 처리하는 규칙 기반 접근법이 주로 사용
- 1970's - 1980's : Corpus를 이용한 빈도 분석과 같은 통계적 방법론이 NLP에 도입되기 시작했지만, 규칙 기반 접근법과 초기의 통계적 방법론은 특정 도메인에서만 동작할 뿐, 일반화된 자연어 처리에는 한게가 있었다.
- 1990's - 2000's : 히든 마르코프 모델(HMM)과 SVM과 같은 데이터에서 학습하는 방식이 주류가 되었으며, 워드 임베딩이 등장하면서 단어의 유사도를 측정할 수 있게 되었다.
- 2010's 이후 : LSTM, RNN, Transformer와 같은 딥러닝 모델이 NLP의 혁신을 가지고 왔으며, 특히 Transformer 모델은 BERT, GPT, T5와 같은 모델들의 기반이 되었다.
Research Trend in NLP
- Transformer 기반 모델
- BERT(Bidirectional Encoder Representation from Transformers)
- GPT(Generative Pre-trained Transformer)
- T5(Text-To-Text Transfer Transformer)
- Multi-Modal Learning
- 소형화 및 경량화
- Pre-Training, Fine-tuning
- 언어 모델의 응용
NLP vs Text Mining vs Text Processing vs Text Analysis
- 각 분야는 모두 텍스트 데이터와 관련된 분야이지만, 고유한 의미와 적용할 수 있는 범위를 가지고 있다.
분야 | 정의 | Task | 차이점 |
자연어 처리 (NLP, Natural Language Processing) |
컴퓨터가 인간 언어를 이해하고 처리할 수 있도록 하는 기술과 방법론 언어의 구조를 분석하고, 텍스트를 이해하며, 텍스트를 생성하는 것을 목표 |
언어 모델링(BERT, GPT), 음성 인식 및 합성, 기계 번역(Google Translate), 텍스트 분류, 감정 분석, 질의 응답 시스템 | 텍스트 처리와 텍스트 분석을 포함한 넓은 범위를 아우르며, 텍스트 데이터뿐만 아니라 음성 데이터 등도 처리 |
텍스트 마이닝 (Text Mining) |
대량의 텍스트 데이터에서 유의미한 패턴, 추세, 통찰을 추출하는 과정 데이터 마이닝의 한 부분으로, 주로 비정형 텍스트 데이터에서 정보를 추출 |
주제 모델링(LDA), 문서 군집화 및 분류, 정보 추출, 감정 분석, 키워드 추출 | 텍스트 데이터에서 지식을 발견하는 데 중점을 두고 있으며, 분석 결과를 데이터 마이닝과 유사한 방식으로 활용 |
텍스트 처리 (Text Processing) |
텍스트 데이터를 구조화된 형태로 전처리하는 과정 | Tonkenization, Stop word removal, Normalization, 구두점 제거, 철자 교정 | 텍스트 데이터를 분석하기 위한 준비 과정 NLP와 텍스트 분석의 기초 단계로, 데이터 전처리 단계에 해당 |
텍스트 분석 (Text Analysis) |
텍스트 데이터를 분석하여 의미 있는 정보를 추출하고, 이를 기반으로 인사이트를 도출하는 과정 텍스트 마이닝과 유사하지만, 특정 문제 해결을 위한 분석에 집중 |
주제 모델링, 감정 분석, 문서 요약, 내용 분류, 트렌드 분석 | 특정 목적에 맞춰 텍스트 데이터를 분석하고 해석하는 과정에 집중 데이터를 처리하고 분석 결과를 도출하는 과정으로 텍스트 마이닝보다 구체적이고 실용적인 목표 |
- 자연어 처리(NLP): 인간 언어를 이해하고 처리하는 광범위한 기술과 방법론을 포함
- 텍스트 마이닝(Text Mining): 대량의 텍스트 데이터에서 패턴과 통찰을 추출하는 과정
- 텍스트 처리(Text Processing): 텍스트 데이터를 구조화하고 전처리하는 과정
- 텍스트 분석(Text Analysis): 텍스트 데이터를 분석하여 의미 있는 정보를 추출하고, 이를 통해 인사이트를 도출하는 과정
'Artificial Intelligence > NLP' 카테고리의 다른 글
Text Representation (0) | 2024.08.19 |
---|---|
구문 분석(Syntax Analysis) (0) | 2024.07.30 |
Hidden Markov Model for Part-Of-Speech Tagging (0) | 2024.07.17 |
Maximum Entropy Model (MEM) for Part-Of-Speech Tagging (0) | 2024.07.16 |
Text Processing - Lexical Analysis (0) | 2024.07.15 |
댓글