본문 바로가기
Artificial Intelligence/NLP

Text Processing - Introduction

by 테리는당근을좋아해 2024. 7. 14.

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)

NLP Sequence

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): 텍스트 데이터를 분석하여 의미 있는 정보를 추출하고, 이를 통해 인사이트를 도출하는 과정

댓글