Posts List

[자연어처리] 1. Introduction

NLP Introduction

이번 포스팅은 자연어처리(NLP : Natural Language Process)를 주제로 한 포항공과대학교 이종혁 교수님의 강의를 정리하였다. Introduction 포스팅은 앞으로 배울 예고편이라 생각하면 되겠다.

자연어처리(Natural Language Process)는 인간의 언어를 기계로 handling하는 응용분야이며 생각보다 가까운 곳에서 우리 생활을 support하고 있다.

이제는 1일 1회 이상은 사용하고 있는 구글링, 혹은 구글번역이 인간의 언어를 분석해 서비스를 제공하는 대표적인 예이다. 그 외에도 Apple의 Siri, Samsung의 빅스비, Amazon의 acho와 같은 인공지능비서의 음성인식기술 역시 자연어처리의 한 분야이다.

이제는 시대가 흘러 휴머노이드 로봇에 자연어처리를 접목하여 말하는 휴머노이드가 나오기까지 이르렀다.

그럼 제철소와 같은 장치산업에서는 어떤 textual 데이터가 있을까? 사실 이런 제조산업에서는 머신러닝, 데이터마이닝에 관심이 많지 자연어처리에는 관심이 없는 경우가 많다. 하지만 잘 찾아보면 자연어처리 기술을 적용할 수 있는 textual 데이터가 무수히 많다.

예를 들면 장치의 유지보수, 수리 내역을 정리한 문서, 원자재를 구입을 위한 가이드북, 회사가 올바른 Human resource 를 관리하기 위한 문서, 특허와 같은 지적재산 데이터들과 같이 상당히 많은 textual 데이터가 제조산업에 숨겨져 있다. 

이렇게 알려지지 않은 정보를 구조화되지 않은 free text에서 찾는 것을 Text mining이라고 한다. (Text Data + Data Mining)

Text mining의 전략을 보면 아래와 같다.

  • Doc. selection & filtering (IR technique)
    : To retrieve relevant doc. from a large data collection
  • Text pre-processing (NLP technique)
    : error correction, spelling normalization, tokenization, stemming, lemmatization
  • Marking-up of text (NLP technique)
    : To add metadata about text (relation/event recognition, POS Tagging, chunking, NER)
  • Data Mining (NLP / ML / Statistical techniques)
    : Text categorization, Summarization, Opinion mining, Recommendation)

즉, NLP는 Text mining을 구현하기 위한 기술중 하나이며, 현재는 pre-processing에서 mining까지 전반적으로 사용되는 타 전통적인 방법 대비 진화된 정보처리 방법이다.

NLP를 다시 한번 정의하면, 사람의 언어를 기계가 이해를 하고, 사람이 원하는 대답을 출력해주는 기술이다. 그리고 NLP의 Ultimate goal은 사람만큼 자연어를 이해하는 것이지만, 현재 기술 수준에서의 Immediate goal은 text나 speech를 기계가 보다 지능적으로 처리할 수 있게 하는데 있다.

NLP는 크게 2가지 영역으로 나눠진다.

  • Text processing : 언어 분석 / 언어 생성 (ex. 번역)
  • Speech processing : 음성 인식 / 음성 합성 (ex. 인공지능 비서)

이 기술의 구현을 위한 가장 첫 번째 목표는 Text나 Speech에서 단어를 인식하는 것이지만, 가장 중요한 것은 단어가 나열 됐을때 주변과의 상관관계를 파악함으로써 문자을 이해하는 것이다. 

이번 포스팅에서는 Language 분석을 위한 Text processing에 집중해 정리할 예정이다.

그럼 Language Analysis 전략에 대해 알아보자.

  • Speech recognition(음성 인식) : spoken utterance 후 음성을 문장으로 인식한다.
  • Lexical analysis(어휘 분석) : 단어의 구조를 분석한다
  • Syntactic analysis(구문 분석) : 문장의 구조를 분석한다. 
    - 문장을 1차원 관점에서 분석하지 않고 고차원에서 분석한다.

  • Semantic analysis(의미 분석) : 단어와 문장의 의미를 분석한다. (ex. 동의어 처리)
  • Discourse analysis(담화 분석) : 앞뒤 문장의 관계를 파악한다. (optional)
  • Pragmatic analysis(화용 분석) : 문장의 의도를 파악한다. (optional)


아래는 Top 11 NLP application in business를 보여준다.

  • Sentiment Analysis (Opinion mining) (Lexion-based, SVM, LSTM, RNN)
     :  텍스트에 들어있는 의견이나 감성, 평가, 태도 등의 주관적인 정보를 컴퓨터를 통해 분석 (=감성분석)
  • Chatbots & Virtual Assistants (seq2seq RNN, LSTM)
  • Text Classification (Naive Bayes, K-NN, SVM, DNN)
     : ex. 기사를 카테고리 별로 분류
    (Text Clustering (K-means, DBSCAN, DNN) : label 없이 비슷한 종류의 text를 grouping)
  • Text Extraction
  • Machine Translation (Rule-based, Stastistical, seq2seq)
  • Text Summarization (LexRank, TextRank, Latent Dirichlet Allocation, DNN)
  • Market Intelligence
  • Auto‐Correct
  • Intent Classification
  • Urgency Detection
  • Speech Recognition


[Case study 1] 문서기반 특허검색 (2003)

기존에는 문서의 키워드를 사람이 직접 뽑아서 그 키워드로 검색엔진에서 검색했었는데, NLP를 활용하면 문서 자체를 입력으로 주면 NLP 모델이 키워드를 자동으로 뽑게 한 후 검색 결과까지 도출해 줄 수 있다. (Optional. 다국어 교차 검색)


[Case study 2] Patent RISK Simulation (2015)

기존 기술개발 후 유사 특허 조사를 하며 RISK를 파악했던 과정에서 RISK 파악하는 과정을 앞당겨 설계 과정에서 RISK를 미리 파악할 수 있게 하는 사례.

문서 / 키워드 / 자연어를 입력으로 유사 특허를 검색해 RISK를 판단하는 NLP application.

C.S. 이 과제를 하면서 성능 검증과정에서 Domain 전문가와 상당한 논쟁이 있다고 하셨다. 실제로 나도 과제를 하면서 성능검증 과정에서 공정 전문가와 합의를 하기 어려운점이 있었는데, 과제 시작전에 성능 평가 지표를 명확하게 하고 과제에 착수하는게 중요할 것 같다.


[Case study 3] 음성 회의록 요약 (2019~2020)







댓글 쓰기

0 댓글