인공지능

NLP(Natural Language Processing) (13)

원담 2025. 5. 26. 11:05
728x90

자연어처리(NLP)

자연어처리(Natural Language Processing, NLP)는 인간의 언어를 컴퓨터가 이해하고 처리할 수 있도록 하는 기술입니다. NLP에서 수행하는 과제는 크게 분석(Analysis) 과제와 생성(Generation) 과제로 나뉩니다.

1. 분석 과제 (Analysis Tasks): 사람의 말을 구조적으로 해석하거나 분류

의미 기반 분석 (Semantic)

  • NER (Named Entity Recognition) 문장에서 사람, 조직, 위치, 날짜 등 고유 명사를 뽑아내는 작업
    예: "Apple은 회사(ORG), Tim Cook은 사람(PERSON)"
  • 텍스트 유사도(Similarity) 두 문장이 얼마나 비슷한 의미인지 측정
    예: “나는 밥을 먹었다” ≈ “식사를 했다”
  • 감성 분석(Sentiment Analysis) 문장이 긍정적인지, 부정적인지 판별
    예: “이 영화 진짜 감동이에요!” → Positive
  • 주제 분류(Topic Modeling) 문장이 어떤 주제에 가까운지 분류
    예: “주가 하락과 금리 인상…” → 경제
  • 텍스트 분류(Text Claassfication) email -> spam, not spam / 리뷰 -> 긍정인지 부정인지

구문 기반 분석 (Syntactic Parsing) 문법적인 구조를 분석하는 작업

  • 품사 태깅(Part of Speech Tagging) 각 단어가 문장에서 어떤 역할(명사, 동사 등)을 하는지 태깅
  • 의존 구문 분석(Dependency Parsing) 문장 내 단어들 사이의 관계를 파악

2. 생성 과제 (Generation Tasks): 문장을 만들거나, 질문에 답하거나, 번역하는 작업

질의응답 (Question Answering)

  • 사용자의 질문에 대한 답을 생성
    Q: “대한민국의 수도는 어디야?”
    A: “서울입니다.”

텍스트 생성 (Language Generation)

  • 새로운 문장 생성
    예: 챗봇 대화, 시 작성, 이메일 자동 작성
  • 다음 단어 예측
    예: “나는 오늘 아침에 [ ] 먹었다.” → '빵', '밥' 등

기계 번역 (Machine Translation)

  • 한 언어를 다른 언어로 번역
    예: “나는 학생입니다.” → “I am a student.”

NLP 다양한 입력-출력 매핑 방식

유형 설명 예시
One-to-One 하나의 입력 → 하나의 출력 감정 분류 (긍정/부정)
One-to-Many 하나의 입력 → 여러 개 출력 이미지 → 캡션 생성
Many-to-One 여러 단어 → 하나의 출력 텍스트 분류
Many-to-Many 문장 → 문장 번역
Many-to-Many (동기화) 문장 → 문장 (단어별 1:1) 품사 태깅
 
3. 텍스트 마이닝의 출발점: 텍스트 정제(Text Cleansing)

자연어처리(NLP)에서 가장 먼저 해야 할 일은 바로 텍스트 정제입니다. 말 그대로 자연어 데이터를 기계가 이해할 수 있는 상태로 정돈하는 과정이다.

왜 텍스트 정제가 필요할까?

실제 온라인 댓글이나 게시글, 블로그 데이터는 다음과 같은 다양한 문제를 포함하고 있다.

  • 이모티콘, 특수문자, 중복 글자,
  • 불필요한 단어들 (ㅋㅋㅋ, ㅎㅎㅎ, ㄷㄷ 등),
  • 형식이 일관되지 않은 표현들.

예시: "지금 봐도 질리지 않음 ㅋㅋㅋㅋㅋ 개 웃겨ㅠㅠㅠㅠㅠ" → 의미를 분석하기 전 텍스트 정리(정제)가 필요하다

텍스트 정제 단계별 작업: 정제는 다음과 같은 여러 가지 세부 작업으로 구성된다

  • 대소문자 통일 "The DOG" → "the dog"
  • 문장부호/특수문자 제거 "!!!Wow~" → "Wow"
  • 숫자 제거 "Born in 1990" → "Born in"
  • 공백, 개행문자 정리
  • 띄어쓰기 보정 "안녕하세요여러분" → "안녕하세요 여러분"
  • 품사 분석(Part of Speech tagging) 각 단어가 어떤 역할을 하는지 분류하는 과정
    • I like to read books. → I(PRP) like(VBP) to(TO) read(VB) books(NNS)
  • 불용어(stopword) 제거 기능어는 문장에서 실질적인 의미를 가지고 있지 않기 때문에 제거한다
  • 토큰화 (Tokenization) 텍스트를 단어 단위 또는 의미 단위로 나누는 과정
    • His mother went to school with him → ["His", "mother", "went", "to", "school", "with", "him"]
      • 어절: 문장 성분의 최소 단위로서 띄어쓰기의 단위
    • 그의 어머니는 그와 함께 학교에 갔다 → ["그의", "어머니", "는", "그", "와", "함께", "학교", "에", "갔다"]
      • 형태소: 의미를 가지는 요소로서 더 이상 분석할 수 없는 가장 작은말의 단위
      • 주로 한글을 형태소 기준으로 나눈다
  • 어근 통일화
    • Stemming(어간 추출) 단어의 어미나 접두사, 접미사 등으로 해서 형태가 달라진 단어들을 형태소 분석을 통해 그 어간을 추출하여 동일한 단어로 간주하는 작업
      • "love", "loves", "loving", "loved" → "lov"
    • Lemmatization(표제어 추출) 어간 추출의 단점 보완한다. 단어의 의미적 단위를 고려하지 않고 단어를 축약형으로 정리한다. 품사와 문맥을 고려하여 의미있는 기본형으로 변환한다
      • "love", "loves", "loving", "loved" → "love"

Stemming은 빠르지만 부정확하고, Lemmatization은 느리지만 더 정확합니다.

정제의 최종 목적

정제된 텍스트는 특징 추출, 의미 분석, 모델 학습 등의 다음 단계에서 훨씬 더 정확하고 효율적인 결과를 만들어냅니다. 이런 정제된 텍스트는 벡터화(BoW, TF-IDF, Word2 Vec 등)를 거쳐서 모델에 입력되며, 텍스트 분류, 감성 분석, 기계 번역 등 다양한 NLP 과제에 활용됩니다.

 4. 텍스트 마이닝(Text Mining)이란?

자연어로 이루어진 텍스트 데이터를 정형화하고, 그 안에서 유의미한 정보를 추출하기 위해 자연어처리 기술을 활용하는 전반적인 과정입니다.

텍스트 마이닝 전체 과정 요약

  1. 자연어 데이터 입력 (문장, 댓글, 리뷰 등)
  2. 텍스트 정제 및 전처리
  3. 특징 추출 (벡터화, 품사 분석 등)
  4. 분석 모델 적용 (예: 감성 분석, 텍스트 분류 등)
  5. 의미 있는 정보 도출

자연어 처리(Natural Language Processing)의 단계

1. 어휘 분석 (Lexical Analysis): 형태소(Morpheme), 단어 수준에서 텍스트를 분해

  • 예: “먹었다” → “먹/었/다”

2. 구문 분석 (Syntax Analysis): 문법적 구조를 분석

  • 예: 주어(S), 동사(V), 목적어(O) 구조 파악

3. 의미 분석 (Semantic Analysis): 단어 또는 문장의 의미를 파악, 문맥에 따라 다르게 해석되는 단어 구분

4. 대화 분석 (Discourse Analysis): 여러 문장이 연결되어 만들어내는 맥락을 분석

  • 예: “그는 갔다” → 앞 문장에서 “그”가 누구인지 알아야 함

NLP 의 Dialogue System 구성도

대화형 시스템(Chatbot, Voice Assistant 등)은 다음과 같은 구성으로 이루어진다

  • 입력 단계: Speech Recognition: 음성 인식을 통해 텍스트로 변환 / Text Input: 사용자의 질문 입력
  • 이해 단계: Language Understanding (LU)
    • 도메인 분류 (영화예약/쇼핑 등)
    • 의도(Intent) 파악
    • 슬롯(Slot) 채우기 (예: 날짜, 장소 등)
  • 관리 단계: Dialogue Management (DM)
    • 대화 상태 추적
    • 다음 응답을 결정
  • 출력 단계: Natural Language Generation (NLG):
    • 응답 문장을 자연어로 생성
다이얼로그 시스템

5. 자연어처리(NLP)의 핵심 과제: 텍스트에서 "의미 있는 정보"를 추출하는 것

NLP의 목표는 단순히 텍스트를 처리하는 것이 아니라 인간 언어에서 패턴을 분석하고 의미를 이해하는 것입니다.

그러기 위해선 먼저

  • 어떤 단어가 중요한가?  핵심어 추출
  • 어떤 단어와 단어가 자주 같이 등장하는가? 의미 연결 파악

이런 질문에 답해야 하며, 이를 해결하기 위해 아래 기법들이 등장합니다.

카운트 기반 핵심어 분석의 NLP 내 역할

요소 설명
목적 문서에서 중요한 단어(키워드)를 정량적 기준으로 추출
방식 단순 빈도 또는 TF-IDF (단어 빈도 × 문서 중요도) 사용
활용 문서 요약, 검색엔진 키워드 추천, 뉴스 트렌드 분석 등
NLP 영역 어휘 분석 (Lexical Analysis) 단계에 속함

즉, ‘이 문서에서 어떤 단어가 자주 나오고 중요한가’를 판단하는 것은 기계가 의미를 이해하기 위한 첫걸음입니다.

의미 연결망 분석(SNA)의 NLP 내 역할

요소 설명
목적 단어 간의 의미 관계 구조 파악
방식 공동 등장(co-occurrence), 연결망 중심성 분석 등
활용 이슈 분석, 여론 흐름 파악, 텍스트 내 주제 구조 시각화
NLP 영역 의미 분석 (Semantic Analysis) 또는 담화 분석 (Discourse Analysis) 단계에서 사용

단어 하나만 분석하는 것이 아니라, "어떤 단어와 어떤 단어가 같이 등장하나?" "어떤 단어가 중심에서 연결 역할을 많이 하는가?"  를 분석함으로써 텍스트 전체의 의미 구조를 이해하게 됩니다.

전체 흐름에서의 위치 정리

NLP 처리 흐름 속에서 이 두 기법이 위치하는 단계는 다음과 같습니다

텍스트 입력 → 전처리 (정제, 토큰화 등) → 어휘 분석 (빈도 계산 = Count / TF-IDF) → 의미 분석 (단어 간 관계 분석 = SNA) → 텍스트 요약, 분류, 감성 분석 등 downstream task 수행
분석 방법 목적 NLP 내 위치 핵심 기능
Count 기반 핵심어 분석 중요한 단어를 정량적으로 추출 어휘 분석 단계 단어 중요도 판단 (TF, TF-IDF)
의미 연결망 분석 (SNA) 단어 간 의미 관계를 분석 의미/담화 분석 단계 단어 간 구조적 관계 분석, 시각화
 

6. 자연어 처리 분야에서 사용되는 신경망의 이해

자연어 + 인공신경망의 핵심 개념

자연어 처리(NLP)에서 인공신경망을 활용하는 목적은 다음 세 가지입니다

  1. 자연어를 벡터로 변환한다.
  2. 자연어의 특징을 추출한다.
  3. 자연어의 시계열성(문맥 순서)을 학습한다.

이러한 처리는 신경망 구조 내에서 각각 다른 layer가 담당합니다.

자연어를 벡터로 변환: Embedding Layer

  • 자연어 텍스트는 기계가 이해할 수 없으므로, 수치형 벡터로 변환해야 함.
  • 이를 수행하는 계층이 Embedding Layer.
  • 이 레이어는 단어를 고정된 차원의 밀집 벡터(dense vector)로 매핑함.
예시 구조: Text → Input Layer → Embedding Layer → Hidden Layer → Output Layer

자연어의 특징을 추출: Conv1D Layer

  • 자연어 데이터를 벡터로 만든 후, 중요한 패턴(특징)을 뽑아내는 계층.
  • Conv1D Layer는 CNN 계열로, 연속된 단어 간 특징을 인식하고 추출하는 역할을 함.
  • 주로 텍스트 분류, 감정 분석 등에 사용.
예시 구조: Text → Input Layer → Embedding Layer → Conv1D Layer → Hidden Layer → Output Layer

자연어의 시계열성을 학습: RNN (Recurrent Neural Network)

  • 문장의 순서, 이전 단어의 의미를 기억하는 구조가 필요 → 순차 데이터에 적합한 구조.
  • RNN은 시간 축 방향의 연쇄 구조를 가지며 이전 정보를 다음 단계로 전달함.
  • 내부에 은닉 상태(hidden state)를 유지하여 문맥을 고려한 학습이 가능함.
시간 흐름에 따라 구조: Input → RNN(t₀) → RNN(t₁) → … → RNN(tₙ)
  • RNN은 다음과 같이 동작
    • 과거 시점의 정보를 현재에 반영하는 구조 (yₖ₋₁ → yₖ → yₖ₊₁)
    • 내부적으로는 반복 구조(recurrent weight) 를 통해 이전 상태 정보를 기억
  • Directed Cycle(방향성을 가진 사이클 구조)을 통해 순환 구조 형성
구분 
방식  주요 목적  분석 단위  대표 사용  특징
카운트 기반 (TF, TF-IDF 등) 단어의 빈도(count)로 벡터화 핵심어 추출, 유사도 측정 단어 단위 (BOW, TF-IDF) 키워드 분석, 검색엔진 통계적, 간단함
의미 연결망 분석 (SNA) 단어 간 공동 출현 관계 단어 간 의미 관계 분석 단어 간 co-occurrence 네트워크 분석, 인사이트 도출 시각화, 구조적 해석
Conv1D Layer (딥러닝) 수치 벡터에 필터 적용 → 패턴 감지 학습 기반의 특징 추출 단어 시퀀스의 벡터 텍스트 분류, 감정 분석 문맥 기반 자동 학습
분석 기법
 인공신경망 기반?  학습해서 특징 추출?  방식
TF / TF-IDF 사람이 정한 규칙 기반, 단순 벡터화
SNA 단어 사이의 관계만 계산
Conv1D 필터(커널)를 학습해서 의미 있는 패턴 추출
728x90

'인공지능' 카테고리의 다른 글

RNN 기반 Sequence-to-Sequence 모델과 Attention  (3) 2025.05.27
알고 있으면 쓸모 있는 AI 지식(14)  (2) 2025.05.26
Embedding(12)  (1) 2025.05.24
Computer Vision Task & CNN (11)  (2) 2025.05.23
머신러닝 회귀 알고리즘(10)  (1) 2025.05.22