코딩두의 포트폴리오

OSS - 11_ AI-NLP 개요 본문

Open Source Software

OSS - 11_ AI-NLP 개요

코딩두 2024. 5. 11. 16:27

Natural Language Processing (자연어 처리)

자연언어란?

  • 인간이 일상적으로 사용하는 언어
  • 가장 자연스러운 정보 전달 방법
  • 매우 다양한 특성과 형태

자연언어 처리란?

인간의 언어를 기계(컴퓨터)가 이해하고 생성할 수 있도록 하기 위한 연구

 

자연언어 vs 프로그래밍언어 (차이점)

프로그래밍 언어(PL)

  • 문맥 자유(context-free) 언어, 인위적으로 만들어짐 - 문법의 모호함이 적음
  • 처리방식: 문맥자유문법, 컴파일
  • 처리과정: 어휘분석 - 구문분석 - 의미분석 - 코드생성
  • 각종 테이블의 역할이 큼

 

자연어(NL)

  • 문맥 의존(context-sensitive) 언어, 자연발생적으로 만들어짐 - 분석의 복잡성
  • 처리방식: 문맥자유문법 기본 + 문맥 의존적 요소 처리 기능 추가
  • 처리과정(기계변역): 어휘분석 - 구문분석(모호성 처리) - 의미분석(모호성 처리) - 목전언어생성
  • 사전의 역할이 큼

 

자연언어처리 단계 (1)

자연어의 4단계 분석 과정


형태소 분석

  • 입력된 문자열을 분석하여 형태소라는 기본 단위로 분류
  • 형태소 분할, 원형 복원, 형태소 간 결합 타당성 검사
  • 사용정보: 어휘사전, 접속정보
  • ex)  친구였다 - 친구(명사) + 이(서술격 조사) + 었(선어말 의미, 과거) + 다(어말 어미, 종결형)                                               감기는 -> (1) 감기 + 는 (2) 감 + 기 + 는

 

구문(통사 분석)

  • 통사 규칙에 따라서 문장 내에서 각 형태소 간 상호관계 분석
  • ex) "학생이 학교에 간다." (학생이 -> 주어, 학교에 -> 부사어, 가다 -> 서술어)

 

자연언어처리 단계 (2)

의미 분석

  • 통사 분석의 결과에 해석을 가하여 문장의 의미를 분석
  • 해결내용: 단어의 중의성 해소, 문장의 의미적 적합성 검사
  • 사용정보: 각 어휘의 의미 분류, 하위 범주화 정보
  • ex) "나(fly, I)는 모자(hat, mother and child)를 쓴(write, put on) 철수(withdrawal, 사람이름)을 보았다."

 

담화(화용 분석)

  • 문장이 실세계와 가지는 연관 관계를 분석
  • 화자와 청자의 대화 의도 분석
  • 사용정보: 실세계 지식, 상식
  • ex) "네 뒤에 벼랑이 있는지 알고 있니?" (벼랑의 존재를 알려주는 역할 + 경고의 의미)

 

Natural Language Processing

자연언어처리 시스템 구성도

 

형태소 분석기의 개념도

 

Grammars and Parsing

문법(Grammar)

문장의 구조적 성질을 규칙으로 표현한 것

 

구문 분석기(Parser)

문법을 이용하여 문장의 구조를 찾아내는 process

문장의 구문 구조는 Tree 형태로 표현 가능

몇 개의 형태소들이 모여서 구문 요소(구: phrase)를 이루고, 그 구문 요소들 간 결합 구조를 Tree 형태로써 구문 구조 이룸

 

의미해석

구문 해석은 되나 의미 해석이 안되는 것들

  • 사람이 사과를 먹는다. (o)
  • 사람이 비행기를 먹는다. (x)
  • 비행기가 사과를 먹는다. (x)

'Open Source Software' 카테고리의 다른 글

OSS - 13_ 패션 아이템을 구분하는 DNN  (0) 2024.05.16
OSS - 12_ 파이토치로 구현하는 ANN  (0) 2024.05.11
OSS - 10_CoLab 사용하기  (0) 2024.05.11
OSS - 09_GitHub로 협업하기  (0) 2024.04.21
OSS - 07_Git 고급  (0) 2024.04.21