자연어 처리(NLP)란 무엇인가?
- 사람이 이해하는 자연어를 컴퓨터가 이해할 수 있는 값으로 변환하는 과정
- 컴퓨터가 이해하는 값을 사람이 이해할 수 있도록 다시 바꾸는 과정까지 포함
한국어 자연어 처리가 어려운 이유
- 모호성
- 차를 마시러 공원에 가는 차 안에서 나는 그녀에게 차였다.
- 교착어
- 어간과 어미가 명백하게 분리됨
- 하나의 형태소는 하나의 문법적인 기능을 함
- 한국어, 일본어, 터키어, 핀란드어, 헝가리어…
- 고립어
- 문법적인 형태를 나타내는 어미가 거의 없고 어순과 위치만으로 문법적인 형태를 나타냄
- 중국어, 태국어, 미얀마어, 티벳어
- 굴절어
- 단어간의 활용 형태가 단어 자체의 변형으로 나타나는 언어로 어간과 접사가 쉽게 분리되지 않음
- 어휘 자체에 격, 품사 등을 나타내는 요소가 포함됨
- 인도어, 유럽어, 러시아어
- 영어는?
- 단어적으로 보면 굴절어 요소가 남아 있지만 문장으로 보면 고립어
- 띄어쓰기가 지켜지지 않는다
- 한국어 Ex) 띄어쓰기를하지않아도읽을수있습니다.
- 영어 Ex) Youcanreadwithoutspacing
- 한국어는 교착어이다
- ‘그’ 라는 단어 하나에도 ‘그가’, ‘그를’, ‘그와’, ‘그는’과 같이 다양한 조사가 ‘그’라는 글자 뒤에 띄어쓰기 없이 바로 붙게 됨
- 같은 단어임에도 서로 다른 조사가 붙어서 다른 단어로 인식이되면 자연어 처리가 힘들고 번거로워지는 경우가 많음 어간에 접사가 붙어, 단어를 이루고 의미와 문법적 기능이 정해짐
- 같은 정보를 다르게 표현하기(Paraphrase)
- 여자가 김치를 어떤 남자에게 집어 던지고 있다.
- 여자가 어떤 남자에게 김치로 때리고 있다.
- 여자가 김치로 싸대기를 날리고 있다.
- 여자가 배추김치 한 포기로 남자를 때리고 있다.
한국어 전처리는 왜 필요한가?
- 한글로 된 데이터를 크롤링 또는 오픈 데이터를 가져다 쓰려고 할 때, 띄어쓰기, 맞춤법 등이 틀린 것들도 많다. (한글의 맞춤법을 잘 지키지 않는 SNS 피드 데이터 등)
- 사소한 차이는 임베딩 벡터로 보면 큰 차이일 수 있다.
워드 임베딩
- 워드 임베딩(Word Embedding)은 단어를 벡터로 표현하는 방법으로, 단어를 밀집 표현으로 변환
- 밀집 벡터를 워드 임베딩 과정을 통해 나온 결과라고 하여 임베딩 벡터(embedding vector)라고도 함
- 워드 임베딩 방법론으로는 LSA, Word2Vec, FastTest, Glove 등이 있음
전처리는 왜 필요한가?