Post

[Paper]NLP란?

자연어 처리 과정을 몇몇 경험해보긴 했었지만, 정확히 자연어 처리가 무엇인지 어떻게 분류되는 지 이해하지 못하고 있었다. 따라서 이번 포스팅을 통해 NLP에 대한 기초적인 개요를 정확히 짚고 넘어가고자 한다.

Ⅰ. NLP(Natural Language Processing)

자연어란?
사람들이 일상적으로 쓰는 언어(ex. 영어, 한국어 등)를 인공적으로 만들어진 언어인 인공어(ex. 영화에 나오는 외계어 등)와 구분하여 부르는 개념이다.

자연어 처리는 컴퓨터가 인간의 언어를 이해하고 생성하는 인공지능 기술의 한 분야입니다. 해당 분야에서도 기계가 자연어를 이해하고 분석하는 여러 세부적인 과제가 포함되어 있는데, 주요 세부 항목은 아래와 같습니다.

NLP는 NLU\(_{Natural Language Understanding}\)와 NLG\(_{Natural Language Generation}\)로 크게 두가지 관점으로 나눌 수 있다고 합니다. 그러나 현실적으로 이 두 분야 사이에는 서로 긴밀하게 연결되고 상호 작용하면서 발전하고 있어, 뚜렷한 경계를 그리기는 어려울 수도 있습니다.

다운로드 (1) 출처 : https://only-wanna.tistory.com/entry/NLP-Task-맛보기-2-Question-AnsweringQA

Ⅱ. NLU

NLU는 Natural Language Understanding으로 말의 의미 그대로 사람이 쓰는 언어인 자연어를 기계가 이해할 수 있도록 하는 과정에 중점을 두고 있습니다. 즉, 인간이 사용하는 언어의 의미와 구조를 컴퓨터가 이해하는 과정입니다. NLU는 문장의 문법, 의미, 감정 등을 파악하여 컴퓨터가 텍스트를 이해하게 합니다.

ⅰ. 두 가지 측면

이 과정에서 “언어를 이해한다”라는 의미를 2가지 측면으로 나누어 볼 수 있다고 하는데, 바로 문법과 의미입니다.

  • Syntatic(구문) : 문장의 구조와 문법적 관계를 분석하여 언어를 이해합니다. 구문 분석(Syntactic Parsing)은 문장을 구성하는 단어들 간의 문법적 관계와 구조를 파악하는 과정으로, 이를 이용하여 구문 트리를 생성할 수 있습니다. 이렇게 문법적 관계를 이해하는 것은 언어 이해의 기본 구성 요소입니다.
  • Semantic(의미) : 문장의 의미를 추론하고 이해하는 과정입니다. 의미론적인 분석을 통해 단어, 구문, 문장 간의 의미 관계를 파악하며, 이를 기반으로 텍스트에서 정보를 추출하고 이해할 수 있습니다. 의미적 분석에는 단어 간의 유사성, 의미 역할 레이블링(Semantic Role Labeling), 감성 분석(Sentiment Analysis) 등이 포함됩니다.

NLU의 주요 Task들은 아래와 같다.

ⅱ. 구문 분석(Syntactic Parsing)

구문 분석(Syntactic Parsing)은 자연어 처리(NLP)에서 문장의 구조와 문법 규칙을 파악하는 과정입니다. 구문 분석의 목표는 문장에 존재하는 단어들의 문법적인 관계를 이해하고, 이를 언어의 문법과 구조에 따라 표현하는 것입니다. 이를 통해 모델은 문장이 구성되는 방식과 각 단어가 담고 있는 정보를 추출할 수 있습니다.

syntacticparsingpng 출처 : https://www.analyticsvidhya.com/blog/2022/03/syntactical-parsing-in-nlp/

주요 방법으로는 아래와 같은 두 가지가 있습니다.

  1. 의존성 구문 분석$_{Dependency Parsing}$

    단어 간의 의존 관계를 파악하여 각 단어 간의 계층 구조를 표현합니다. 각 단어는 다른 단어와의 관계(의존)를 나타내는 화살표 형태의 “의존 에지(dependency edge)”를 갖게 됩니다. 의존성 구문 분석은 간결성과 의미 파악에서 장점이 있어, 기계 번역이나 정보 추출에 종종 사용됩니다.

  2. 구성 구문 분석$_{Constituency Parsing}$

    문장 내에서 구성 요소를 나타내는 부분집합으로 문장을 분해하고, 이를 나무(Tree) 구조로 생성합니다. 구성 구조는 주로 문장을 구성하는 부분을 더 작은 단위로 나누고 이를 계층적 구조로 표현하는 방식입니다. 이러한 구조는 구문 규칙(Syntax Rule)을 이용해 단어들의 관계를 명확하게 해석할 수 있습니다.

구문 분석을 통해 자연어 처리 모델은 문장의 구조를 이해하고, 이를 다양한 NLP 응용 분야에 활용하여 문제를 해결할 수 있습니다. 구문 분석은 기계 번역, 감성 분석, 질의응답 시스템 등 다양한 분야에서 중요한 역할을 합니다.

ⅲ. 개체명 인식(Named Entity Recognition, NER)

개체명 인식(Named Entity Recognition, NER)은 자연어 처리(NLP) 분야에서 텍스트 데이터에서 특정 유형의 정보를 찾고 분류하는 작업입니다. 일반적으로 개체명 인식은 인물명, 조직명, 위치명, 날짜, 시간 등과 같은 개체를 탐지하고, 이를 미리 정의 카테고리에 할당하는 과정입니다.

개체명 인식은 다양한 응용 분야에서 사용되며, 중요한 정보를 추출하고 분석하는 데 도움이 됩니다. 예를 들면 정보 검색,감성 분석, 이벤트 추출,지식 그래프 구축(텍스트에서 발견되는 개체를 지식 그래프의 노드로 사용하여 지식 그래프를 구축) 등이 있습니다.

태깅 시스템

NER은 문장을 token 단위로 나누고 태깅하여 개체명 유무를 분간합니다. 예를 들어 ‘California State University’에서 3가지 ‘California’, ‘State’, ‘University’의 개체명으로 보는 것이 아니라 하나의 개체명으로 인식하는 것입니다.

이런식으로 여러 개의 토큰들을 하나의 개체명으로 묶기 위해 태깅 시스템(Tagging)이 등장하게 되었습니다.

딥러닝 이전에는 도메인에 특정 패턴이나 사전을 적용하는 ‘규칙 기반 접근(Rule-based Approaches)’, 문맥적 유사도에 기반한 클러스터링 ‘비지도 학습 접근(Unsupervised Learning Approaches)’, 다중 클래스 분류나 시퀀스 라벨링 영역으로 넘어간 변수 기반 지도 학습 접근(Feature-based Supervised Learning Approaches)을 활용했다고 합니다.

하지만 요즘은 딥러닝 및 머신러닝 알고즘과 결합하여 개체 유형을 분류합니다. 특히 한국어에 특화된 NER 엔진으로 한국어 NER 엔진으로는 ‘ETRI’, ‘Khaiii’, ‘KoBERT-NER’ 등이 있으며 준비된 데이터 셋들 또한 다양하게 존재합니다.

일반적으로 BIO (Beginning, Inside, Outside) 태깅 체계를 사용하여 개체명을 표기하고, 순환 신경망(CNN), LSTM (Long-Short Term Memory), BERT와 같은 Transformer 기반의 모델을 사용하여 개체명 인식 과제를 수행할 수 있습니다.

ⅳ. 감성 분석(Sentiment Analysis)

감성 분석(Sentiment Analysis)은 텍스트 데이터에서 감정, 의견, 태도 등을 인식하고 분류하는 자연어 처리(NLP) 작업입니다. 감성 분석의 목적은 주로 긍정, 부정, 중립과 같은 감정을 파악하거나, 텍스트에 담긴 고객 반응, 관심도, 호감도 등의 정보를 추출하는 것입니다. 감성 분석은 다양한 응용 분야에 활용되며 소셜 미디어, 제품 리뷰, 온라인 토론, 시장 조사 등 다양한 데이터에서 중요한 인사이트를 제공할 수 있습니다.

감성과 감정에 차이는?
감정(emotion)은 개인이 대상에 대해 느끼는 정신적 반응(심리적 상태)이고, 감정(Sentiment)는 더 추상적인 개념으로 감정을 정리된 형태로 사회적으로 표현 가능하게 하는 태도 입니다. 예시를 들면 ‘노인이 어린 시절을 기억하고 감성적이 되었다’라고 하면 어린시절의 기억(생각) → 어린시절경험의 자부심(감정) → 어린 시절이 좋았다는 정신적 태도 또는 믿음(감성) 으로 표현할 수 있습니다.

감정분석 기자가 쓴 기사를 얼마나 중립적으로 쓰는지 직접 구현한 그래프

주요 감성 분석 작업 유형은 다음과 같습니다.

  1. 이진 감성 분석(Binary Sentiment Analysis)

    텍스트 감정을 긍정 또는 부정 두 가지 범주로 분류하는 가장 기본적인 형태의 감성 분석입니다.

  2. 다중 클래스 감성 분석(Multi-class Sentiment Analysis)

    텍스트를 세 개 이상의 범주(긍정, 중립, 부정 등)로 분류합니다. 이 방식은 분류 범주를 더 세밀하게 나누어 좀 더 구체적인 감성 정보를 파악할 수 있도록 합니다.

  3. 점수 기반 감성 분석(Score-based Sentiment Analysis)

    텍스트 감성을 연속적인 수치로 표현합니다. 예를 들어, -1(완전한 부정)에서 1(완전한 긍정) 사이의 점수를 사용하거나, 별점 시스템을 활용할 수 있습니다.

ⅴ. 연관 검색어 추출 (Keyword Extraction)

연관 검색어 추출(Keyword Extraction)은 텍스트 또는 문서에서 가장 중요하거나 의미 있는 단어나 구문을 추출하는 자연어 처리(NLP) 작업입니다. 연관 검색어 추출은 문서의 주요 내용을 빠르게 파악하거나 텍스트에서 특정 주제를 인식하는 데 사용됩니다.

연관 검색어 추출의 주요 기술 및 방법은 다음과 같습니다.

  1. 빈도 기반 방법(Frequency-based Methods)

    문서에서 각 단어 또는 구문이 출현하는 빈도를 계산하여, 빈도가 높은 핵심 단어를 추출하는 방법인 TF-IDF(Term Frequency-Inverse Document Frequency)와 같은 알고리즘이 이에 속합니다.

  2. 그래프 기반 방법(Graph-based Methods)

    텍스트 데이터를 그래프로 표현한 다음, 그래프에서 중요한 노드를 추출하는 방법으로, PageRank와 같은 알고리즘이 사용됩니다.

  3. 기계 학습 및 딥러닝 방법(Machine Learning and Deep Learning Methods)

    기계 학습의 주요 알고리즘을 사용하여 중요한 단어를 분류합니다. 문서의 주제를 학습하여 중심 단어를 찾아낼 수 있는 딥러닝 모델(LDA, BERT 등)을 사용할 수도 있습니다.

연관 검색어 추출의 결과는 문서 또는 데이터셋의 요약, 정보 검색, 문서 분류, 클러스터링, 추천 시스템과 같은 다양한 응용 분야에서 활용될 수 있으며, 효과적인 정보 검색이나 처리를 지원합니다.

ⅵ. 음성 인식 (Speech Recognition)

음성 인식(Speech Recognition)은 사람의 음성을 텍스트 형태로 변환하는 자연어 처리(NLP) 기술입니다. 이 기술은 사람이 말하는 소리를 처리하여 이해 가능한 문자 또는 단어로 변환합니다. 음성 인식은 다양한 응용 분야에서 사용되며, 특히 음성 인식 기반의 인터페이스가 요구되는 스마트폰, 스마트 스피커, 가상 비서, 고객 서비스 등의 영역에서 중요한 역할을 합니다.

speech recognition 출처 : https://www.kardome.com/blog-posts/difference-speech-and-voice-recognition

음성 인식의 주요 작업 단계는 다음과 같습니다.

  1. 음성 신호 처리(Voice Signal Processing)

    입력된 음성 데이터를 처리하여 신호를 정제하고, 소리의 특성이 인식되기 쉬운 형태로 변환합니다.

  2. 음향 모델링(Acoustic Modeling)

    소리와 그에 해당하는 문자 또는 단어 간의 확률 표현을 학습하는 과정입니다. HMM\(_{Hidden Markov Model}\), GMM\(_{Gaussian Mixture Model}\), DNN\(_{Deep Neural Network}\) 등을 사용합니다.

  3. 언어 모델링(Language Modeling)

    문맥과 구문 정보를 기반으로 텍스트의 확률 분포를 예측한 다음, 해당 확률을 이용하여 결과를 처리하거나 최적화합니다. 자주 등장하는 단어 순서를 학습해 텍스트를 생성합니다.

  4. 디코딩(Decoding)

    앞서 언급한 모델을 조합하여 최적의 문자 또는 단어를 예측하고, 최종 텍스트 결과를 구성합니다.

음성 인식 기술은 통계적인 방법(예: HMM-GMM)에서 딥러닝(예: LSTM, RNN, CNN, Transformer)을 활용한 방법으로 발전해 왔으며, 현재는 그 중 대표적인 것으로 End-to-End 전략이 사용되고 있습니다. 최근에는 음성 인식과 자연어 처리가 결합된 방식으로 발전하고 있어, 음성 검색, 번역, 질의응답 등의 응용 분야에서 더욱 발전 가능성이 있습니다.

ⅶ. 의미 역할 레이블링 (Semantic Role Labeling)

의미 역할 레이블링(Semantic Role Labeling, SRL)은 자연어 처리(NLP)에서 문장 내 각 단어에 대해 그것들의 의미적 역할(semantic roles)을 할당하고 이해하는 작업입니다. 의미 역할 레이블링은 문장의 주요 동사 및 해당 동사와 관련된 인자들에 대해 역할을 분석하고 부여하는 과정입니다. 주요 역할에는 주어(subject), 목적어(object), 부사어(adverbial) 등이 포함됩니다.

의미 역할 레이블링의 목표는 각 동사와 관련된 인자들에 대한 정보를 파악하는 것입니다. 이를 통해 문장의 의미를 더 정확하게 이해할 수 있으며, 다양한 NLP 태스크에서 활용됩니다. 의미 역할 레이블링은 질의응답 시스템, 정보 추출, 기계 번역, 문맥 이해 등에서 중요한 역할을 합니다.

task-0000000396-b5ac8e48 출처 : https://paperswithcode.com/task/semantic-role-labeling

의미 역할 레이블링에서 사용되는 기법은 규칙 기반, 기계 학습 및 딥러닝 기반 등 다양합니다.

  1. 규칙 기반 방식(Rule-based Methods)

    문법 규칙과 패턴을 사용하여 각 단어의 의미 역할을 결정합니다. 이 방식은 정확도가 높습니다만, 만들고 유지하기가 어렵고 언어 변화에 적응이 어렵습니다.

  2. 기계 학습 방식(Machine Learning Methods)

    주로 SVM(Support Vector Machine), 의사결정 트리(Decision Tree)와 같은 지도 학습 알고리즘을 사용하여 의미 역할 레이블링 작업을 수행합니다. 이 방식은 학습 데이터에 따라 성능이 결정되기 때문에, 충분한 양의 레이블이 있는 경우 높은 성능을 얻을 수 있습니다.

  3. 딥러닝 기반 방식(Deep Learning Methods)

    컨볼루션 신경망(CNN), 순환 신경망(RNN), LSTM, Transformer 등 딥러닝 기법을 사용하여 의미 역할 레이블링을 수행합니다. 딥러닝 기반 방식은 특히 비정형 데이터를 처리하는 데 강점이 있어, 최근 연구 및 응용 분야에서 많은 주목을 받고 있습니다.

ⅷ. 중의성 해소(Word Sense Disambiguation)

중의성 해소(Word Sense Disambiguation, WSD)는 자연어 처리(NLP)에서 발생하는 단어의 중의성 문제를 해결하기 위한 작업입니다. 중의성 해소는 문장에서 동일한 단어가 여러 가지 의미를 가질 때, 해당 문맥에서 적절한 의미를 선택하는 과정입니다. 중의성은 자연어 처리 작업에서 문장의 정확한 이해를 방해하는 요소이므로, 중의성 해소는 자연어 처리의 성능을 높이기 위해 필요한 과정입니다.

중의성 해소의 주요 방법은 규칙 기반, 기계 학습 및 딥러닝 기반입니다.

WSDjpg 출처 : https://subscription.packtpub.com/book/data/9781800208421/1/ch01lvl1sec06/word-sense-disambiguation

  1. 규칙 기반 방식(Rule-based Methods)

    각 단어의 의미를 정의하는 어휘 사전과 문법적, 의미적 규칙을 활용하여 중의성을 해소합니다. 이 방식은 사전이 완벽하고 규칙이 명확할 경우 높은 정확도를 보이지만, 실제 언어 사용에서는 한계가 있습니다.

  2. 기계 학습 방식(Machine Learning Methods)

    훈련 데이터를 사용하여 지도 학습 알고리즘을 활용한 중의성 해소 방식입니다. 나이브 베이즈(Naive Bayes), 의사결정 트리(Decision Tree), SVM(Support Vector Machine) 등의 알고리즘이 이에 사용됩니다. 충분한 양의 레이블이 있는 경우 높은 성능을 얻을 수 있습니다.

  3. 딥러닝 기반 방식(Deep Learning Methods)

    인공 신경망을 통한 중의성 해소 방식으로, 문맥 정보를 반영하면서 보다 효과적인 중의성 해소를 수행하는 데 이점이 있습니다. 특히 문맥에 따른 단어의 의미 변화를 포착하는 데 강점이 있습니다.

중의성 해소는 기계 번역, 텍스트 마이닝, 감성 분석 등 다양한 자연어 처리 작업에서 핵심 역할을 합니다. 중의성을 정확하게 해소하면 전체 자연어 처리 시스템의 성능이 향상되기 때문입니다.

ⅸ. 질의응답 (Question Answering)

질의응답(Question Answering, QA)은 자연어 처리(NLP) 분야에서 사용자의 질문에 대해 정확한 답변을 찾아내거나 생성하는 시스템입니다. 질의응답 시스템은 오늘날 인공지능 가상 비서, 검색 엔진, 고객 지원 등에서 널리 활용되며, 사용자와의 자연스러운 인터랙션을 제공합니다. 정보 검색(Information Retrieval), 문서 이해(Reading Comprehension), 멀티모달 학습(Multimodal Learning) 등이 QA 작업에 포함됩니다.

AD 24658637 1 출처 : https://magazine.hankyung.com/business/article/202012087121b

질의응답 시스템은 크게 두 가지 유형으로 구분할 수 있습니다.

  1. 팩트 기반의 질의응답(Fact-based Question Answering)

    특정 사실에 대한 정보를 제공하는 질문에 대해 답변합니다. 이러한 시스템은 정해진 질문 유형에 대해 인터넷, 데이터베이스, 기계 가독성 형태의 텍스트 문서 등에서 정답을 찾아냅니다. 개체명 인식(NER), 연관 검색어 추출, 중의성 해소(WSD) 등 다양한 자연어 처리 기술이 이에 활용됩니다.

  2. 인지 기반의 질의응답(Reasoning-based Question Answering)

    주관적이거나 추론이 필요한 질문에 대해 처리하는 시스템입니다. 인지 기반의 질의응답 시스템은 사용자의 질문을 이해하고, 관련 지식을 바탕으로 추론하여 응답을 생성해야 합니다. 이러한 시스템에는 텍스트 마이닝, 지식 그래프, 기계 학습, 딥러닝 등의 기술이 사용됩니다.

질의응답 시스템을 구축하기 위해서는 다양한 단계를 거쳐야 합니다. 이를테면, 질문 분석(Question Analysis), 정보 검색(Information Retrieval), 응답 추출(Candidate Answer Extraction), 문맥 이해(Reading Comprehension) 그리고 응답 정렬(Answer Ranking) 등이 있습니다.

딥러닝 기반의 질의응답 시스템은 최근 주목받는 분야로서, 대표적인 예로 참조 방식의 질의응답(task-oriented QA)이 있습니다. 이 방식에서는 주어진 문맥 속에서 답을 찾아내야 하며, 대표적인 모델로는 BERT, GPT 등의 Transformer 기반 모델이 존재합니다. 이와 같은 모델들은 대량의 텍스트 데이터를 학습하여 질문에 대한 응답을 생성합니다.

Ⅲ. NLG

NLG는 Natural Language Generation으로 직역하자면 자연어 생성이라는 문구로 컴퓨터가 이해한 정보를 이용하여 인간이 이해할 수 있는 언어로 변환하는 과정에 중점을 둔 Task입니다. NLG는 시스템의 응답이 자연스럽고 인간처럼 느껴지도록 하기 위해 문장 구조, 어휘 선택, 문맥 일관성 등을 고려합니다. 주요 NLG 작업에는 기계 번역(Machine Translation), 자동 요약(Summarization), 대화 생성(Dialog Generation) 등이 있습니다.

ⅰ. 기계 번역 (Machine Translation)

기계 번역(Machine Translation, MT)은 자연어 처리(NLP) 분야에서 하나의 언어로 쓰인 문장이나 문서를 다른 언어로 자동으로 번역하는 기술입니다. 기계 번역은 전 세계 사람들이 서로 의사소통을 원활하게 할 수 있도록 도움을 주며, 글로벌 비즈니스, 정보 검색, 소프트웨어 지역화 및 교육 등 다양한 분야에서 활용되고 있습니다.

images 출처 : https://www.gconstudio.com/post/20201104-1

기계 번역은 여러 방법으로 구현됩니다. 주요 방식은 규칙 기반, 통계 기반, 신경망 기반의 모델입니다.

  1. 규칙 기반 기계 번역(Rule-Based Machine Translation, RBMT)

    언어 데이터가 많지 않은 초기 단계에서 사용된 방식으로, 언어학자들이 제시한 문법 규칙 및 어휘 사전을 이용하여 번역을 수행합니다. 이 방식은 특정 상황에서 정확하지만, 유연성이 떨어지고 소수 언어에 적용하기 어렵습니다.

  2. 통계 기반 기계 번역(Statistical Machine Translation, SMT)

    대량의 데이터가 필요한 이 방식은 병렬 말뭉치(원문과 번역문이 짝지어진 데이터)를 이용해 언어 유형에 관한 통계적 패턴을 학습하여 번역을 수행합니다. 이 방식은 데이터에 기반한 번역이 가능하지만, 종종 구문적이고, 의미적으로 정확하지 않은 번역 결과를 도출하기도 합니다.

  3. 신경망 기반 기계 번역(Neural Machine Translation, NMT)

    딥러닝 및 인공신경망을 사용하여 번역을 수행하는 모델입니다. 특히 인코더-디코더 구조를 사용하여 원문을 고차원의 공간에 표현한 후, 이를 목표 언어로 다시 디코딩합니다. RNN, LSTM, GRU 및 Transformer 등의 기술이 이를 가능하게 합니다. 신경망 기반의 기계 번역은 구조적이고, 의미적으로 정확한 번역을 도출하는 데 강점을 보입니다.

최근의 기계 번역 시스템은 대부분 신경망 기반 기술에 기반하며, 양방향 및 자기 주의 메커니즘을 포함하는 모델(예: BERT, GPT-3 등)으로 발전하고 있습니다. 이러한 고급 모델은 문맥 이해와 정확한 번역 생성 능력이 더욱 강화되어 사용자의 요구에 더 가까운 성능을 제공합니다.

ⅱ. 텍스트 요약 (Text Summarization)

텍스트 요약(Text Summarization)은 주어진 문서나 일련의 문장에서 핵심적인 내용만을 추출하거나 생성하여 상대적으로 짧은 요약문을 만드는 자연어 처리(NLP) 작업입니다. 텍스트 요약의 목표는 원래의 문서보다는 간결하지만 그 의미를 효과적으로 전달하는 요약문을 생성하는 것입니다. 텍스트 요약은 뉴스 기사, 연구 논문, 일정, 메시지 등의 정보를 빠르게 이해할 수 있도록 도움을 주며, 다양한 응용 분야에서 활용되고 있습니다.

Text-Summarization-NLP (1) 출처 : https://turbolab.in/types-of-text-summarization-extractive-and-abstractive-summarization-basics/

텍스트 요약은 주요하게 두 가지 방식으로 수행됩니다.

  1. 추출적 요약(Extractive Summarization)

    원문에서 중요한 문장이나 구절을 그대로 추출하여 요약문을 만드는 방식입니다. 이 방식은 원문에서 가장 중요한 정보를 포함하는 문장을 찾아내는 작업으로, 문장의 중요도를 평가하는 지표에 따라 문장을 선택합니다. 주요 지표로는 TF-IDF, TextRank 알고리즘 등이 있다. 추출적 요약은 문장 구조를 변경하지 않기 때문에 의미나 문법 측면에서의 오류는 적지만, 결과 요약문의 가독성이 높지 않을 수 있습니다.

  2. 생성적 요약(Abstractive Summarization)

    원문에서 중요한 정보를 이해하고 새로운 문장을 생성하여 요약문을 만드는 방식입니다. 이 방식은 원문의 정보를 바탕으로 사용자에게 알기 쉬운 형태로 정보를 전달하며, 원문에 없는 표현도 사용할 수 있습니다. 생성적 요약은 신경망 기반 기술을 사용하여 수행됩니다.

각 방식의 선택은 요약의 목적과 원문 특성에 따라 달라질 수 있으며, 현재 연구에서는 두 가지 방식을 혼합하여 더 효율적인 텍스트 요약 기술을 개발하고 있습니다. 이를 통해 문맥 이해, 정보 추출, 결과 요약문의 가독성에 대한 성능이 향상될 것으로 기대됩니다.

ⅲ. 이미지 캡셔닝 (Image Captioning)

이미지 캡셔닝(Image Captioning)은 컴퓨터 비전(Computer Vision)과 자연어 처리(NLP) 기술이 결합된 작업으로, 이미지를 자동으로 설명하는 텍스트를 생성하는 과정입니다. 이 작업의 목표는 이미지의 주요 객체, 색상, 상황 등을 포함하는 의미 있는 문장을 만들어 이미지의 내용을 정확하게 전달하는 것입니다. 이미지 캡셔닝은 뉴스, 소셜 미디어, 접근성, 전자상거래 등 다양한 분야에서 활용되고 있습니다.

Image_Captioning_Deep_Learning_Projects 출처 : https://www.projectpro.io/article/image-captioning-deep-learning-project/717

이미지 캡셔닝의 일반적인 프레임워크는 다음과 같습니다.

  1. 이미지 피처 추출(Feature Extraction)

    이미지에서 특징을 추출하기 위해 컨볼루션 신경망(CNN)이 사용됩니다. CNN은 이미지의 객체와 구조, 색상, 질감 등 중요한 정보를 추출하며, 이 정보가 후속 작업에 입력으로 사용됩니다.

  2. 텍스트 생성(Text Generation)

    이 단계에서 순환 신경망(RNN), LSTM(Long Short-Term Memory), 혹은 Transformer와 같은 모델을 사용하여 이미지 특징을 기반으로 문장을 생성합니다. 이를 위해 모델은 학습 데이터를 기반으로 문장의 구조와 문맥을 이해하고 텍스트를 생성해내야 합니다.

이미지 캡셔닝 시스템의 성능은 사전학습\(_{pre-trained}\)된 모델과 학습 데이터셋의 품질에 크게 영향을 받습니다. 최근 연구에서는 주요 객체 간의 관계를 이해하고 더욱 정교한 캡션을 생성할 수 있는 모델을 개발하고 있습니다. 이를 통해 이미지에 대한 더 정확하고 자연스러운 설명을 생성할 수 있게 됩니다.

ⅳ. 음성 합성 (Speech Synthesis)

음성 합성(Speech Synthesis)은 텍스트를 인간의 음성과 유사한 음성으로 변환하는 기술입니다. 이 과정에서 텍스트의 발음, 강세, 음조 등 다양한 음성 특성을 고려해 자연스러운 음성을 생성합니다. 음성 합성은 가상 비서, 오디오북, 내비게이션 시스템, 음성 인식 응용 프로그램 등 다양한 부문에서 중요한 기술로 사용됩니다.

다운로드 출처 : jbklutse.com

음성 합성에는 주로 다음 두 가지 기술이 사용됩니다.

  1. 결합 음성 합성(Concatenative Speech Synthesis)

    사람이 녹음한 음성 샘플을 순서대로 붙여 합성하는 방법입니다. 이 방식은 녹음된 음성 샘플을 토대로 자연스러운 음성을 생성하지만, 변형이 제한되어 있고 음성 라이브러리가 매우 크기 때문에 사용이 제약적일 수 있습니다.

  2. 매개변수 기반 음성 합성(Parametric Speech Synthesis)

    음성의 특성을 나타내는 매개변수를 사용하여 합성음을 생성하는 방법입니다. 이 방식은 HMM(Hidden Markov Model), DNN(Deep Neural Network) 등의 기술을 사용하여 음성 특성을 모델링하고, 합성을 위한 파라미터를 구합니다.

최근에는 인공 신경망이 통합된 음성 합성 기술이 많이 연구되고 있습니다. 몇 가지 예로 WaveNet, Tacotron, FastSpeech 등이 있으며, 무한한 변형성과 자연스러운 합성 음성 품질을 제공합니다.

이러한 음성 합성 기술은 텍스트를 사람처럼 발음하고 인토네이션을 구사할 수 있도록 계속 발전하고 있습니다. 사용자와의 자연스러운 인터랙션을 지원할 수 있는 음성 기반 인터페이스를 만들어 내는 것이 주요 목표입니다.

ⅴ. 대화형 모델(Conversational Models)

대화형 모델(Conversational Models)은 챗봇이나 GPT와 같이 인간과 기계 간의 자연어 대화를 가능하게 하는 인공지능 시스템입니다. 이 모델은 사용자와의 상호작용을 위해 자연어를 이해하고, 응답을 생성하는 기능을 수행합니다.

chatgpt 출처 : ko.wikipedia

대화형 모델은 다음과 같은 유형으로 분류됩니다.

  1. 규칙 기반 대화형 모델(Rule-based Conversational Models)

    이 모델은 미리 정의된 규칙과 패턴을 사용하여 대화를 처리합니다. 예를 들어, 특정 질문에 대해 미리 정의된 답변을 반환하는 방식입니다. 규칙 기반 모델은 비교적 간단하고 예측 가능하지만, 복잡한 대화 처리에는 제한적입니다.

  2. 검색 기반 대화 모델 (Retrieval-Based Chatbots)

    이 유형의 모델은 사전에 준비된 답변을 DB에서 검색하여 사용자의 질문에 대한 가장 적절한 답변을 여러개 골라서 그 중 최종적으로 선택합니다. 검색 기반 모델은 규칙 기반 모델보다 더 유연하지만, 새로운 질문에 대한 답변을 창의적으로 생성하는 능력에는 한계가 있습니다.

  3. 생성 기반 대화형 모델(Generative Conversational Models)

    이 유형의 모델은 생성 모델에 기반하여 문맥에 맞는 대화 응답을 생성합니다. 생성 기반 모델은 다양한 상황에서 적응할 수 있으며, 여러 가지 패턴을 처리하고 창의적인 대화를 만들 수 있지만, 훈련 데이터에 의존적입니다.

대화형 모델은 사용되는 도메인에 따라 다양한 종류로 나뉠 수 있습니다. 예를 들어, 고객 서비스, 챗봇, 헬스케어, 여행 등 다양한 분야에서 특화된 대화형 모델이 개발될 수 있습니다.

여기서 챗봇은 대화형 모델 기반이지만, 위에서 언급한 질의응답\(_{QA}\)을 포함하여 사용할 수도 있기에 혼동할 가능성이 있습니다. 조금 더 뚜렷하게 구분하자면 질문에 대해 간단하고 정확한 답변을 제공하는 단발성인 QA와는 다르게 대화형 모델은 지속적인 대화를 생성하고 문맥 및 연속성을 고려합니다.

여러 대형 회사들이 대화형 모델을 개발하고 있으며, 최근에는 사전 훈련된 언어 모델들이 공개되어 있어 개발자들이 이를 활용하여 더 높은 수준의 대화형 모델을 구현할 수 있게 되었습니다.

ⅵ. 시나리오 기반 텍스트 생성 (Scenario-based Text Generation)

시나리오 기반 텍스트 생성(Scenario-based Text Generation)은 특정 대화 상황이나 상황 설정에 기반하여 텍스트를 생성하는 기술입니다. 이는 주어진 시나리오에 따라 텍스트를 자동으로 생성함으로써 특정 목적이나 컨텍스트에 맞는 창작물(ex. 이야기, 시나리오, 시 등)을 제공할 수 있습니다.

시나리오 기반 텍스트 생성은 다양한 종류가 있을 수 있으며, 일부 주요한 종류는 아래와 같습니다.

  1. 대화 시나리오 생성(Dialogue Scenario Generation)

    대화형 AI 시스템이나 챗봇의 대화 흐름을 제공하기 위해 사용됩니다. 예를 들어, 고객 서비스 상황에서 고객의 질문에 맞는 적절한 응답을 생성하기 위해 대화 시나리오를 구성하는 것이 가능합니다.

  2. 이야기 생성(Storytelling)

    주어진 설정이나 플롯에 따라 일련의 이야기를 생성하는 기법입니다. 캐릭터, 배경, 이벤트 등의 시나리오 정보를 활용하여 감정, 패턴, 논리 등을 고려하여 텍스트를 생성합니다.

  3. 상품 설명 생성(Product Description Generation)

    제품 또는 서비스의 기능, 특징, 이점 등을 설명해주는 텍스트를 자동으로 생성합니다. 시나리오 기반 텍스트 생성을 활용하면 다양한 상황에 맞게 제품 설명을 구성할 수 있습니다.

  4. 뉴스 기사 생성(News Article Generation)

    주어진 사건, 이벤트 또는 토픽에 대한 뉴스 기사를 자동으로 생성합니다. 시나리오를 기반으로 관련 정보와 사실을 고려하여 객관적이고 품질 좋은 뉴스 기사를 작성할 수 있습니다.

ⅶ. 글 속성 변경(Text Attribute Modification)

글 속성 변경 (Text Attribute Modification): 텍스트의 특성을 변경하면서 내용을 일관성 있게 유지하는 것을 목표로 하는 작업입니다.

주어진 텍스트의 구성 요소나 스타일 또는 특성(ex. 긍정/부정, 공식적/비공식적 등)을 변경하여 새로운 내용이나 형식의 결과물을 생성하는 과정입니다. 이러한 작업은 텍스트의 의미나 정보를 변경하지 않으면서 텍스트를 다른 상황이나 목적에 맞게 적용할 수 있게 해줍니다. 일반적으로 다음과 같은 글 속성 변경 작업들이 있습니다:

  1. 단어 변경(Paraphrasing)

    동일한 의미를 갖는 다른 단어나 구문으로 텍스트를 다시 말하는 작업입니다. 이는 표현의 다양성을 높이거나 독자의 관심을 유지하는 데 도움이 됩니다.

  2. 문장 구조 변경(Sentence restructuring)

    텍스트의 문장 구조를 변경하여 문장의 길이를 줄이거나 증가시키거나, 포인트를 명확하게 강조하는 데 도움이 되는 표현으로 변경하는 작업입니다. 이 밖에도 문장 길이 균형을 맞추거나 글의 흐름과 논리를 개선하는 데 활용할 수 있습니다.

  3. 톤 변경(Tone modification)

    텍스트의 톤을 변경하여 글의 주제에 맞게 서식을 일치시키거나, 독자를 대상으로 하는 스타일로 변환합니다. 예를 들면, 공식적인 톤에서 친근한 톤으로, 또는 반대로 변경할 수 있습니다.

  4. 문체 변경(Writing style modification)

    글쓴이 고유의 문체를 바꾸어 다른 문체로 만드는 작업입니다. 이는 독창성을 높이거나 다양한 문체에 맞게 내용을 적용하는 데 도움이 됩니다.

  5. 수동태와 능동태 변경(Passive and active voice conversion)

    수동태 문장을 능동태로, 능동태 문장을 수동태로 바꾸어 글의 스타일과 의도를 조절합니다.

ⅷ. Language Modeling

다운로드 (2)

  • Predict the next word in a sequence given the words

    \[P(apple \space and \space pair \space salad) \Rightarrow P(pair | apple \space and)\]

NLG 작업은 대부분 본질적으로 확률적인 방법을 기반으로 문장을 생성합니다. 즉, 언어라는 현상을 모델링하기 위해서 단어 sequence에 확률을 할당하는 것입니다. 문장을 생성하기 위해서 주어진 정보(Text, Image, Video 등)을 이용하고, 생성된 문장을 통해 주어진 정보를 축약하거나 보강할 수 있습니다. 이때 문장을 생성한다는 것은 결국 $sequence X$ 를 가장 잘 표현할 수 있는 token sequences를 얻는 것과 동일합니다. 일반적으로 NLG task에서의 목표는 optimal한 sequence $y$를 찾는것입니다.

이러한 확률적인 접근 방식은 입력 데이터나 구조에 대한 불확실성을 다루기 때문에 적합하며, 다양한 생성 가능성을 탐색하고 가장 적합한 출력을 선택할 수 있는 기회를 제공합니다. 예를 들어, 기계 번역, 챗봇, 문서 요약 등의 작업에서 딥러닝 기반 자연어 생성 모델은 확률적으로 다음에 올 단어를 예측합니다. 이러한 확률적 방법은 언어 모델링 및 응용 프로그램에서 광범위하게 사용되고 있습니다.

대표적인 확률적 접근 방식은 Seq2Seq 모델$_{Sequence-to-Sequence Models}$과 트랜스포머\(_{Transformers}\) 모델이며, 특히 트랜스포머는 최근 대표적인 NLP 모델인 GPT와 BERT를 포함합니다. 그러나 모든 NLG 작업이 완전히 확률적인 방법에 의존하는 것은 아닙니다.

규칙 기반 방식도 자연어 생성 작업에 사용됩니다. 이러한 규칙 기반 방식은 말뭉치나 데이터에서 도출되어 정해진 규칙에 따라 문장을 생성하는 방식입니다. 이 방식은 간단한 NLG 작업에서 효과적일 수 있지만, 복잡한 상황이나 크고 다양한 데이터를 처리하는 데에 제한적일 수 있습니다.

결론적으로 NLG 태스크는 본질적으로 확률적인 작업에 기반하며, 딥러닝과 같은 기술 발전으로 인해 점점 더 정교한 모델과 결과물을 생성할 수 있게 되었습니다. 그리고 상황에 따라 규칙 기반 방식과 확률 기반 방식이 함께 사용되기도 합니다.

Ⅳ. REFERENCES

  1. NER의 현재와 미래
  2. Syntactical Parsing in NLP
  3. A Survey of the Usages of Deep Learning for Natural Language Processing



This post is licensed under CC BY 4.0 by the author.