'자연어처리' 키워드로 구글링을 하다. 브런치(brunch)에서 좋은 글을 발견했다.
https://brunch.co.kr/@geumjaelee/4
한국어의 자연어 처리에 대해, 자연어 처리 전반에 대한 흐름(특히 전처리와 관련한)에 대한 통찰이 인상깊었다.
1. 한국어 전처리
최근에 계속 생각해보는 주제가 전처리에 관련한 것이다. 그 중에서도 형태소 분석에 관심이 많이 갔다. 한국어의 표기 도구인 '한글'의 경우 초,중,종성이 묶여 하나의 단위를 형성하기에 또 교착어라는 한국어의 특성상 용언과 체언에 어미, 조사가 붙고 또 그 종류 역시 매우 다양하기에 형태소 분석이 여간 어려운 일이 아니다.
이게 자연어 처리에 있어 왜 중요한가 하면, 텍스트 데이터를 처리함에 있어서 이미지의 픽셀(pixel)과 같은 처리 단위가 필요한데, 그 단위(token)를 설정하는 것과 설정하더라도 한국어는 그 단위로 구분함에 있어 어려움이 있다는 것이다. 예를 들어 그 단위를 '단어'라고 한다면 영어의 경우 대부분 띄어쓰기로 구분 가능하기에 어려움이 없다. 굴절하는 특성이라봐야 (-(e)s, -(e)d, 몇 불규칙 용언) 정도로 한국어에 비해선 적다고 볼 수 있다. 반면, 한국어의 경우 위에서 말한 것처럼, 어미, 조사의 분리와 어미/조사와 결합 시에 종성에서 겹치는 경우까지 고려해야 한다.
이러한 이유로 한국어에 대해 konlpy와 같은 한국어 형태소 분석 패키지가 존재하지만, 필자는 빈도수 기반이든 뭐든 좀 더 단순하면서도 획기적인 방안이 있을 것이라 생각된다.
2. 피처(feature)와 문맥
저 브런치 글에서 인상깊었던 키워드는 '피처(feature)'와 '문맥'이었다.
먼저 피처(feature)의 경우, 머신러닝에서 자주 봤던 단어이다. 기계가 예측값을 내기 위해서 참고해야 하며, 수치로 표현된 후 학습 가능하다. 이런 feature를 찾아내고 tunning하는 것을 feature engineering이라고 한다. 이미지 인식에서는 기계가 자동으로 feature를 학습한다고 한다. 아직 인간이 이미지를 분류하는 데 사용하는 피처들은 아니지만, 그래도 어떤 추상적인 모습을 띤다. 브런치 글의 필자는 자연어 처리 역시 이와 같은 방향으로 가게 될 것이라 보았다. 기계 스스로 피처를 찾아내고 이를 바탕으로 결과값을 내는 것이다.
영어의 경우 최소 단위를 word로 정하고 word2vec을 통해 문맥에서 학습된 가중치를 feature로 사용하기도 한다. 한국어의 경우 대부분 형태소가 최소 단위인데 이를 위해 형태소 분석이 사전에 이뤄지며 그 이후에 word2vec이 적용되어 feature를 얻을 수 있다.
브런치글의 필자는 최소 단위 역시 feature로 보았고, 이들의 결합 규칙 역시 feature로 보았다. 결합 규칙을 다른 말로 바꿔보면 '문맥'이라 볼 수 있을 것 같다. word2vec은 어떻게 보면 해당 단어의 문맥 정보를 vector로 수치화한 것이라 볼 수 있다. 이 '문맥 피처'를 잘 활용하면 자연어 처리도 이미지 처리처럼 기계가 스스로 feature를 학습하는 것이 가능할 것 같은데, 아직 입력값으로 들어갈 최소 단위(글자? 단어? 구?)를 정함에 있어서 한계가 있는 것 같다.
물론 아직 매우 초보자이고, 실제 기술들을 보면서 감탄하는 필자를 되돌아보면 이러한 생각들 역시 보잘 것 없어 보일 지도 모르겠다.
공부도 열심히, 코딩도 열심히 해야겠다.
'study_life' 카테고리의 다른 글
선형 대수 관련 용어-선형 연립 방정식 (0) | 2020.04.07 |
---|---|
norm(노름) (0) | 2020.03.26 |
단양 여행 (0) | 2020.02.07 |
로그의 성질 (feat.카라츠바 알고리즘의 시간 복잡도) (0) | 2020.01.30 |
유럽 여행 준비물(여름) (0) | 2019.08.30 |
댓글