인공지능

자연어 처리

재히hj 2023. 12. 5. 16:18
728x90

자연어 처리(Natural Language Processing, NLP)

: 컴퓨터를 사용하여 인간의 언어를 분석하고 이해하여 활용하려는 분야

 

 

자연어의 특성

형태적 구조에 따른 언어 분류

  • 고립어: 단어가 의미만 나타내고 형태의 변화가 없으며,
    어순에 따라 문법적 관계 결정
  • 굴절어: 어근과 접사가 쉽게 분리되지 않는 형태.
    시제, 격, 수 등에 따라 단어가 변하는 언어
  • 교착어: 어근에 문법형태소인 접사를 붙여 단어를 파생시키거나
    문법적 관계를 나타내는 언어
  • 포합어: 문장을 구성하는 요소가 서로 밀접하게 결합되어 마치 전체 문장이
    하나의 단어를 이루는 것처럼 보이는 구조의 언어

 

한국어 문법

형태론(morphology)

: 형태소들을 결합하여 어절을 형성하는 체계와 규칙을 다루는 문법 분야

  • 음절: 문장을 소리 나는 대로 쓸 때 글자 한 자에 대응하는 것
    예) 산에 눈이 내린다 -> 사네 누니 내린다
  • 어절: 띄어쓰기가 되어 있는 말의 덩어리
  • 어근: 단어형성에서 그 단어의 뜻을 나타내는 최소 의미 단위
  • 접사: 단어를 형성할 때 어근에 붙어 그 뜻을 제한하는 부분
    어근 앞에 오면 접두사, 어근 뒤에 오면 접이
  • 어간: 동사, 형용사와 같은 용언이 활용될 때 변하지 않는 부분
  • 어미: 용언을 활용할 때 어간에 붙어서 변화하는 부분
    - 어말 어미: 단어의 끝자리에 들어가는 어미, 하나의 어간에 어말어미는 하나
    - 선어말 어미: 어말 어미의 앞자리에 들어가는 어미, 선어말어미는 여러 개 결합 가능
  • 형태소(morpheme): 의미를 가지는 요소로서 더 이상 분해할 수 없는 가장 작은 문법 단위
    - 자립여부에 따른 분류
    • 자립형태소: 자신이 무슨 뜻인지 알 수 있게 하는 것
    • 의존형태소: 자기가 가진 의미를 나타내려면 다른 말에 의존해서 합해져야 하는 것
    - 실질적 의미 포함 여부에 따른 분류
    • 어휘형태소(실질형태소): 사전에 뜻이 나와있는 형태소
    • 문법형태소(형식형태소): 문법적 기능을 나타내는 형태소
  • 품사(part-of-speech): 단어를 문법적 성질의 공통성에 따라 몇 갈래로 묶어 놓은 것
    - 역할에 따른 분류: 체언, 용언, 수식언, 관계 언, 독립언
    - 의미에 따른 분류: 명사, 대명사, 수사, 동사, 형용사, 관형사, 부사, 조사, 감탄사

통사론(syntax)

: 어떤 순서로 단어를 배열해야 문장이 되는가에 대한 문장 구성, 구성요소 간의 관계 및 기능을 다루는 분야

  • 절: 주어와 서술어 관계인 부분
  • 구: 절은 아니지만 어절이 몇 개 뭉쳐서 의미적 기능을 하는 것
  • 문장성분: 어절을 역할에 따라 주어, 목적어, 서술어, 보어, 관형어, 부사어, 독립어로 분류한 것

음운론(phonology) : 음운의 성질, 소리와 소리가 만나면 생기는 변화를 다루는 분야

-> 음성인식 분야의 중요한 기반 이론

  • 음운
    - 음소: 자음, 모음
    - 운소: 소리의 길이, 높낮이, 세기
  • 음운현상: 사잇소리 현상, 된소리 되기 등

 

형식문법

형식문법: 특정 형식 언어에 속하는 string을 생성하는 데 사용되는 유한개의 생성규칙들의 집합

형식언어: 특정 형식 문법에 따라 생성될 수 있는 모든 스트링의 집합

  • 정규문법(Type-3 문법)
    - 정규 언어: 정규 문법을 사용하여 생성되는 언어
    -> 정규식으로 표현 가능

  • 문맥 자유 문법(Type-2 문법)
    : 프로그래밍 언어의 문법
  • 문맥 의존 문법(Type-1 문법)
    : 문맥에 따라 다르게 대치 가능 문법
  • 무제약 문법(Type-0 문법)
    - 생성 규칙을 정의하는데 제약이 없음
    -> 가장 일반적인 형식 문법
    - 튜링 머신으로 인식 가능

 

 

자연어 처리의 분석 단계

 

1. 형태소 분석: 입력된 문자열을 분석하여 형태소 단위로 분해하는 과정

  • 불규칙한 활용이나 축약, 탈락 현상이 일어난 경우에 원형 복원
  • 규칙 기반 분석

형태소 분석의 활용

  • 맞춤법이나 띄어쓰기 교정
  • 단어의 품사 결정 정보 제공
  • 단어의 의미 추정 정보 제공

품사 태깅(POS tagging)

: 문장의 각 단어에 품사의 범주 및 문법적 기능에 대한 태그를 붙이는 것.

말뭉치(corpus)

: 언어 연구를 위해 컴퓨터가 읽을 수 있는 형태로 텍스트를 모아 놓은 것.

 

품사태깅 기법

1) 규칙 기반 품사 태깅 방법

: 문장 구성의 원리, 문맥적인 정보와 형태소 정보 등을 이용하여 수작업으로 만든 규칙 사용

 

2) 기계학습 기반 품사 태깅 방법

: 품사 태깅이 되어있는 말뭉치를 학습 데이터로 사용하여 분류기를 학습하여 사용

 

말뭉치를 이용한 품사 태깅 방법

 

 

개체명 인식(named entity recognition)

: 텍스트에서 인명, 지명, 기관명과 같은 개체명을 인식하여 

텍스트에 해당 객체명 태그를 달아 주는 것.

-> 정보검색, 정보추출,질의응답에서 중요한 역할

 

개체명 인식 기법

1) 규칙 기반의 방법: 개체명을 인식하기 위해 사전들과 규칙들 이용

2) 기계학습 기반의 방법

 

 

2. 구문 분석

  • 구문에 따라 문장이 가지는 구문 구조를 분석하여, 
    문장을 구성하는 문자열들이 문장에서 어떤 역할을 하는지 결정
  • 구문 분석 결과는 파스 트리 형태로 표현
    -> 파싱(parsing)이라고 한다

* 구문(syntax): 문장이나 구절을 만드는 규칙

 

구문 분석 방법

1) 규칙 기반 구문 분석

: 문맥 자유 문법 형태의 구구조 문법을 이용하여 문장 분석

 

구구조 문법이란?

문장의 문법을 품사 기호와, 구(句) 기호를 사용하여 문맥 자유 문법 형태로 기술한 것.

 

- 트리 구조의 생성 진행 방향에 따라 하향식 파싱과 상향식 파싱으로 분류한다.

  • 하향식 파싱: 문장 시작 기호 S에서 시작, 생성 규칙을 반복 적용하여 주어진 문장을 
    얻는 과정을 통해 구문의 구조 파악
  • 상향식 파싱: 문장에서 시작하여 문장 시작 기호 S방향으로 파싱 트리를 생성

- 구분 분석은 어려움이 있다

  • 구조적 중의성: 하나의 문장이 다수의 구조로 해석될 수 있는 성질
  • 어휘적 중의성: 하나의 단어가 여러 품사로 사용되어 다수 구조로 해석될 수 있는 성질

2) 기계학습 기반 구문 분석

: 사람이 구구조 문법을 정의할 필요 없음.

구문 분석이 된 학습 데이터를 사용하여 구문 분석을 하는 모델을 학습을 통해 구축

 

3. 의미 분석: 구분 분석의 결과를 해석하여 문장의 의미를 결정하는 것.

담화가 이루어지는 상황에 대한 세계 모델(world model)과 상식에 대한 지식 필요.

 

- 단어 의미 중의성 해소

: 특정 문장에 등장하는 단어가 어떤 의미인지 판별하는 작업

 

- 화행 분석: 대화 중의 발화가 어떤 종류인지 파악하는 것.

 

- 문맥 함의: 문장에 표면적으로 나타난 사실 이외에 함의된 사실을 파악하는 것.

 

- 의미 분석: 통사적으로 옳으나 의미적으로 틀린 문장이 있을 수 있다.

예) 돌이 걸어간다. -> 말이 안되는 문장

또는 모호한 문장

예) 말이 많다

 

- 단어의 수치화

  • one-hot 벡터: 단어 별로 하나의 좌표축을 대응시킨 공간에서, 해당되는 단어 위치에만 1을
    설정하고 나머지에는 0을 설정하여, 공간 상에 단어 표현
    단점: 단어 간의 유사도를 계산하기 곤란하다.

  • Word2Vec 또는 단어 임베딩: 단어의 의미를 충분히 잘 나타내도록 단어를 공간상의
    실수 벡터로 표현
    -> 유사한 의미의 단어가 벡터공간 상에서 근처에 위치

- CBOW 모델

  • V 차원의 one-hot 벡터로 표현된 단어를 N차원의 실수 벡터로 바꾸는 역할
  • 입력에 주변 단어들이 주어질 때, 출력에서는 해당 단어가 나타날 확률이 높아지도록 학습

Skip-gram 모델

  • CBOW와 대칭적인 구조
  • 입력에 학습 대상이 되는 단어가 주어질 때, 출력에서는 해당 단어의 주변 단어들이 
    나타날 확률이 높아지도록 학습

 

4. 화용 분석: 실제 상황적 맥락을 고려하여 문장이 실세계와 가지는 연관 관계를 분석하는 것

 

 

728x90