본문 바로가기
데이터/방통대 - 머신러닝

[내 머리로 머신러닝] 자연어처리

by 단단_SINCE 2023 2024. 11. 25.

자연어처리(NLP)란 무엇인가요?

**자연어처리(Natural Language Processing, NLP)**는 컴퓨터가 사람의 언어를 이해하고, 해석하며, 사용할 수 있도록 돕는 기술. 쉽게 말해, 컴퓨터에게 우리와 대화할 수 있는 능력을 주는 과정이다.

 

 


자연어처리를 비유하기

💬 언어를 배우는 로봇

  • NLP는 마치 외국어를 처음 배우는 로봇.
    • 먼저 단어와 문장을 배우고,
    • 그다음 문장에서 의미를 찾아내요.
    • 마지막으로, 배운 내용을 사용해서 말을 하거나 글을 쓴다.

자연어처리의 주요 개념

📖 토큰화 (Tokenization)

  • 문장을 단어 또는 작은 단위로 나누는 과정이다.
    • 예: "오늘 날씨가 좋아요!" → ["오늘", "날씨", "가", "좋아요!"]
    • 비유: "퍼즐을 맞추기 위해 큰 그림을 조각으로 나누는 것."

🏷️ 품사 태깅 (POS Tagging)

  • 단어마다 역할을 알려주는 과정이다.
    • 예: "나는 학교에 간다." → 나는(명사), 학교(명사), 간다(동사)
    • 비유: "연극에서 배우들이 맡은 역할을 정하는 것."

🛠️ 의미 분석 (Semantic Analysis)

  • 문장에서 의미를 이해하는 과정이다.
    • 예: "나는 애플을 좋아해요." → 애플이 과일인지, 회사인지 구별.
    • 비유: "사람이 대화를 듣고 맥락에 따라 의미를 해석하는 것."

🔀 문장 생성 (Text Generation)

  • 컴퓨터가 배운 내용을 바탕으로 새로운 문장을 만드는 과정이다.
    • 예: "다음 문장을 만들어보세요: 오늘은 ___." → "오늘은 날씨가 좋네요!"
    • 비유: "아이에게 단어를 가르치고, 그 단어로 이야기를 만들어보게 하는 것."

🧠 감정 분석 (Sentiment Analysis)

  • 문장이 긍정적인지, 부정적인지, 중립적인지 판단한다.
    • 예: "이 영화 정말 재미있다!" → 긍정적
    • 비유: "친구의 표정을 보고 기분이 좋은지 나쁜지 알아내는 것."

🌐 기계 번역 (Machine Translation)

  • 한 언어를 다른 언어로 변환한다.
    • 예: "안녕하세요." → "Hello."
    • 비유: "번역사가 두 언어를 동시에 이해하고 전달하는 것."

자연어처리의 응용

📱 음성 비서

  • Siri나 Google Assistant처럼 대화를 이해하고 대답해주는 기술.
    • 예: "내일 날씨 어때?" → "내일은 맑을 예정입니다."

📝 자동 요약

  • 긴 문서를 짧게 요약
    • 예: 뉴스 기사를 두 줄로 줄이기.

📖 검색 엔진

  • 질문에 맞는 정보를 찾아주는 기술.
    • 예: Google에서 "서울 맛집"을 검색하면 추천 목록 제공.

🛒 챗봇

  • 고객 문의에 실시간으로 답해주는 도우미.
    • 예: "배송이 언제 도착하나요?" → "내일 도착 예정입니다."

🎙️ 자동 자막

  • 동영상에서 음성을 텍스트로 바꿔 자막을 생성한다
    • 예: 유튜브의 자동 자막 기능.

자연어처리 기술은 어떻게 작동할까요?

  1. 언어 데이터 수집
    • 인터넷, 책, 기사 등 다양한 텍스트를 모은다
  2. 전처리
    • 데이터를 깨끗하게 정리하고, 필요 없는 부분을 제거한다.
  3. 모델 학습
    • 딥러닝 모델을 사용해 언어를 학습한다.
      • 예: GPT나 BERT 같은 언어 모델.
  4. 응용
    • 학습된 모델로 텍스트 분석, 번역, 요약 등을 수행한다.

자연어처리의 미래

  • 더 똑똑한 번역: 언어와 문화의 맥락을 더 깊이 이해.
  • 개인화된 서비스: 사용자의 기호와 상황에 맞춘 대화 제공.
  • 창의적 작업 지원: 스토리 작성, 콘텐츠 제작.

정리: 자연어처리의 핵심

  • NLP는 컴퓨터가 사람의 언어를 이해하고 사용하는 기술
  • 토큰화, 품사 태깅, 의미 분석 등 다양한 단계를 통해 작동한다
  • 음성 비서, 번역, 요약, 감정 분석 등 일상 곳곳에서 활용되고 있다.

자연어처리는 우리가 언어를 사용하듯, 컴퓨터가 사람과 더 자연스럽게 소통할 수 있도록 발전하고 있다. 언젠가는 우리가 쓰는 모든 기술이 이 능력을 더 깊이 활용하게 될 것이다! 🚀

 

자연어처리에서 자주 사용되는 주요 기법

자연어를 컴퓨터가 이해하려면 문장을 숫자 형태로 변환해야함. 여기서 원핫인코딩, Bag of Words (BOW), 그리고 TF-IDF 같은 방법이 자주 사용된다. 


🟩 원핫인코딩 (One-Hot Encoding)

개념

  • 단어를 숫자로 바꾸는 가장 단순한 방법
  • 각 단어를 고유한 번호로 변환한 뒤, 그 번호에 해당하는 위치만 1로 표시하고 나머지는 0으로 표시.

예시

  • 문장: "나는 사과를 먹는다."
    • 단어 집합(Vocabulary): ["나는", "사과를", "먹는다"]
    • 원핫인코딩:
      • "나는" → [1, 0, 0]
      • "사과를" → [0, 1, 0]
      • "먹는다" → [0, 0, 1]

비유

  • 축구 선수 등번호와 비슷. 선수마다 고유 번호가 있고, 특정 번호를 보면 어떤 선수인지 알 수 있다.

한계

  • 단어가 많아질수록 숫자 배열이 커져서 비효율적이다 (희소 표현, Sparse Representation)

🟦 Bag of Words (BOW)

개념

  • 문장을 단어들의 가방에 담는 것처럼 표현
  • 문장에 등장한 단어들의 빈도수를 기준으로 숫자 벡터를 생성

예시

  • 문장 1: "나는 사과를 먹는다."
  • 문장 2: "나는 바나나를 먹는다."
  • 단어 집합: ["나는", "사과를", "바나나를", "먹는다"]
    • 문장 1 → [1, 1, 0, 1] (나는: 1번, 사과를: 1번, 바나나를: 0번, 먹는다: 1번)
    • 문장 2 → [1, 0, 1, 1]

비유

  • 교실에서 출석 체크와 비슷해요. 어떤 학생(단어)이 몇 번 나타났는지 표시.

한계

  • 단어의 순서를 무시한다는 단점
    • 예: "나는 밥을 먹는다."와 "밥을 먹는다 나는."이 같은 결과로 표현됨.
  • 단어의 중요도를 반영하지 못하고. 모든 단어가 동일한 가중치를 가짐.

🟨 TF-IDF (Term Frequency-Inverse Document Frequency)

개념

  • BOW의 단점을 보완한 방법으로, 단어의 중요도를 반영한다.
  • 문서에서 많이 등장하는 단어일수록 중요하지만, 모든 문서에 자주 등장하는 단어는 중요도가 낮다고 판단한다

공식

  1. TF (Term Frequency): 특정 단어가 문서에서 몇 번 등장했는지.
    • 예: "나는 사과를 먹는다."에서 "나는"의 빈도수는 1.
  2. IDF (Inverse Document Frequency): 전체 문서에서 단어가 얼마나 드문지를 계산.
    • 많이 등장하는 단어일수록 값이 작아짐. (예: "나는", "을/를" 같은 흔한 단어)
  3. TF-IDF: TF × IDF로 계산.

예시

  • 문장 1: "나는 사과를 먹는다."
  • 문장 2: "사과를 좋아한다."
  • 문장 3: "바나나를 먹는다."
  • 단어 집합: ["나는", "사과를", "먹는다", "좋아한다", "바나나를"]
    • TF-IDF 값:
      • "나는" → 드물게 등장 → 높은 중요도
      • "사과를" → 여러 문장에서 등장 → 낮은 중요도

비유

도서관에서 인기 있는 책과 희귀한 책을 떠올려보자

  • 인기 있는 책은 모든 사람이 알고 있지만 특별하지 않죠.
  • 희귀한 책은 도서관 전체에서 거의 없으니 더 특별하게 느껴져요.

장점

  • 단어의 빈도뿐 아니라 문맥 내 중요도를 반영해 정확도가 높아짐.

한계

  • 계산량이 많고, 실시간 처리에는 적합하지 않을 수 있음.

각 방법의 비교

기법 특징 장점 단점

원핫인코딩 단어를 0과 1의 배열로 표현 단순하고 구현이 쉬움 단어가 많아지면 비효율적
BOW 문장을 단어의 빈도로 표현 간단하고 빠름 단어 순서와 중요도를 반영하지 못함
TF-IDF 단어의 빈도와 중요도를 함께 계산 단어 중요도를 반영해 정확도 향상 계산량이 많고 실시간 처리에 부담이 됨

정리

  • 원핫인코딩: 단어를 고유 번호로 표현. 간단하지만 대규모 데이터에 비효율적.
  • BOW: 단어의 빈도로 문장을 표현. 단어 순서나 중요도는 반영하지 않음.
  • TF-IDF: 단어 빈도와 희귀성을 조합해 중요도를 계산. 보다 정교한 표현 방식.

이 세 가지 방법은 자연어처리에서 데이터를 숫자로 변환하는 중요한 기초 기술. 이후 딥러닝 모델에서 더 똑똑한 처리를 하기 위한 첫걸음이일 것이다 🚀

 

 

[참고] 텍스트분석 

https://bornketer.tistory.com/71

 

[머신러닝] 자연어처리 - 텍스트 전처리 과정 (토큰화, 정규화, 변환, 필터링)

오늘은 자연어처리 중 텍스트 전처리 과정에 대해서 공부하겠다. 전반적인 과정은 오렌지3로 진행했고,각 단계의 이해를 높이는 것을 목표로 한다   텍스트 전처리 과정은 크게 4가지가 있는

bornketer.tistory.com