검수요청.png검수요청.png

자연어 처리

해시넷
Asadal (토론 | 기여)님의 2020년 7월 20일 (월) 16:16 판 (같이보기)
이동: 둘러보기, 검색

자연어 처리(natural language processing)란 컴퓨터를 이용하여 인간의 언어를 이해하고 생성 및 분석하는 인공지능 기술이다. 인간의 언어 현상을 컴퓨터와 같은 기계를 이용해서 모사 할 수 있도록 연구하고 이를 구현하는 인공지능의 주요 분야 중 하나다. 자연어 처리는 연구대상이 언어학과 언어 현상의 내적 기재를 탐구하는 언어 인지 과학과 연관이 있다. 구현을 위해 수학적 통계적 도구가 많이 활용되며, 기계 학습 도구가 많이 사용된다.

개요

각종 문서나 뉴스, SNS 등 온·오프라인을 가리지 않고 자연어는 많은 곳에서 각기 다른 난이도를 가진 채 존재한다. 바로 이 자연어를 컴퓨터가 읽고 처리할 수 있게 하는 것이 자연어 처리이다. 컴퓨터와 사람 간의 상호작용을 연구하는 컴퓨터 과학과 어학의 한 분야로, 인간의 언어를 이해하기 위해 머신러닝 기술을 적용하여 데이터를 처리하면 과거의 전통적인 방식과는 달리 좀 더 손쉽고 신속하게 정보를 얻어낼 수 있다. 따라서 자연어 처리는 정보검색, 자동통역, 문서작성, 요약분류, 철자 오류 수정 등 이용자의 의도를 컴퓨터가 파악하여 다양한 데이터를 정확하게 제공하는 데 사용된다. 대표적인 자연어 처리 서비스로는 구글 홈, 구글 어시스턴트, 워드렌즈, 왓슨, 코타나, 스카이프 트랜스레이터, 그래머리, 진저 등이 있고, 세부 기술로는 형태소 분석, 고정밀 구문분석과 같은 구조 분석을 바탕으로 한 담화 분석, 문서분류, 정보 요약, 정보추출 기술 등이 있다. 분석은 자연언어 문장에서 형태소 분석, 구문 분석, 의미 분석, 화용 분석 단계를 거쳐 결과가 도출된다.

1950년대부터 기계 번역과 같은 자연어 처리 기술이 연구되기 시작했으며, 90년대 이후에는 대량의 말뭉치 데이터를 사용하는 기계 학습 기반 및 통계적 자연어 처리 기법이 자주 사용되었다. 최근에는 자연어를 효율적으로 처리하기 위해서 딥러닝 기술을 기계 번역 또는 자연어 생성 등에 사용하고 있다. 중의성이 있는 단어, 동음이의어의 경우에는 머신러닝 기법을 통해 해결할 수 있기 때문이다. 애피어의 쑨민 최고 인공지능 과학자는 기계가 인간의 언어를 효율적으로 이해하고 번역하기 위해서는 인간이 단어 간의 관계를 명확히 밝혀줘야 한다고 말했다. 여기서 딥러닝이 사용된다면, 인공지능은 딥러닝을 통해서 단어와 구문이 상황에 따라 어떻게 사용되고 있는지 의미를 학습하는 것이 가능하다. 즉, 누군가 인공지능에 미리 정의된 내용을 입력하지 않았고, 인간이 그사이에 개입해서 관계를 정의하지 않아도, 인공지능 스스로 단어나 구문의 의미를 파악하고 기능을 수행할 수 있게 된다.[1]

딥러닝도 대량의 텍스트 데이터는 필요하다. 컴퓨터는 각각의 토큰이 나타내는 벡터를 학습하는데, 여기서 벡터는 비슷한 단어가 서로 근접하게 매핑되는 곳을 말한다. 가깝게 배치된 비슷한 컨텍스트를 가진 단어들이 의미상 같은 뜻을 공유할 가능성이 높다는 것을 보여준다. 딥러닝과 벡터 매핑을 통해 인간의 개입이 없어도 인공지능 스스로 언어를 보다 정확하게 처리할 수 있으며, 키워드 기반 마케팅이나 감정 분석에도 좋은 결과를 기대할 수 있다. 키워드 기반 마케팅에 활용할 때 벡터의 중요성은 두드러질 것이고, 딥러닝 기반의 자연어 처리를 활용하면 정교한 정서 분석이 가능해질 것이다.[2]

단계

자연어 처리는 자연어로 이루어진 문장을 입력한 후, 형태소 분석, 구문 분석, 의미 분석, 화용 분석을 거친 후, 결과를 도출하는 일련의 과정으로 이루어져 있다.

형태소 분석

자연어 처리에서의 형태소 분석은 대상을 가작 작은 의미 단위인 형태소로 분석하는 것을 의미한다. 정보 검색 엔진에서 한국어의 색인어를 추출할 때 많이 사용된다. 자연어로 작성된 SNS, 웹 문서, 뉴스 기사의 텍스트 데이터를 형태소로 변환해야 다음 단계의 분석 효율성이 올라가기 때문에, 문장을 최소단위까지 쪼개는 것이다. 형태소 분석의 치명적인 약점은 오탈자 발생, 띄어쓰기 오류, 등록되지 않은 언어 등으로 분석에 오류가 발생하거나, 중의적인 의미와 신조어 처리 등이 있다. 복합 명사의 분해도 형태소 분석의 어려운 문제 중 하나이다. 복합 명사란 하나 이상의 단어가 합쳐져 새로운 의미를 생성해 낸 단어를 말하는데, 이러한 단어는 띄어쓰기에 따른 형식도 정확하지 않고, 복합된 유형에 따라 의미와 분해가 다양한 형태를 보이기 때문이다. 형태소 분석은 전처리, 후보 생성 단계, 후처리 단계로 이루어져 있다. 형태소 분석은 띄어쓰기 단위로 진행되며, 한국어는 영어에 비교하여 형태소 분석이 복잡하다. 기계적으로 복합명사를 처리하는 방식은 N-gram, 통계 언어 모델 등등이 있는데, 그중 N-gram의 bi-gram은 음절 단위를 기반하여 연속된 두 단어를 단어별로 쪼갤 수 있다. 예를 들어, '복합 명사'를 음절 단위로 나눈다면 '복합+명사', '복+합명사', '복합명+사' 의 세 가지 형태로 쪼갤 수 있다.[3]
일반적으로 한국어의 형태소 분석에서는 태뷸러 파싱(Tabular Parsing)을 사용하여 형태소의 후보를 분석하는 방법과 기계 학습에 기반한 품사 부착이 사용된다. 과거에는 형태소를 분석할 때 HMM이나 CRF를 사용했지만, 최근에는 딥러닝을 적용하여 분석하고 있다.[4][5]

구문 분석

문장을 구성하는 성분 간의 관계를 분석하는 것을 말한다. 언어의 종류에 상관없이 모든 언어에는 문장을 구성하는데 규칙이 뒤따르기 때문에 필요한 과정이다. 구문 분석은 언어학에서 통사 분석이라고도 불리며, 문장을 구성 성분으로 분해하고 구성 성분 간의 위계 관계를 분석하여 문장의 구조를 결정하는 것을 말한다. 통사는 생각이나 감정을 언어로 표현할 때 완결된 내용을 나타내는 최소의 단위이다. 컴퓨터 과학에서는 일련의 문자열을 의미 있는 토큰으로 분해하고 파스 트리(parse tree)로 만드는 과정을 말한다. 이 과정에는 파서(parser)가 사용되는데, 파서는 인터프리터나 컴파일러의 구성 요소 가운데 하나이다. 인터프리터나 컴파일러의 구성 요소 중 하나로, 입력 토큰 내에 들어 있는 자료 구조를 빌드하고 문법을 검사한다. 또한, 일련의 입력 문자로부터 토큰을 생성하기 위해 별도의 낱말 분석기를 이용하기도 한다. 파서의 프로그래밍은 수작업으로 이루어지며, 도구를 사용하여 반자동 적으로 만들 수도 있다. 문장은 주어와 서술어가 모두 있어야 하는 것이 원칙이지만, 감탄사와 같은 경우 예외가 발생할 수 있다. 어휘적 중의성과 구조적 중의성이 일어날 수도 있다. 시간이 지남에 따라 의존 단계를 구 단위로 분석하는 방법에서 구성 성분 단위로 분석하는 방법으로 발전하고 있다.
세계 각국의 다양한 언어는 언어별 특성에 따라 사용되는 알고리즘이 다르며, 영어는 MST알고리즘, 한국어는 SKY알고리즘이 사용된다. 구문 분석에는 국립국어원에서 제작한 세종코퍼스가 많이 사용되고 있고, 딥러닝도 많이 활용되고 있다.

의미 분석

문장이 나타내는 의미를 분석 및 해석하여 문장 속 단어가 실제로 어떤 의미로 사용되었는가를 판단한다. 문장은 단어의 중의성, 문장의 구조 차이로 인한 통사적 중의성, 통사적으로는 옳을 수 있으나 의미상으로 틀린 중의성, 부정표현으로 인한 중의성, 상황에 따른 중의성 등이 있을 수 있다. 다음은 문법적으로 옳지만 의미적으로 틀린 문장의 예시이다.
  • 동생이 딸기를 먹는다(O)
  • 동생이 아파트를 먹는다(X)
따라서 문법적으로는 규칙에 맞지만 의미가 올바르지 못한 문장들을 알아내야 한다. 이 과정에서 형태소의 의미를 표현하는 지식 표현 기법이 필요하다. 구조 분석기에 의해 생성된 구조들은 의미가 부여된다. 상황에 맞지 않고 맥락에 맞지 않은 문장을 구분하기 위해 각 단어가 지식베이스에서 적절한 개체로 매핑되고, 각 단어의 의미가 서로 결합하는 방법으로 구조를 생성한다. 의미 구조의 대표적인 문법으로는 의미망(Semantic Network), 격문법(Case Grammer), 몬태규 문법(Montague Grammer), 개념의존(Conceptual Dependency) 등이 있다.

화용 분석

문장과 문장 간의 관계에 집중하여 상황을 분석한다. 기계가 발화자의 질문 의도를 파악하고 알맞은 응답을 하는 데 필요한 단계이다. 현실과 어떤 연관 관계가 있고 대화의 흐름으로는 어떤 의미가 있는지를 분석하기 위해, 실세계의 상식 및 지식에 대한 많은 데이터가 필요하다.

활용

  • 자연어 API  : 2017년 11월 27일, 구글 클라우드 플랫폼(GCP)에서 자연어 API를 배포했다.[6] 자연어 API는 영어뿐만 아니라 한국어, 중국어, 일본어, 이탈리어어, 독일어, 스페인어 등 다양한 언어의 분석이 가능하고, 일부 기술은 영어에만 적용이 된다. 구글 자연어 API에서는 감성 분석, 엔티티 분석, 구문 분석, 엔티티 감성 분석, 내용 분류 다섯 가지 메소드를 제공했는데, 엔티티 감성 분석과 내용 분류는 영어에만 기능이 적용된다. 감성 분석의 경우, 감성을 정향화한 스코어와, 스코어의 정도를 나타내는 수치로 나누어 점수를 매긴다. 감성을 정향화한 스코어는 -1에 가까우면 부정, +1에 가까우면 긍정의 의미를 갖게 되고, 스코어의 정도를 나타내는 수치는 0에서 무한대의 값을 가진다. 만약 긍정적인 문장 세 줄과 부정적인 문장 두 줄을 입력할 시, 시스템은 스코어와 수치를 계산하여 긍정적인 문서라고 판단한다. 엔티티 분석은 문장에서 고유 명사나 식당, 유명인 단어를 분석한다. 구문 분석은 문장을 토큰 단위로 분리하여 분석한다. 의존성, 품사, 기본형 등 분석 결과를 제공한다.[7]
  • 엑소브레인 : 과학기술정보통신부가 국가적으로 추진 중인 국가 혁신기술 연구개발 프로젝트로, '내 몸 밖의 인공두뇌'라는 의미이다. 2016년 EBS 장학퀴즈에서 인간과 함께 대결한 결과, 압도적으로 승리하여 유명해졌다. 이를 통해 대중에게 '한국형 알파고'라고 불리기도 했다. 프로젝트의 비전은 '세계 최고의 인공지능 기술을 선도한다'며, 최종 목표는 '자연어를 이해하여 지식을 자가학습하며, 전문 직종에 취업 가능 수준의 인간과 기계의 지식 소통이 가능한 지식과 지능이 진화하는 소프트웨어'를 개발하는 것이다. 프로젝트는 핵심 기술 개발, 응용 기술 개발, 글로벌 기술 개발 3단계로 진행될 계획이며, 10년이 넘는 개발 과정 동안 약 800여억 원이 넘는 자본이 투자됐다. 프로젝트에는 한국전자통신연구원(ETRI)와 카이스트(KAIST), 그리고 자연어처리 기업 ㈜솔트룩스 등이 참여했다. 2018년 8월, 한국전자통신연구원과 ㈜솔트룩스, 카이스트는 '엑소브레인 언어지능 심포지엄'을 개최했다. 한국전자통신연구원의 김현기 박사는 인공지능 문어체 구문 분석의 경우 언어학자 수준의 분석이 가능하지만, 의미 분석은 연구 초기 단계에 해당한다고 말했다.[8]
  • 카이 : 카카오에서는 2018년부터 형태소 분석기 카이를 오픈소스로 제공하고 있다. 딥러닝 기술을 기반으로 개발된 형태소 분석기를 오픈소스로 제공한 것은 국내에서 카카오가 최초이다. 딥러닝 기술 중 하나인 CNN을 사용하여 형태소가 분석되며, 국립국어원에서 배포한 세종 코퍼스를 기반으로 데이터 오류는 없는지 검사하고 수정했다. 카이의 딥러닝 과정에는 C++ 언어가 사용되어 그래픽처리장치를 사용하지 않아도 분석 속도가 빠르다.[9][10]
  • 그래머리 : 2009년에 설립된 영문 문법 검사기이다. 현재 수백만 명의 사용자가 이용하고 있는 온라인 편집 기업이다. 사용하고 있는 브라우저에 무료 브라우저 확장 프로그램을 설치하면 손쉽고 용이하게 사용이 가능하다. 머신러닝, 딥러닝, 자연어 처리 방식 등 인공지능 방법론을 조합하여 구축된 프로그램으로, 인공지능 시스템에는 피드백 메커니즘을 가지고 있다. 따라서 문법적인 특정 피드백을 다수의 사용자가 거절할 경우 연구원이 알고리즘을 조정하여 프로그램의 지속적인 성장과 유지보수가 용이하다.

"그래머리(grammar.ly)의 맞춤법 검사는 인공지능과 결합하며 더 똑똑해지고 있습니다. 잘 작성된 영문 콘텐츠를 머신러닝한 덕분이죠. 이 덕분에 시중 사전이나 번역기보다 문장을 훨씬 더 자연스럽게 교정합니다. 신조어를 무조건 오류로 출력하지 않죠. 다른 영문과 비교해 많이 사용되는 단어로 인식되면 오류 표시를 하지 않습니다."[11]

  • 샤오아이스  : 마이크로소프트가 중국에서 선보인 챗봇으로, 일상 대화를 50문장 이상 진행할 수 있다.
  • 봇숍 : 미국의 메신저 업체 킥은 20, 30대 젊은 소비자를 타깃으로 운영중인 기업으로, 화장품 및 의류 기업들과 제휴하여 봇숍이라는 챗봇을 운영하고 있다. 봇숍은 코디네이터처럼 사용자와 대화하며 사용자에게 옷과 화장품을 추천해준다. 또한 메뉴에서 원하는 업체나 메신저를 고르고 원하는 서비스를 말하면, 해당 업체에서 서비스를 제공한다.

각주

  1. SD아카데미, 〈인공지능(A.I)기술과 자연어 처리(Natural Language Processing)〉, 《네이버 블로그》, 2018-03-23
  2. 애피어, 〈딥러닝이 자연어 처리(NLP)에 가장 효과적인 이유〉, 《애피어》, 2019-07-16
  3. 자연어 처리 위키백과 - https://ko.wikipedia.org/wiki/%EC%9E%90%EC%97%B0%EC%96%B4_%EC%B2%98%EB%A6%AC
  4. 김경선, 〈[인공 지능 기반 언어 처리 기술 - 자연어 대화 인터페이스를 중심으로]〉, 《새국어생활》
  5. 국민대학교 자연언어처리 연구실 - http://nlp.kookmin.ac.kr/main.html
  6. 구글 클라우드 홈페이지 자연어 - https://cloud.google.com/natural-language/
  7. 이영민, 〈구글의 자연어 처리 기술〉, 《브런치》, 2017-11-27
  8. 강승만 에디터, 〈ETRI 언어지능 심포지엄, ‘구문분석’ 언어학자 수준…의미분석은 초기단계 “고품질 학습테이터 필요”〉, 《사이언스모니터》, 2018-08-13
  9. 플래텀, 〈카카오, 딥러닝 기술 기반의’형태소 분석기’ 오픈소스 제공〉, 《플래텀》, 2018-11-30
  10. 카카오 정책산업 연구, 〈카카오의 딥러닝 기반 형태소 분석기〉, 《브런치》, 2018-11-29
  11. 생각노트, 〈Grammarly는 어떻게 '맞춤법 검사'로 매일 700만 명이 찾는 서비스가 됐을까?〉, 《오픈애즈》, 2018-05-28

참고자료

같이 보기


  검수요청.png검수요청.png 이 자연어 처리 문서는 인공지능 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.