대학공부/자연어처리

자연어처리의 기본

진진리 2024. 3. 13. 21:59
728x90

자연어처리란

  • 자연어: 사람들의 사회생활에서 자연스럽게 발생하여 쓰이는 언어
  • 자연어 처리: 자연어를 컴퓨터를 이용하여 이해하고 생성하도록 하는 제반의 언어
    • NLU(자연어 이해) + NLG(자연어 생성)

자연어처리의 응용 분야

기계번역, 문서요약, 기계독해, 개인비서 서비스, 로봇 저널리즘, 문서분류, 챗봇, 감성분석

 

 

자연어처리가 어려운 이유

(1) 언어의 중의성

  • 중의성: 단어, 어절 그리고 구 등 하나의 언어적 단위가 두 가지 이상의 해석이 가능한 것
  • 같은 글자의 조합이 여러 의미를 가지고 있음 -> 처리의 복잡도가 상승

(2) 규칙의 예외

  • 형태론: 언어의 규칙을 연구하는 분야
  • 규칙을 모든 단어에 그대로 적용할 수 없음 -> 처리의 복잡도가 상승

(3) 언어의 유연성과 확장성

  • 구조 문법: 문장의 여러 단어가 이루는 구조를 통해 문자이 구성된다는 문법 모델
  • 언어의 확장성을 설명할 수 있음 (단어가 들어갈 자리에 문장의 길이를 늘릴 수 있음)
  • 언어의 유연성: 언어는 항상 변하며 사라지거나 새롭게 탄생

 

자연어처리 연구의 패러다임

(1) 규칙 기반

  • 언어의 문법적 규칙을 사전에 정의해두고 이에 기반하여 자연어를 처리
  • 초창기의 자연어처리 연구에 많이 사용됨

한계점

  • 한국어처럼 어순이 정형화되어 있지 않으면 분석에 한계가 존재
  • 규칙을 미리 지정하는 것의 부담이 큼
  • 규칙을 적용할 단위로 분해하는 작업의 정확도가 낮음

 

(2) 통계 기반

  • 규칙 사전 정의를 통계적으로 처리
  • 컴퓨터의 성능이 발전하여 대량의 데이터를 빠르게 처리할 수 있게 되면서 발전
  • 조건부 확률이라는 수학적 개념이 가장 핵심적

한계점

  • 선형적인 분석이기 때문에 복잡한 규칙을 처리하기엔 어려움이 있음
  • 여전히 사람의 손이 많이 가는 통계 분석 자료 활용

 

(3) 딥러닝 기반

기계 학습: 입력으로 들어올 데이터를 대입시켜 알고리즘이 스스로 연산의 가중치를 학습하게 함

신경망: 기계학습의 일종으로, 신경계의 구성 형태를 기반으로 만들어진 구조

  • 신경망 구조에서 은닉층 수를 매우 많이 늘린 것
  • 연산의 흐름이나 각 가중치가 무엇을 의미하는지 개발자조차 알 수 없게됨

딥러닝 기반 자연어 처리

  • 모델을 잘 구성해두는 것이 중요
  • 문장 전체를 고려하는 모델을 만들고 싶다면, 모든 단어에 걸쳐 적용되는 연결을 하나 만듦
  • 통계적 분석보다 고차원적인 분석을 할 수 있어 자연어 처리의 성능이 비약적으로 상승함

 

딥러닝을 사용하는 자연어처리 연구

  1. 단어 임베딩
    • 자연어로 되어있는 문장을 컴퓨터가 받아들일 수 있도록 하는 문장의 전처리 과정
    • 단어간 연관성 등을 유지하는 벡터화 하는 방법이 많이 쓰임
    • 문법적으로만 사용되는 단어(조사, be동사 등)은 일반적으로 삭제
  2. 코퍼스
    • 매우 많은 수의 문장을 정제하여 모아둔 것
    • 통계/딥러닝 기반 자연어 처리에서 가장 핵심을 담당하는 자료
  3. 모델
    • 딥러닝을 활용한 연구의 핵심
    • 모델이 어떤 부분을 읽고, 어떤 형식으로 출력하는지를 결정 (Classification, Generation 등)

 

언어학의 기본 원리

  • 언어를 이루는 단위: 음절, 형태소, 어절, 품사
    • 음절(Syllable): 언어를 말하고 들을 때, 하나의 덩어리로 여겨지는 가장 작은 발화의 단위
      • 초성, 중성, 종성
      • 한국어의 경우 V, C+V, V+C, C+V+C
      • 말소리의 단위이기 때문에 소리나는 대로 적었을 때의 한 글자를 말함
    • 형태소(Morpheme): 의미를 가지는 가장 작은 단위
      • 실질적인 의미 유무에 따라 실질 형태소, 형식 형태소로 나뉨
      • 자립성의 유무에 따라 자립 형태소와 의존 형태소로 나뉨
      • 유일 형태소: 결합할 수 있는 형태소가 극히 제한된 형태소 (오솔길 ,가랑비)
      • 이형태: 음운 환경에 따라 모양을 달리하는 우리말 형태소 (은/는, 와/과)
    • 어절: 한 개 이상의 형태소가 모여 구성된 단위
      • 띄어쓰기 단위와 거의 일치
    • 품사
      • 문장 내에서 단어가 수행하는 역할을 기준으로 체언, 수식언, 관계언, 독립언, 용언의 5언으로 나뉨
      • 의미에 따라 명사, 대명사, 수사, 관형사, 부사, 조사, 감탄사, 동사, 형용사의 9품사로 나눔
      • 형태에 따라 가변어와 불변어로 나뉨
        • 불변어
          • 체언 : 조사가 붙는 것 (명사, 대명사, 수사)
          • 수식언 : 수식해주는 것 (관형사, 부사)
          • 관계언 : 문법적 관계를 나타내게 해주는 것 (조사)
          • 독립언 : 독립적으로 쓸 수 있는 것 (감탄사)
        • 가변어
          • 용언: 어미를 활용하여 서술어의 역할을 하는 것 (동사, 형용사)

언어의 구조

  • 구구조: 문장을 구성하고 있는 요소들이 서로 끌어당겨 한 덩어리가 됨으로써 형성되는 일정한 구조를 가리킴
    • 문장을 구성하는 2개 이상의 구성요소는 서로 관계를 맺고 있음
    • 영어와 같이 단어의 배열이 정해져 있는 언어를 분석할 때 주로 쓰임
    • Parse-tree로 나타내거나 Bracketing으로 나타냄
  • 의존구조: 문장에 포함된 단어들이 서로 의존 관계를 이루어 하나의 구문을 이룬다고 봄
    • 문장에는 각 단어의 지배소와 의존소로 이루어져 있고 그 의존 관계를 분석하는 것
    • 한국어는 비교적 어순이 자유롭기 때문에 구문 분석 시 의존 구문 분석이 주로 이용됨
    • 의존 관계를 나타내면 문장에서의 의미를 보다 명확하게 파악하여 모호성을 해결할 수 있음
    • 의존 구문 분석
      • 그래프 기반 의존 구문 분석(Graph-based dependency parsing): 가능한 의존 관계를 모두 고려한 뒤 가장 확률이 높은 구문분석 트리를 선택. 선형적 탐색을 하기 때문에 근거리 의존관계를 찾는데 강하고 속도가 빠르지만 문장을 전역적으로 확인하는 데는 약함
      • 전이 기반 의존 구문 분석(Transition-based dependency parsing): 비결정적인 방법,두 단어의 의존여부를 순서대로 결정하며 점진적으로 구문분석 트리를 구성. 모든 경우의 수를 계산하므로 속도가 느림.

 

의미론과 화용론

의미론

  • 의미론
    • 단어, 문장, 발화에서 그 표현이 실제로 가리키는 지사체와의 의미 관계를 파악하는 것
    • 문법적으로 옳은 문장일지라도 의미가 어색하다면 그것은 언어라고 할 수 없음
  • 의미역: 명사의 다양한 역할을 설명함
    • Agent: 어떠한 행동을 의도를 가지고 수행
    • Patient: 어떠한 행동에 영향을 받음
    • Instrument: 어떠한 행동이 일어나도록 하는 데 사용됨
    • Location: 어떠한 행동이 일어나는 장소
  • 어휘적 관계로도 단어의 의미를 파악할 수 있음
    • 동의관계, 반의관계, 상하관계, 원형, 동음이의어, 다의어, 환유어, 연어

 

화용론

  • 화용론
    • 화행: 언어를 통해서 이루어지는 행위
    • 언어를 통해 약속, 사과, 충고, 선언 등의 행위가 이루어지는 것을 화행이라고 함
    • 화행을 직접적으로 표시하는 직접 화행, 간접적으로 표시하면 간접 화행
  • 협력의 원리: 대화 참여자 사이에 지킬 것으로 기대되는 격률
    • 양의 격률(The maxim of quantity)
    • 질의 격률(The maxim of quality)
    • 관련성의 격률(The maxim of relevance)
    • 태도의 격률(The maxim of manner)