YZ ZONE

[자연어처리] 1. 자연어처리의 기본 본문

IT/자연어처리

[자연어처리] 1. 자연어처리의 기본

러블리YZ 2023. 2. 2. 17:20

1.1자연어처리란

자연어(natural language): 사람들의 사회생활애서 자연스럽게 발생하여 쓰이는 언어 (한국어)

인공어: 자연어와 반대로 컴퓨터에게 명령을 하기 위해 만든 프로그래밍 언어

자연어처리(natural language processing, NLP): 컴퓨터가 자연어를 이해하고 생성할 수 있도록

자연어 이해(natural language understanding, NLU) :자연어 입력시 컴퓨터가 무슨 의미인지 알아듣는 과정

자연어 생성(natural language generation, NLG): 해당 의미를 언어로 생성하는 과정

1.2자연어처리의 응용 분야

전산언어학적인 활용

-기계번역(번역기)

-음성인식(STT)

-개인비서 서비스(siri, 빅스비 등)

-날씨정보 요약

-인공지능 스피커

 

1.3자연어처리는 왜 어려운가?

-정확도가 높지 않아 사용률이 높지 않음

-자연어는 숫자와 다르게 복잡하고 불확실함

[자연어 처리 어려운 요인]

-언어의 중의성 (같은 말인데 중복되거나 다른 의미를 가짐) ex)배

-규칙의 예외 (보슬비o 보슬눈x)

형태론:언어의 규칙을 연구하는 분야로 규칙이 어렵고 복잡

숙어로 쓰인 동사나 명사는 원본 단어의 규칙을 그대로 적용할 수 없음

-언어의 유연성과 확장성 (문장의 길이가 무한)

ex) man→old man 문장의 길이를 계속 늘릴 수 있음

언어는 시대에 따라 변해 이 모든 방법들을 규칙화 할 수 없음.

 

1.언어의 중의성: 같은 말인데 중복되거나 다른 의미를 가짐

2.규칙의 예외: 형태론의 규칙이 적용되지 않는 경우가 있다. ex)숙어

3.언어의 유연성과 확장성: 같은 말이라도 문장의 길이를 계속해서 늘릴수 있고(확장성), 시대에 따라 변하는 언어들을 모두 규칙화 할 수 없음(유연성)

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

1) 규칙기반

: 언어의 문법적 규칙을 사전에 정의해두고 이에 기반하여 자연어를 처리

초창기 자연어처리 연구에 많이 사용됨.

-기계번역: 문장을 형태소 등의 단위로 분해하고 각각의 규칙을 파악해 번역

-명령인식: 문장에서 목적어, 동사등이 위치하는 규칙을 이용해 대상,행동을 이해

[한계]

-한국어는 어순이 정형화되어있지 않아 분석에 한계가있음

-규칙을 미리 정하는 것의 부담이 큼

-규칙을 적용할 단위를 분해하는 작업부터가 정확도가 낮음

2) 통계기반

:규칙의 사전 정의를 통계적으로 처리

컴퓨터의 성능이 발전해 대량의 데이터를 빠르게 처리할 수 있게 되면서 발전

조건부 확률이라는 수학적 개념이 가장 핵심적

조건부 확률: 어떤 사건이 이미 일어날 것을 가정하고, 그 상황에서 다른 사건이 일어날 확률

앞뒤 단어들을 기반으로 어떠한 단어가 등장할 확률 산출

한계

-선형적인 분석이라 복잡한 규칙을 처리하기 어려움

-여전히 사람의 손이 많이 가는 통계 분석 자료 활용

3)딥러닝 기반

-알고리즘

:어떤 상황에 어떻게 어떤 값을 계산해야 하는지 사전에 지정된 연산 흐름

어떤 데이터가 들어오는지 예측이 가능하고, 그 처리법을 명확히 알고 있어야함

-기계학습

입력 데이터를 대입시켜 알고리즘이 스스로 연산의 가중치를 학습하게함.

가중치를 모를때 기계가 스스로 반복해서 찾아내도록해 데이터가 들어갔을때 원하는 출력이 나오게 함

학습시키는 과정이 필요함

-신경망

기계학습의 일종. 은닉층 존재.

은닉층: 입력과 출력을 제외한 층

-딥러닝

:신경망 구조에서 은닉층 수를 매우 많이 늘린 것. 복잡도가 높은 문제들을 처리할 수 있게됨

-딥러닝 기반 자연어 처리

많은 층의 구조를 잘 만들어내는것 즉 모델을 잘 구성하는것이 중요

문장 전체를 고려하는 모델을 만들고 싶다면 모든 단어에 걸쳐 적용되는 연결을 하나 만듬

고차원적인 분석이 가능해 자연어 처리의 성능이 비약적으로 상승함

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

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

1.어떤 목적으로 자연어처리를 도입할 것인지 문제 결정

2.목적에 맞는 학습데이터 수집, 구축(정리)

3.학습시킬 모델 구조 작성

4.학습데이터로 모델 학습

5.완성된 모델 검증, 실전투입

*성능 개선은 주로 2,3단계에서 진행

1.5.1 단어 임베딩(word embedding)

:자연어로 되어있는 문장을 컴퓨터가 받아들일 수 있도록 하는 문장의 전처리 과정

단어간 연관성 등을 유지하는 벡터화 하는 방법이 많이 쓰임

문법적으로만 사용되는 단어(조사,be동사 등)는 일반적으로 삭제. 명사,동사에 초점

사전에 임베딩 된 단어 사전을 이용해 연구를 진행하는 경우가 많음

1.5.2 코퍼스(말뭉치)

:많은 수의 문장을 정제해 모아둔 것

통계/딥러닝 기반 자연어 처리에서 가장 핵심을 담당하는 자료

연구 필요성에 따라 문장에 문장 성분, 대응하는 번역문을 쌍을 짓는 등, 연구에 필요한(모델이 학습해야 할)정보를 같이 기입

1.5.2 모델

딥러닝을 활용한 연구의 핵심. 연구의 목적에 따라 어떻게 입력을 받아 출력하는지 결정

감정 분석을 한다면 classification ex)긍정1, 부정0 이라하고 클래스 분류)

번역을 한다면 Generation(생성) ex)어떤 문장을 넣었을때(영어)→ 새로운 문장을 생성(한국어)

성능이 좋은 모델은 출력만 고쳐 사용하기도 함