NLP

Natural Language Processing

Table of Contents

  1. 자연어의 개념
  2. NLP의 하위 분류
  3. NLP Difficulties
  4. NLP Tools

NLP

  • 언어학
  • 컴퓨터과학
  • 인공지능

프로그래밍 언어

  • 인공적으로 만들어진
  • 의도와 목적에 따라 해석
  • 좀 더 넓은 개념으로
    '인공어'에 포함됨

자연어

  • 자연스럽게 만들어짐
  • 일상생활과 의사소통에 사용됨
  • '인공어'와 반대되는 개념
<>

NLP 분야

  • 정보 검색
  • 음성 인식
  • 단어 분류
  • 감정 분석
  • 기계 번역

정보검색

음성 인식

NLP difficulties 

  • 신조어
  • 같은 단어 다른 뜻
  • 이상한 띄어쓰기

 

Make Rule!!! 

하지만 다양한 자연어 상황에 대응하지 못하는 경우가 많아짐 

if previous_sentence.contains("승리") {
	return "successive victory"
} else if next_sentence.contains("기쁨") {
	if next_sentence.noun == current_sentence.noun {
    	return "successive victory"
    } else {
    	return "successive defeats"
    }
}
...

In stastics?? 

  • n%의 확률로 
  • m%의 확률로
  • p%의 확률로

따라서 Deep Learning을 적용하기 쉬운 구조로 바뀌었습니다

  • 자연어 데이터를 통해서
  • 구조를 학습하고 확률적 모델을 구축
  • 이를 활용해서 NLP 진행

NLP Tools

  • nltk
  • konlpy

NLTK

  • 교육용으로 개발된 NLP학습용 라이브러리
  • 크게는 말뭉치와 NLP 기법이 포함되어있음
  • 하지만 영어용

KoNLPy

  • NLTK의 한글버전
    • 포함된 말뭉치는 적습니다
    • 대신 사용가능한 NLP Library들이 다수 존재합니다
  • 주요 NLP기법들을 사용가능합니다
    • 형태소 분석
    • 품사 태깅

KoNLPy - Normalization

한국어를 처리하는 예시입니닼ㅋㅋㅋㅋㅋ

한국어를 처리하는 예시입니다ㅋㅋ

KoNLPy - Tokenization

한국어를 처리하는 예시입니닼ㅋㅋㅋㅋㅋ

한국어/Noun, 를/Josa, 처리/Noun,
하는/Verb, 예시/Noun, 입니다/Adjective,
ㅋㅋ/KoreanParticle

KoNLPy - Stemming

한국어를 처리하는 예시입니닼ㅋㅋㅋㅋㅋ

한국어/Noun, 를/Josa, 처리/Noun,
하다/Verb, 예시/Noun, 이다/Adjective,
ㅋㅋ/KoreanParticle

이 외의 간단하게 참고할만한 toolkit site들

NLP

By JunMyeong Lee

NLP

  • 329