본문 바로가기

Study

자연어 처리

강의 영상 : https://www.youtube.com/watch?v=qlxrXX5uBoU&list=PL9mhQYIlKEhcIxjmLgm9X5BUtW5jMLbZD&index=1

1. 자연어란?

 

  • 언어 : 명사) 생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단. 또는 그 음성이나 문자 따위의 사회 관습적인 체계.

 

전달자 -> 수신자 에서 수신자가  사람 -> 컴퓨터

 

2. 다양한 자연어 처리 기술

 

  • 자연어 처리란, '자연어를 컴퓨터가 해독하고 그 의미를 이해하는 기술'
  • Symbolic approach

    • 규칙/지식 기반 접근법

      • IF문 상황 속에 조건이 있는 것

      • 100원 = 가격을 의미

      • 100 M = UNIT을 의미

  • Statistical approach

    • 확률/통계 기반 접근법

    • TF-IDF를 이용한 키워드 추출

      • TF (Term Frequency) 단어가 문서에 등장한 개수

        • TF가 높을수록 중요한 단어

      • DF (Document Frequency) 해당 단어가 등장한 문서의 개수

        • DF가 높을수록 중요하지 않은 단어

 

3. 자연어 처리의 단계

  • 전처리

    • 개행 문자 제거

    • 특수 문자 제거

    • 공백 제거

    • 중복 표현 제거

    • 이메일, 링크 제거

    • 제목 제거 등등

  • Tokenizing

    • 자연어를 어떤 단위로 살펴볼 것인가

    • 어절 

    • 형태소

    • n-gram

    • WordPiece

  • Lexical analysis

    • 어휘 분석

    • 형태소 분석

    • 개체명 인식

    • 상호 참조

  • Syntactic analysis

    • 구문 분석

  • Semantic analysis

    • 의미 분석

 

4. 다양한 자연어 처리 Applications

 

  • 문서 분류

  • 문법, 오타 교정

  • 정보 추출

  • 음성 인식결과 보정 

  • 음성 합성 텍스트 보정

  • 형태소 분석 등

-> ex) 챗봇 + 음성 합성 + 감성분류 + 개체명 인식 + 추천 시스템 + 기계 독해 + 지식 그래프 + 관계 추출 + 등등

 

형태소 분석, 문서 분류, 개체명 인식 등, 대부분의 자연어 처리 문제는 '분류'의 문제

 

의미 분석기 구문 분석기 감성 분석기 형태소 분석기 개체명 인식기
최초의 컴퓨터가 뭐야? 최초의 컴퓨터가 뭐야? 나 지금 너무 행복 최초의 컴퓨터가 뭐야? 구글은 어떤 회사야?

질문 (98%)

요구 (0.5%)

거절 (0.025%)

승낙 (0.025%)

...

관형격 체언 (85%)

관형격 용언 (5%)

주격 체언 (5%)

부사격 체언 (0.5%)

...

기쁨 (99%)

슬픔 (0.05%)

분노 (0.05%)

역겨움(0.05%)

...

명사 (99%)

부사 (0.05%)

고유명사 (0.05%)

동사 (0.025%)

...

기관 (95%)

직책 (0.05%)

사람 (0.05%)

직책 (0.025%)

...

 

특징 추출과 분류

  • '분류'를 위해선 데이터를 수학적으로 표현
  • 먼저, 분류 대상의 특징(Feature)을 파악 (Feature extraction)

ex) 자연어의 특징을 나타내는 것을 예제로

 

분류 대상 : 돌고래, 코끼리, 말, 참치, 강아지

분류 대상 특징 : 크기가 다양 / 다리의 개수가 다양

 

분류 대상의 특징(Feature)를 기준으로, 분류 대상을 그래프 위에 표현 가능

분류 대상들의 경계를 수학적으로 나눌 수 있음 (Classification)

새로운 데이터 역시 특징을 기준으로 그래프에 표현하면, 어떤 그룹과 유사한지 파악 가능

 

  • 과거에는 사람이 직접 특징(Feature)를 파악해서 분류
  • 실제 복잡한 문제들에선 분류 대상의 특징을 사람이 파악하기 어려울 수 있음
  • 이러한 특징을 컴퓨터가 스스로 찾고 (Feature extraction), 스스로 분류 (Classification)하는 것이 '기계학습'의 핵심 기술

분류 대상 : 

나는 대한민국에서 태어났다. 
최초의 컴퓨터는 누가 만들었어? 
내일 날씨 알려줘
...

 

분류 대상의 특징:

자연어를 어떻게 좌표평면 위에 표현할 수 있을까?

가장 단순한 표현 방법은 one-hot encoding 방식 -> Sparse representation

 

Word embedding - Word2Vec

ex) 세상 모든 사람

단어 Vector
세상 [1, 0, 0]
모든 [0, 1, 0]
사람 [0, 0, 1]

       n개의 단어는 n차원의 벡터로 표현

 

 

 

--> 단어 벡터가 sparse해서 단어가 가지는 '의미'를 벡터 공간에 표현 불가능

 

 

 

  • Word2vec (word to vector) 알고리즘 : 자연어 (특히, 단어)의 의미를 벡터 공간에 임베딩
  • 한 단어의 주변 단어들을 통해, 그 단어의 의미를 파악

컴퓨터가 볼 때, 자연어는 우리가 보는 아랍어처럼 '기호'로만 보일 뿐

 

  • Word2vec 알고리즘은 주변부의 단어를 예측하는 방식으로 학습 (Skip-gram 방식)
  • 단어에 대한 dense vector를 얻을 수 있음

duct [1, 0, 0, 0, 0] 를 맞추고자 네트워크를 학습 ->

학습을 해서 tape의 주변단어가 duct다 = tape의 word vector를 히든레이어로 얻을 수 있다.

 

Word embedding의 방법론에 따른 특징

 

단어의 의미가 벡터로 표현됨으로써 벡터 연산이 가능

Word embedding 성능 검증 방법

https://github.com/dongjun-Lee/kor2vec, https://github.com/SungjoonPark/KoreanWordVectors 

재미로 보는 Word2Vec analogy test (https://blog.naver.com/saltluxmarketing/221607368769)


종합

Word embedding - Word2Vec

  • 단어가 가지는 의미 자체를 다차원 공간에 '벡터화' 하는 것
  • 중심 단어의 주변 단어들을 이용해 중심단어를 추론하는 방식으로 학습

장점 :

  • 단어간의 유사도 측정에 용이
  • 단어간의 관계 파악에 용이
  • 벡터 연산을 통한 추론이 가능 (e.g. 한국 - 서울  + 도쿄 = ?)

단점 :

  • 단어의 subword information 무시 (e.g 서울 vs 서울시 vs 고양시)
  • Out of vocabulary (OOV)에서 적용 불가능

Word embedding - FastText

  • 한국어는 다양한 용언 형태를 가짐 (ex 모르다 - (모르네, 모르지, 모르기까지 ...)
  • Word2Vec의 경우, 다양한 용언 표현들이 서로 독립된 vocab으로 관리

Fasttext : 

  • Facebook research에서 공개한 open source library
  • Training
    • 기존의 word2vec과 유사하나, 단어를 n-gram으로 나누어 학습을 수행
    • n-gram의 범위가 2-5일 때, 단어를 다음과 같이 분리하여 학습함 'assumption = {as, ss, su,...ass,ssu... ption, assumption)
    • 이 때, n-gram으로 나눠진 단어는 사전에 들어가지 않으며, 별도의 n-gram vector를 형성
  • Testing
    • 입력 단어가 vocabulary에 있을 경우, word2vec와 마찬가지로 해당 단어의 word vector를 return
    • 만약 OOV일 경우, 입력 단어의 n-gram vector들의 합산을 return 함

--> FastText는 단어를 n-gram으로 분리를 한 후, 모든 n-gram vector를 합산한 후 평균을 통해 단어 벡터를 획득

오탈자 입력에 대해서도 본래 단어와 유사한 n-gram이 많아, 유사한 단어 벡터를 획득 가능

오탈자, OOV 등장 회수가 적은 학습 단어에 대해서 강세

word2vec, fasttext 결과

 

Word embedding의 활용

 

  • 다른 자연어 처리 모델의 입력으로 사용
  • 학습 데이터의 양이 매우 적은 감성분석을 수행할 경우, 학습 데이터만으로는 특성 추출 불가능

Word embedding의 한계점

 

  • Word2Vec이나 FastText와 같은 word embedding 방식은 동형어, 다의어 등에 대해선 embedding 성능이 좋지 못하다는 단점이 있음
  • 주변ㅇ 단어를 통해 학습이 이루어지기 때문에, '문맥'을 고려할 수 없음

 

 

 

 

 

 

 

 

 

 

반응형

'Study' 카테고리의 다른 글

NLP(자연어처리) - Language Model (언어 모델)  (0) 2020.07.07
Markov Process  (0) 2020.04.07
Optimizer : RAdam - Rectified Adam  (0) 2020.03.19
Greedy Search  (0) 2020.03.18
자연어 언어 모델  (0) 2020.03.12