ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Intro to NLP (4주차)
    NAVER AI TECH 2023. 3. 27. 15:16

    공부를 시작하기에 앞서 NLP가 무엇인지 OpenAI에게 물어보았다.

     

    NLP stands for Natural Language Processing. It is a subfield of artificial intelligence (AI) and computer science that deals with the interaction between human language and computers. The goal of NLP is to enable computers to understand, interpret, and generate human language, allowing them to communicate with people in a way that is more natural and intuitive.

     

    NLP involves several tasks such as text classification, sentiment analysis, language translation, named entity recognition, speech recognition, and language generation. These tasks can be used for a variety of applications, including chatbots, virtual assistants, language translation services, and even language-based recommendation systems.

     

    In order to perform these tasks, NLP relies on a combination of techniques from computer science, linguistics, and machine learning. These techniques include natural language understanding (NLU), natural language generation (NLG), information retrieval (IR), and statistical learning algorithms.

     

    자연어 처리의 목표는 컴퓨터가 인간의 언어를 이해하고 해석하고 생성할 수 있도록 하는 것이라는 점을 알 수 있다.

    그렇다면 컴퓨터가 자연어를 이해할 수 있게 만들기 위해서는 어떻게 해야 할까?

     

    1. Low-level parsing

    먼저 parsing의 뜻을 알아보겠다. NLP에서 parsing은 자연어 텍스트를 분석하여 문법 구조를 결정하는 과정을 말한다. 문장이나 텍스트를 명사, 동사, 형용사, 전치사 등으로 구성된 구성 요소로 분해하고 이러한 구성 요소들이 서로 어떻게 관련되어 있는지를 결정하는 작업을 포함한다. low-level parsing은 기본적으로 tokenization과 stemming을 포함한다.

    A. tokenization

    tokenization은 텍스트를 작은 단위, 즉 토큰으로 분할하는 과정을 의미한다. 예를 들어, "I really love you."라는 문장을 'I', 'really', 'love', 'you', '.'라는 토큰으로 분할할 수 있다.

    B. stemming

    stemming은 단어를 기본 형태 또는 어간 형태로 축소하는 과정을 의미한다. 이는 일반적으로 단어에 연결된 접두사와 접미사를 제거하여 핵심 의미를 유지하는 방식으로 수행된다. 예를 들어, 'run', 'running', 'ran', 'runner' 등은 모두 같은 핵심 의미를 지니고 있으며 'run'이라는 기본 형태로 축소될 수 있다.

     

    2. Word and Phrase level

    low level parsing을 거친 데이터를 다음과 같이 활용할 수 있다.

    A. named-entity recognition (NER)

    named-entity recognition (NER)은 텍스트에서 인명, 지명, 기관명 등과 같은 특정 개체(named entity)를 인식하고 분류하는 과정을 의미한다. 예를 들어, "Minwoo works at Naver in Seoul."이라는 문장에서 'Minwoo'는 인물, 'Naver'는 기관, 'Seoul'은 장소로 분류할 수 있다.

    B. part-of-speech tagging (POS tagging)

    part-of-speech를 한국어로 번역하면 품사이다. 따라서 part-of-speech tagging은 단어를 명사, 동사, 형용사 등과 같은 품사로 분류하는 과정을 의미한다. 예를 들어, "Minwoo works at Naver in Seoul."이라는 문장에서 'Minwoo', 'Naver', 'Seoul'은 명사로, 'works'는 동사로, 'at', 'in'은 전치사로 분류될 수 있다.

    C. noun phrase chunking

    명사구 청킹(noun phrase chunking)은 문장에서 명사구를 식별하고 추출하는 과정을 의미한다. 예를 들어, 'New York City'와 같은 단어를 하나의 명사구로 인식하고 처리할 수 있다.

    D. dependency parsing

    의존 구문 분석(dependency parsing)은 문장 내 단어들 간의 문법적 구조를 파악하기 위해, 문장 내 단어 간 의존 관계를 식별하는 기술이다. 의존 관계란 '종속'과 '독립'으로 구분되는 두 단어 사이의 문법적인 관계를 의미한다. 의존 구문 분석의 결과는 의존 구문 트리(dependency tree)라는 나무 구조로 나타난다. 의존 구문 트리는 단어 간 의존 관계를 방향성 있는 간선(edge)으로 나타내는 구조이다. 예를 들어, "The cat chased the mouse."라는 문장을 dependency tree로 나타내면 다음과 같다.

    해당 dependency tree의 root는 동사 'chased'이며 이 동사는 주어인 'cat'과 목적어인 'mouse'와 연결되어 있다. 'cat'과 'mouse'는 각각의 단어를 꾸며주는 'the'와 연결되어 있다. dependency tree에 나타난 연결을 살펴보면 각 단어들 사이의 의존 관계를 확인할 수 있다.

    E. coreference resolution

    coreference resolution은 텍스트 내에서 같은 개체를 지칭하는 모든 표현을 식별하는 과정이다. 예를 들어, "Minwoo went to Naver. He worked there."이라는 문장에서 'He'는 'Minwoo'를 지칭한다. coreference resolution은 'He'와 'Minwoo'가 같은 개체를 지칭하는 것을 식별하는 작업이다.

     

    3. Sentence level

    A. sentiment analysis

    감성 분석(sentiment analysis)은 텍스트의 감정적 톤 또는 감성을 결정하는 데 사용되는 기술이다. 이는 텍스트를 긍정적, 부정적 또는 중립적으로 분류하는 것을 포함한다.

    B. machine translation

    기계 번역(machine translation)은 한 언어에서 다른 언어로 텍스트 또는 음성을 번역하는 자동화된 시스템을 개발하는 기술이다. 이를 위해 rule-based models, statistical medels, neural machine translation models와 같은 다양한 방법을 활용하고 있다.

     

    4. Multi-sentence and Pharagraph level

    A. entailment prediction

    entailment prediction은 A문장이 B문장을 논리적으로 따르는지 아닌지 확인하는 작업이다. 예를 들어, "Minwoo worked at Naver yesterday."라는 A 문장은 "There was at least one person who worked at Naver yesterday."라는 B 문장과 논리적으로 연결되지만 "No one worked yesterday."라는 C 문장과는 논리적으로 상반된다.

    B. question answering

    C. dialog systems

    대화 시스템(dialog systems)은 컴퓨터 프로그램 또는 시스템으로, 사람과 자연어 대화를 할 수 있는 기능을 지칭한다. 이러한 시스템은 대화형 에이전트(conversational agents) 또는 챗봇(chatbots)이라고도 불린다.

    D. summarization

     

    추가적으로 NLP를 활용한 다음과 같은 연구 분야가 있다.

    * text mining

    text mining은 비정형 텍스트 데이터에서 유용한 정보와 인사이트를 추출하기 위한 분석 프로세스를 의미한다.

    * information retrieval

    정보 검색(inforamtion retrieval)은 사용자의 쿼리나 정보 요구에 기반하여 비정형 또는 반정형 텍스트 데이터 컬렉션에서 관련 정보를 검색하는 과정을 의미한다. recommendation system이 파생되었다.

     

    Sentence level에서 활용되는 sentiment analysis의 경우 영화 감상평 분석 등에 활용될 것 같고, machine translation의 경우 이미 google translation이나 papago 등에서 내가 사용하고 있는 기능일 것이다. Multi-sentence and Pharagraph level에서 question answering이나 summarization의 경우 ChatGPT가 역사의 새 지평을 열었다고 볼 수 있다. dialogy systems의 경우 최근 한국에서 유행하는 이루다를 떠올리게 한다. NLP 기술은 내가 생각한 것 이상으로 내 삶 속에 이미 침투해 있을지도 모른다.

     

    한편, 최근 NLP 최신 동향을 봤을 때, RNN-family models에서 attention modules and Transformer models로 기술이 발전함에 따라 대량 데이터셋에 대한 학습이 가능해졌고, 대량 데이터셋 학습을 위한 GPU 용량의 확보가 필수적인 시대가 되었다. 이는 내가 ChatGPT와 동일한 모델을 구축할 수 있다고 하더라도 ChatGPT와 같은 성능을 보이는 프로그램을 개발할 수 없다는 뜻이다. 한정적인 자원으로 더 높은 performance를 보이는 모델이 앞으로 나올 수 있을지 궁금하다.

     

     

     

    'NAVER AI TECH' 카테고리의 다른 글

    Attention Is All You Need  (0) 2023.03.28
    Word Embedding (4주차)  (0) 2023.03.27
    3주차 회고록 (DL Basic & Data Visualization & Git)  (0) 2023.03.24
    2주차 회고록 (PyTorch)  (0) 2023.03.17
    1주차 회고록 (Python & AI Math)  (0) 2023.03.10

    댓글

Designed by Tistory.