비즈니스 문제를 해결하고 예측하는 데이터 사이언티스트가 되고 싶다면?
#인공지능 

딥러닝 자연어 처리 – 분야, 예시, 라이브러리 소개

딥러닝 자연어처리?

2022-11-11 | 우성우

딥러닝 자연어 처리?

자연어 처리(NLP)는 컴퓨터가 인간의 언어를 이해, 생성, 조작할 수 있도록 해주는 인공 지능(AI)의 한 분야입니다. Siri, 자연어 처리 기술을 활용하여 웹 검색, 스팸 메일 필터링, 텍스트 또는 음성 자동 번역, 문서 요약, 감정 분석, 문법/철자 검사 등을 할 수 있습니다. 예를 들어 일부 이메일 프로그램은 메시지 내용을 바탕으로 해당 메시지에 대한 적절한 회신 내용을 자동으로 제안할 수 있는데, 바로 자연어 처리(NLP)를 사용하여 메시지를 읽고, 분석하고, 응답할 수 있습니다.

자연어 처리(NLP) 기술의 이용 분야

반복 업무 자동화

NLP로 구동되는 챗봇은 오늘날 사람이 하는 수많은 반복 작업을 처리할 수 있으며, 이를 통해 직원들이 보다 도전적이고 흥미로운 작업을 수행할 수 있도록 해줍니다.

검색 효율 향상

NLP는 문맥에 기반하여 단어 의미를 명확히 하고 형태학적 변형을 고려하여 문서에 대한 키워드 일치 검색 및 FAQ 검색 효율을 개선할 수 있습니다. 또한 효과적인 NLP 기반 학술 검색 시스템은 의사, 변호사 및 기타 전문가의 관련 최첨단 연구에 대한 접근성을 크게 향상시킬 수 있습니다.

검색 엔진 최적화

NLP는 검색을 분석하여 콘텐츠를 최적화함으로써 기업의 온라인 검색 순위를 높이는데 유용한 도구입니다. 검색 엔진은 NLP를 사용하여 결과의 ​​순위를 매기기 때문에 이러한 기술을 효과적으로 사용하는 방법을 알면 경쟁 업체보다 쉽게 ​​순위에 들 수 있으며 궁극적으로 비즈니스에 대한 가시성이 향상됩니다.

대규모 문서 컬렉션 분석 및 정리

문서 클러스터링 및 주제 모델링과 같은 NLP 기술은 기업 보고서나 뉴스 기사 또는 과학 문서와 같은 대규모 문서 컬렉션의 콘텐츠 다양성 파악 작업을 단순화시켜 줍니다. 이러한 기술은 법적 증거 수집 목적으로 자주 사용됩니다.

소셜 미디어 분석

NLP는 고객의 리뷰와 소셜 미디어 댓글을 분석하여 방대한 양의 정보를 더 잘 파악할 수 있도록 해줍니다. 감정 분석 기술은 소셜 미디어의 댓글 스트림에서 긍정적인 댓글과 부정적인 댓글을 식별하여 고객의 감정을 실시간으로 직접 측정하는 것으로 고객 만족도와 매출 증가와 같은 막대한 수익으로 이어질 수 있습니다.

시장 통찰력

NLP를 통해 비즈니스 고객의 언어를 분석하면 고객이 원하는 것을 보다 잘 파악하고 고객과의 소통 방법에 대한 더 나은 아이디어를 얻을 수 있습니다. 속성 중심(Aspect-oriented) 감정 분석은 소셜 미디어에서 특정 속성이나 제품과 관련된 감정(예: ‘키보드는 훌륭하지만 화면이 너무 어둡다’)을 감지하여 제품 디자인과 마케팅을 위한 직접 실행 가능한 정보를 제공합니다.

콘텐츠 조정

사용자 또는 고객 의견이 대량으로 접수되는 비즈니스의 경우 NLP를 사용하여 단어뿐만 아니라 어조와 의도까지 분석함으로써 기업이 전하는 메시지의 품질과 정중함이 유지될 수 있도록 내용을 조정할 수 있습니다.

자연어 처리 기술이 사용되는 분야

의료 서비스

전 세계의 의료 시스템이 전자의무기록(electronic medical records)으로 전환됨에 따라 방대한 양의 비정형 데이터에 직면하게 되었습니다. 이러한 상황에서 NLP를 사용하여 의료 기록을 분석하고 새로운 통찰력을 얻을 수 있습니다.

법률

변호사들은 사건 준비를 위해 많은 양의 문서를 검토하고 특정 사건 관련 자료를 찾는데 몇 시간을 소비해야 하는 경우가 많습니다. NLP 기술은 법적 증거 수집 프로세스를 자동화하여 대량의 문서를 검색함으로써 시간을 단축하고 인적 오류를 줄일 수 있습니다.

금융

금융계는 매우 급박하게 움직이며 경쟁 우위를 선점하는 것이 중요합니다. 금융 분야의 거래자는 NLP 기술을 사용하여 기업 문서 및 보도 자료에서 정보를 자동으로 마이닝하여 포트폴리오 및 거래 결정과 관련된 정보를 추출할 수 있습니다.

고객 서비스

많은 대기업들이 기본적인 고객 문의와 정보 요청(예: FAQ)에 대한 답변은 가상 도우미나 챗봇의 도움을 받고 필요한 경우 복잡한 질문만 사람에게 전달하도록 하고 있습니다.

보험

대형 보험사들은 보험 청구 문서 및 보고서 검토에 NLP를 활용하여 업무 수행 방식을 간소화하고 있습니다.

NLP 전처리 기술의 예

토큰화

토큰화는 원시 텍스트(예: 문장 또는 문서)를 단어 또는 하위 단어 조각과 같은 토큰 시퀀스로 분할하는 것을 말하며 NLP 처리 파이프라인의 첫 번째 단계인 경우가 많습니다. 토큰은 일반적으로 이후의 처리 과정에서 원자 단위로 처리되는 반복 텍스트 시퀀스로 단어, 형태소(예: 영어의 ‘un-‘과 같은 접두사 또는 ‘-ing’과 같은 접미사)라고 하는 하위 단어 또는 개별 문자일 수 있습니다.

단어 주머니 모델(Bag-of-words models)

단어 주머니 모델은 문서를 정렬되지 않은 토큰 또는 단어 모음으로 취급합니다.(주머니는 각 요소가 출현하는 횟수를 추적한다는 점을 제외하면 세트와 같음) 단어 주머니 모델은 단어의 순서를 완전히 무시하기 때문에 ‘개가 사람을 문다(dog bites man)’와 ‘사람이 개를 문다(man bites dog)’ 같은 문장을 혼동하지만 검색 엔진과 같은 대규모 정보 검색 작업에서 효율성을 위해 종종 사용됩니다. 긴 문서를 사용하면 최첨단에 가까운 결과를 얻을 수 있습니다.

불용어(Stop word) 제거

‘불용어’는 이후 처리 과정에서는 무시되는 토큰을 말하며, 일반적으로 ‘a’이나 ‘an’ 또는 ‘an’과 같이 짧고 자주 사용되는 단어입니다. 단어 주머니 모델과 검색 엔진은 데이터베이스 내의 처리 시간과 저장 공간을 줄이기 위해 불용어를 무시하는 경우가 많습니다. 한편 심층 신경망은 일반적으로 단어 순서를 고려하며(즉, 단어 주머니 모델이 아님) 불용어가 미묘한 의미의 차이를 전달할 수 있기 때문에 제거하지 않습니다(예: ‘the package was lost’와 ‘a package is lost’는 불용어를 제거하면 남는 단어는 동일하지만 문장의 의미는 다름)

어간 추출(Stemming) 및 표제어 추출(Lemmatization)

형태소는 뜻을 가진 가장 작은 말의 단위이며 일반적으로 단어보다 작습니다. 예를 들어, ‘revisited’는 접두사 ‘re-‘, 어간 ‘visit’, 과거형 접미사 ‘-ed’로 구성됩니다. 어간 추출 및 표제어 추출은 단어를 어간 형태(예: ‘revisit’ + 과거형).로 매핑하는 것을 말하는데 사전 딥 러닝 모델에서는 중요한 단계이지만 딥 러닝 모델은 일반적으로 훈련 데이터에서 이러한 규칙성을 학습하므로 명시적인 어간 또는 형태소 추출 단계는 필요하지 않습니다.

품사 태깅 및 구문 분석

품사(PoS, Part-of-speech) 태깅은 각 단어에 해당하는 품사(예: 명사, 동사, 형용사 등)로 레이블을 지정하는 프로세스입니다. 구문 분석기는 단어가 어떻게 결합되어 구와 절 그리고 전체 문장을 형성하는지 식별합니다. PoS 태깅은 시퀀스 레이블링 작업이고, 구문 분석은 확장된 종류의 시퀀스 레이블링 작업이며, 심층 신경망은 PoS 태깅과 구문 분석 모두를 위한 최첨단 기술입니다. 딥 러닝 이전에는 PoS 태깅과 구문 분석이 문장 이해에 필수적인 단계였지만 현재의 딥 러닝 NLP 모델은 일반적으로 PoS 또는 구문 정보에서 얻을 수 있는 이익(있는 경우)이 미미하므로 딥 러닝 NLP에서는 PoS 태깅이나 구문 분석이 널리 사용되지 않습니다.

NLP 라이브러리 및 개발 환경

다음은 몇 가지 인기 있는 NLP 라이브러리의 예입니다.

텐서플로(TensorFlow)와 파이토치(PyTorch)

가장 인기 있는 두 가지 딥 러닝 툴킷으로 연구 및 상업적 목적으로 자유롭게 사용할 수 있습니다. 다양한 언어를 지원하지만 기본 언어는 Python입니다. 대규모의 사전 구축된 구성 요소 라이브러리가 함께 제공되므로 매우 정교한 딥 러닝 NLP 모델도 이러한 구성 요소를 함께 연결하기만 하면 되는 경우가 많습니다. 또한 그래픽 처리 장치(GPU) 가속기가 장착된 시스템 클러스터 같은 고성능 컴퓨팅 인프라를 지원하며 훌륭한 설명서와 튜토리얼을 포함하고 있습니다.

허깅페이스(HuggingFace)

이 회사는 수백 가지의 사전 학습 딥 러닝 NLP 모델과 TensorFlow 및 PyTorch의 ‘플러그 앤드 플레이(plug-and-play)’ 소프트웨어 툴킷을 배포하여 다양한 사전 학습 모델이 특정 작업에서 얼마나 잘 수행되는지 개발자가 빠르게 평가할 수 있도록 합니다.

스파크 NLP(Spark NLP)

Spark NLP는 Python, Java, Scala 프로그래밍 언어를 위한 고급 NLP용 오픈 소스 텍스트 처리 라이브러리입니다. 자연어 처리 파이프라인을 위한 응용 프로그래밍 인터페이스(API)를 제공하는 것을 목표로 하며, 사전 학습 신경망 모델과 파이프라인, 임베딩을 제공할 뿐만 아니라 맞춤형 모델 학습을 지원합니다.

한마디로 자연어 처리는 검색 엔진, 챗봇, 추천 시스템, 음성 텍스트 변환(speech-to-text) 시스템과 같은 광범위한 분야의 새로운 제품에 연료를 공급하는 인공 지능 개발의 매우 사람과 맞닿아 있는 영역 입니다.

참조 링크