본문 바로가기
닐라의 학습로그/데이터분석 학습로그

[NLP] 자연어 분석의 4단계 및 기계학습에의 적용 방식

by 친절한 닐라 2021. 5. 26.

본 포스팅에서는 자연어 처리에 앞서 자연어 처리의 개념과 그 분석 단계, 및 기계 학습에의 적용 방식에 대해 설명하였습니다.

 

목차

     

    자연어 처리는 인공지능 분야로부터 파생된 영역으로, 인공지능은 기계가 생각하고 판단할 수 있도록 인공적으로 지능을 만드는 분야입니다.

    인공적인 지능 생성을 위해서는 인간의 언어를 이해할 수 있는 기능이 요구되며, 따라서 컴퓨터가 인간의 언어인 자연어를 이해하고, 처리할 수 있도록 하는 자연어 처리가 중요하게 되었습니다.

     

    NLP는 인간의 언어가 사용되는 실세계의 모든 영역에서 활용될 수 있으며, 예를 들어 아래의 영역에 있어 활용될 수 있습니다.

    • 정보검색, 질의응답 시스템
    • 기계번역, 자동통역
    • 문서작성, 문서 요약, 문서 분류, 철자 오류 검색 및 수정, 문법 오류 검사 및 수정

     

    자연어 분석 단계

    자연어 분석의 4단계

     

    자연어 분석 단계는 크게 위와 같은 4단계를 통해 이루어집니다.

     

    이제부터 각 단계에 대해 세부적으로 다루어보도록 하겠습니다.

     

    1. 형태소 분석 (Morphological Analysis)

    : 입력된 문자열을 분석해 형태소라는 최소 의미 단위로 분리하는 단계

     

    형태소 분석의 난점

    중의성

    형태소 분석의 난점에는 하나의 어절에 대해 형태소 분석을 할 때, 분석 결과가 다양하게 나올 수 있다는 '중의성'이 있습니다.

    예를 들어, "감기는"이라는 어절의 경우 아래와 같이 세 가지 의미로 분석이 가능합니다.

    1. 감기(명사:cold) + 는(조사)
    2. 감(동사 어간) + 기(명사화 어미) + 는(조사)
    3. 감(동사 어간) + 기는(어미)

    접두사, 접미사 처리

    고유명사, 사전에 등록되지 않은 단어 처리

    특히 이러한 단어들에 대해 띄어쓰기가 없게 되면 더욱 어려워집니다.

     

    NLP Tasks

     

    형태소 분석 단계와 관련된 자연어 처리의 Task로는 아래와 같은 것들이 있습니다.

    • Word Segmentation (단어 분리)
    • Morphological Analysis (형태소 분석)
    • Part Of Speech(POS) Tagging (품사 태깅)

     

    2. 구문 분석 (Syntax Analysis)

    : 문자의 구조를 분석 (=파싱(parsing)) 하는 단계

     

    구문 분석 단계에서는 아래의 두 가지 과제를 수행합니다.

    1. 입력 문장에 대한 문법 구조를 분석하여 구문 트리로 나타냅니다.

    문법 구조 분석 결과

    1. 문장이 문법적으로 옳은가를 판단합니다 : concerns the proper ordering of words
    - The dog bit the boy. (O)
    - The boy bit the dog. (O)
    - Bit boy dog the the. (X)

    분석한 문법 구조를 바탕으로 해당 문법 구조가 문법에 어긋나는지 여부를 파악합니다.

     

    이 때, 두 번째 문장에 주목해야 할 필요가 있습니다.

    두 번째 문장의 의미는 '소년이 강아지를 문다' 인데요, 사실 웬만큼 이상한 맥락이 아니고서야 말이 되지 않는 문장임을 알 수 있습니다.

    그러나 구문 분석 과정에서는 두 번째 문장이 틀린 문장으로 인식되지 않습니다.

    주어 + 동사 + 목적어의 어순이 문법에 틀리지 않기 때문이죠.

    이러한 의미상의 모호함은 의미 분석에서 해결하게 됩니다.

     

    구문 분석의 난점

     

    구문 분석의 난점으로는 Structural Ambiguities (구조적 중의성)를 꼽을 수 있습니다.

     

    구조적 중의성이란, 하나의 문장이 다수의 구조로 해석될 수 있는 성질로,
    구조적 중의성 때문에 각각의 파서(구문 분석기)마다 구문분석의 결과가 달라질 수 있습니다.

    John saw Mary in the park - John이 Mary를 공원에서 봤다. - John이 공원에 있는 Mary를 봤다.

    예를 들어, 위의 문장에서는 'in the park'의 역할에 따라 문장의 해석 결과가 달라질 수 있습니다.

     

    NLP Tasks

     

    구문 분석 단계와 관련된 자연어 처리의 Task로는 아래와 같은 것들이 있습니다.

    • Phrase Chunking (간단하게 문장 잘라주는 것)
    • Dependency parsing (구문 분석)

     

     

    3. 의미 분석 (Semantic Analysis)

    : 구문 분석 결과 생성된 통사 구조에 의해 문장의 의미를 밝혀내는 작업을 수행하는 단계
    Concerns the meaning of words, phrases, and sentences.

     

    의미 분석 단계에서는 동형이의어, 동음이의어, 다의어의 의미를 정확히 파악하여 문장 전체의 의미를 이해하게 됩니다.
    이 때, 같은 syntax tree 안에 있는 단서(단어 등)를 가지고 여러 동형이의어/동음이의어/다의어 중에 의미가 맞는 경우의 의미를 채택하게 됩니다.

     

    이 단계에서는 아래의 과제들을 수행합니다.

    1. 의미적으로 옳은 문장인지를 판별
    2. 문장 내 단어의 중의성 해소, 생략된 표현이나 대명사 등이 무엇을 지시하는가 등을 파악

    예를 들어, 1번 Task와 관련하여 아래의 세 문장을 보겠습니다.

    - 사람이 사과를 먹는다. (O) 
    - 사람이 비행기를 먹는다. (X) 
    - 비행기가 사과를 먹는다. (X)

    위의 문장들은 모두 문법적으로는 문제가 없는 문장들입니다.

    그러나, 아래의 두 문장은 의미적으로 보기에 고개를 갸우뚱 할 수 밖에 없는데요,

    의미 분석을 통해 아래의 두 문장이 의미적으로 잘못된 문장임을 캐치해내는 겁니다.

     

    따라서 의미 분석을 통해 구문 분석의 결과를 보완할 수 있습니다.

     

    NLP Tasks

     

    의미 분석 단계와 관련된 자연어 처리의 Task로는 아래와 같은 것들이 있습니다.

    • Word Sense Disambiguation(WSD)
    • Semantic Role Labeling (SRL)
    • Semantic Parsing
    • Textual Entailment

     

    4. 화용 분석 (Pragmatic Analysis)

    : 언어의 사용에 관련된 지식을 통해 문장을 해석함으로써 화자의 의도를 파악하는 작업을 수행하는 단계

     

    해당 단계는 문맥을 통해 문장의 의미를 파악해내는 단계입니다.

     

    예시를 살펴보자면,

    지금 비가 오는 중이야

    위의 문장은 '오늘 날씨 어때?' 라는 질문에 대한 답변으로 단순히 사실을 전달하려는 목적일 수도 있고,

    아침에 급히 집을 나서는 자녀에게 우산을 가져가라고 우회적으로 말하는 목적을 가지고 있을 수도 있습니다.

     

    화용 분석은 이러한 화자의 '의도'를 분석해내는 분석 과정입니다.

     

    NLP Tasks

     

    화용 분석 단계와 관련된 자연어 처리의 Task로는 아래와 같은 것들이 있습니다.

    • Co-reference/Anaphora Resolution (대명사의 지시 대상)
    • Ellipsis Resolution

     

    자연어 처리와 기계학습

    자연어 처리의 접근 방법

    자연어 처리의 접근방법은 크게 두 가지로 나눌 수 있습니다.

     

    첫 번째는, 언어학적 분석입니다.

    언어학적 분석 방법은 규칙, 혹은 사전에 의존하여 자연어 문장을 분석하는 방법입니다.

     

    두 번째는, 통계적 분석입니다.

    통계적 분석에서는 경험적, 대규모 라벨링 데이터로부터 관련 데이터를 추출하여 분석하며

    이 과정에서 기계학습이 이용되게 됩니다.

    기계학습 적용

    지속적으로 추가되는 어휘, 많은 오류들, 새로 생기는 개체명이나 전문용어를 규칙에 의한 접근(언어학적 분석)만으로는 따라잡을 수가 없습니다.

    따라서 통계적 분석을 수반하는 기계학습이 점점 더 주목받고 있습니다.

     

    우리는 통계적 분석의 과정에서 기계학습을 통해 아래와 같은 문제들을 해결할 수 있습니다.

    • 단어의 중의성 해소
      • 품사의 중의성(형태소 분석)
      • 구문 구조의 중의성(구문분석)
      • 다의어의 의미적 중의성(의미 분석)
      • 대명사의 참조 선택(화용 분석)
    • 주변 문맥을 보고 자연언어의 모호성을 없애는 단서 인지
      • 선택에 도움이 되는 특성이나 패턴 추출

    위의 과제들 대부분은 기계학습에서 분류(Classification)의 모델을 주로 사용합니다.

     

     

    댓글