Skip to main content
Dreamforce가 9월 17일부터 19일까지 샌프란시스코에서 열립니다. 지금 바로 등록하셔서 DF24TRAIL20 코드를 사용해 20%의 할인 혜택을 받으세요

자연어 구문 분석 알아보기

학습 목표

이 유닛을 완료하면 다음을 수행할 수 있습니다.

  • 자연어의 기본 요소에 대해 논의할 수 있습니다.
  • 자연어 구문 분석에 사용되는 몇 가지 중요한 기술을 설명할 수 있습니다.
  • 감정, 의도 및 문맥 분석이 NLP에 기여하는 바를 설명할 수 있습니다.

자연어의 기본 요소

자연어를 이해하고 처리하는 것은 컴퓨터의 근본적인 과제입니다. 개별 단어를 인식하는 것뿐만 아니라 단어 간의 관계, 문맥, 의미를 이해하는 모든 과정을 수반하기 때문입니다.

텍스트와 음성으로 표현되는 자연어는 끝없는 복잡성, 뉘앙스, 모호함, 실수를 수반한다는 특징이 있습니다. 우리는 일상적인 의사소통에서 여러 가지 의미를 가진 단어, 발음이 같지만 철자와 의미가 다른 단어, 잘못 배치된 수식어, 철자 오류, 잘못된 발음 등을 접하게 됩니다. 또한 말을 빠르게 하거나 중얼거리거나 요점을 말하는 데 매우 오래 걸리는 사람, 우리말과 다른 억양이나 방언으로 말하는 사람들도 만나게 됩니다.

예를 한번 들어 보겠습니다.

"We saw six bison on vacation in Yellowstone National Park."

들소 여섯 마리가 모자와 선글라스를 쓴 채 올드 페이스풀 앞에서 셀카 포즈를 취하는 모습을 상상하며 웃음이 날 수도 있습니다. 하지만 그런 상상을 하기보다는 누군가가 옐로스톤 국립공원에 휴가를 갔다가 들소 여섯 마리를 봤다는 실제 의미를 이해할 가능성이 높습니다.

다른 예를 살펴보겠습니다.

"They swam out to the buoy."

아무런 맥락 없이 이 말을 들었다면 사람들이 남자 아이(boy)를 향해 헤엄쳐 나왔다고 생각할 수 있지만, 실제로는 물 위의 부표(buoy)까지 헤엄쳐 나왔다는 뜻입니다. 'boy'와 'buoy'의 발음은 약간 다르지만, 항상 명확하게 발음이 구분되지는 않습니다.

인간은 언어를 상당히 쉽게 구사하고 상황에 따라 적응할 수 있지만, 컴퓨터가 이러한 뉘앙스를 고려하도록 학습시키기란 꽤 어렵습니다.

자연어로서 영어를 구성하는 요소는 다음과 같습니다.

  • 어휘: 우리가 사용하는 단어
  • 문법: 문장 구조를 지배하는 규칙
  • 구문: 문법에 따라 단어가 결합되어 문장을 형성하는 방식
  • 의미론: 단어, 구, 문장의 의미
  • 화용론: 문화적 또는 지리적 언어 사용에 내포된 맥락과 의도
  • 담화 및 대화: 서면 및 구두 대화를 포함한 단일 구문이나 문장보다 큰 단위
  • 음성학 및 음운론: 우리가 소통할 때 내는 소리
  • 형태론: 단어의 일부가 결합되거나 분리되어 새로운 단어를 만드는 방법

자연어 구문 분석하기

컴퓨터에게 단어를 읽고 의미를 도출하는 방법을 학습시키는 것은 단어, 소리, 의미, 발음을 인식하는 방법을 학습한다는 점에서 아이에게 글을 읽는 방법을 가르치는 것과 비슷합니다. 하지만 어린 아이가 읽는 법을 배울 때는 일반적으로 이야기의 맥락, 삽화의 시각적 단서, 나무나 동물과 같이 이미 알고 있는 사물과의 관계 등과 같은 정보를 활용할 수 있습니다. 또한 학습 내용을 설명하는 데 도움을 주는 숙련자로부터 도움과 격려를 받기도 합니다. 이러한 단서들은 초보 독자가 단어와 구문을 식별하고 의미를 부여하는 데 도움이 되며, 앞으로 읽게 될 다른 내용에도 일반화하여 응용할 수 있습니다.

목록, 정보, 고객 서비스, 스팸 탐지 등 처리할 수 있는 작업의 기호를 가리키는 자연어 처리 로봇.

컴퓨터는 인간과는 다른 측면에서 지능이 높은 존재이기 때문에 앞서 설명한 자연어의 요소를 이해하는 것이 맞지만, 그 접근 방식은 훨씬 더 과학적이어야 합니다. NLP는 대규모 언어 모델(LLM), 통계 모델, 머신 러닝, 딥러닝, 규칙 기반 시스템과 같은 알고리즘과 방법을 사용하여 텍스트를 처리하고 분석합니다. 이러한 기술을 구문 분석이라고 하며, 텍스트나 음성을 더 작은 부분으로 쪼개 NLP에 사용하기 위한 용도로 분류하는 작업이 포함됩니다. 구문 분석에는 자연어의 요소를 분석하여 기본적인 문법 구조를 파악하는 구문론적 구문 분석과 의미를 도출하는 의미론적 구문 분석이 포함됩니다.

지난 유닛에서 언급했듯이 자연어는 의도한 결과를 얻기 위해 다양한 방식으로 구문 분석됩니다. 예를 들어 번역 앱을 위해 구문 분석되는 자연어는 다른 알고리즘 또는 모델을 사용하며 Alexa와 같은 가상 어시스턴트를 위한 자연어와는 다른 방식으로 구문 분석됩니다.

구문 분석에는 다음이 포함될 수 있습니다.

  • 세분화: 긴 텍스트가 더 작고 의미 있는 덩어리로 나뉩니다. 세분화는 일반적으로 문장 끝의 문장 부호가 있는 지점에서 이루어지며 추가 분석을 위해 텍스트를 정리하는 데 도움이 됩니다.
  • 토큰화: 문장이 토큰이라고 하는 개별 단어로 분할됩니다. 영어에서는 단어가 보통 공백으로 구분되기 때문에 토큰화가 매우 간단합니다. 태국어나 중국어와 같은 언어에서는 토큰화가 훨씬 더 복잡하며, 언어를 정확하게 토큰화하기 위해 어휘와 형태에 대한 이해에 크게 의존하게 됩니다.
  • 스테밍: 단어는 어근 형태, 즉 어간으로 축소됩니다. 예를 들어 breaking, breaks, unbreakable은 모두 break로 축소됩니다. 스테밍은 단어 형태의 변형을 줄이는 데 도움이 되지만 문맥에 따라 가장 정확한 어간으로 이어지지 않을 수도 있습니다. 스테밍을 사용한 두 사례를 살펴보겠습니다.

"I’m going outside to rake leaves."

어간 = leave 

“He always leaves the key in the lock.”

어간 = leave 

  • 표제어 추출: 표제어 추출은 스테밍과 마찬가지로 단어를 어근으로 줄이되 품사를 고려하여 훨씬 더 유효한 어근 단어, 즉 어근에 도달하도록 합니다. 표제어 추출을 사용하는 두 가지 예를 살펴보겠습니다.

"I’m going outside to rake leaves."

표제어 = leaf 

“He always leaves the key in the lock.”

표제어 = leave 

  • 품사 태깅: 명사, 형용사, 동사 등의 품사에 따라 각 단어에 문법적 레이블 또는 태그를 할당합니다. 품사 태깅은 컴퓨터가 문장의 구문을 이해하는 데 도움이 되므로 NLP에서 중요한 기능입니다.
  • 개체명 인식(NER): 알고리즘을 사용하여 사람, 날짜, 장소, 조직 등과 같은 이름이 정의된 개체를 텍스트에서 식별하고 분류하여 질문에 대한 답변 및 정보 추출과 같은 작업을 지원합니다.

의미 분석

앞서 살펴본 단계 중 일부 또는 전부를 사용하여 자연어를 구문 분석하면 텍스트나 음성의 의미를 꽤 효과적으로 파악할 수 있습니다. 하지만 인간의 언어를 인간답게 만드는 소프트 스킬의 뉘앙스가 부족합니다. 의미론적 구문 분석에는 문장의 문법 형식과 단어와 구문 간의 관계를 분석하여 의미 표현을 찾는 작업이 포함됩니다. 사람들이 느끼는 감정, 몰입하는 이유, 상호작용을 둘러싼 상황에 대한 세부 정보를 추출하는 것은 모두 텍스트나 음성을 정확하게 해독하고 적절한 반응을 형성하는 데 중요한 역할을 합니다.

NLP에서 사용되는 몇 가지 일반적인 분석 기법을 살펴보겠습니다. 이러한 기술은 특정 작업과 분석의 복잡성에 따라 원하는 수준의 이해를 얻기 위해 여러 가지 알고리즘을 통해 구현될 수 있습니다.

분위기 분석: 문장, 소셜 미디어 게시물, 리뷰, 트윗 등의 텍스트가 긍정적, 부정적 또는 중립적 감성 중 어떤 것을 표현하는지 판단하는 작업을 포함합니다. 감성이란 어떤 대상에 대한 느낌이나 태도를 말합니다. 예를 들어, 분위기 분석을 통해 서비스에 대한 고객의 리뷰가 긍정적인지 부정적인지 판단할 수 있습니다. "머리를 자르기 위해 아주 오래 기다려야 했습니다." 감성은 텍스트에서 감정이나 의견을 식별하고 분류하여 제품, 서비스 또는 경험에 대한 사람들의 감정을 기업이 이해하는 데 도움이 됩니다.

행복해 보이는 여성의 말풍선에는 '내가 지금까지 먹어본 피자 중 가장 맛있어요!'라고 적혀 있고, 언짢아 보이는 남성의 말풍선에는 '아직까지도 머리를 자르려고 기다리는 중입니다.'라고 적혀 있습니다.

의도 분석: 의도는 상대방이 말하거나 쓴 내용을 바탕으로 상대방이 무엇을 원하거나 의미하는지를 이해하는 데 도움이 됩니다. 말 뒤에 숨겨진 목적이나 의도를 해석하는 것과 같습니다. 예를 들어, 누군가 고객 지원 챗봇에 '계정에 로그인할 수 없습니다'라고 입력하면 의도 분석을 통해 그 사람의 의도가 계정에 액세스하기 위한 도움을 받고자 하는 것임을 인식할 수 있습니다. 챗봇은 회신을 통해 비밀번호 재설정 또는 사용자가 계정에 액세스할 수 있는 다른 방법에 대한 세부 정보를 알려 줄 수 있습니다. 가상 비서, 고객 지원 시스템 또는 챗봇은 종종 의도 분석을 사용하여 사용자가 요청하는 바를 이해하고 적절한 응답이나 조치를 제공합니다.

문맥(담화) 분석: 자연어는 문맥에 크게 의존합니다. 상황, 제공된 세부 정보, 대화하는 사람들 사이에 존재하는 공유된 이해에 따라 문장에 대한 해석이 달라질 수 있습니다. 문맥 분석은 이러한 주변 정보를 이해하여 텍스트를 이해하는 것과 관련된 활동입니다. 예를 들어, 누군가가 'They had a ball'이라고 말하면 문맥 분석을 통해 'ball'이 멋진 댄스 파티인지, 구기 종목에 쓰이는 공인지, 아니면 아주 즐거운 시간인지 파악할 수 있습니다. 문맥 분석은 지나간 대화나 논의 중인 주제를 고려하여 이러한 분석을 수행합니다. 문맥 분석을 사용하면 더 넓은 문맥, 단어 간의 관계를 비롯한 기타 관련 정보를 고려하여 NLP 시스템이 단어를 더 정확하게 해석할 수 있습니다.

분위기 분석, 의도 분석, 문맥 분석의 세 가지 분석 기법은 텍스트 및 음성 데이터로부터 가치 있는 인사이트를 추출하는 데 중요한 역할을 합니다. 이러한 분석 기법은 다양한 NLP 활용 분야에서 텍스트 컨텐츠에 대한 정교하고 정확한 이해와 참여를 유도합니다.

요약

이 모듈에서는 영어와 관련된 NLP에 관련한 전반적인 내용을 살펴 보았습니다. 현재까지 대부분의 NLP 연구는 영어를 기반으로 이루어지지만, 스페인어, 프랑스어, 페르시아어, 우르두어, 중국어, 아랍어로 수행된 연구도 상당히 많습니다. NLP는 매우 빠르게 진화하는 AI 분야입니다. 그리고 NLP의 발전으로 인해 더욱 정교한 언어 이해, 교차 언어 기능, 다른 AI 분야와의 통합이 빠르게 이루어지고 있습니다.

리소스