자연어 처리란?
언어는 크게 인공어와 자연어로 나눌 수 있습니다.
인공어는 정보 전달을 위해 인위적으로 만들어진 언어입니다. 대표적으로 사람과 컴퓨터의 소통을 위해 만들어진 프로그래밍 언어가 있습니다. 반대로 사람들의 일상 생활에서 자연 발생된 언어를 자연어라고 합니다. 한국어, 영어, 중국어 등 사람들이 일상에서 사용하는 모든 언어는 자연어에 속합니다.
자연어에는 다양한 정보들이 담겨있습니다. 그래서 잘 활용하면 재밌는 분석을 할 수 있는데요. 하지만 컴퓨터가 자연어의 의미를 제대로 파악하도록 하는건 쉽지 않습니다. 컴퓨터는 인공어로만 소통하기 때문에 자연어를 다루려면 별도의 처리 과정이 필요합니다.
그 과정을 자연어 처리(NLP; Natural Language Processing)라고 합니다. 자연어 데이터를 컴퓨터가 처리할 수 있는 형태로 가공하여 의미 있는 분석을 하는 모든 과정이 자연어 처리입니다.
자연어 처리의 하위 분야에는 자연어 이해(NLU; Natural Language Understanding)와 자연어 생성(NLG; Natural Language Generation)이 있는데요. 이름 그대로 자연어의 의미를 이해하고, 새로운 자연어를 생성하기 위한 기술들이 포함됩니다.
자연어가 가진 감정을 파악하는 감성분석, 스팸메일을 분류하는 스팸 필터링은 자연어 이해 기술이 적용되고, 시나 신문 기사 등을 작성하는 인공지능에는 자연어 생성 기술이 적용되죠. 문서 자동 번역기나 인공지능 챗봇에는 자연어 이해와 생성 분야의 기술이 모두 적용됩니다. 이외에도 자연어 처리를 활용해 여러 어려운 문제들을 해결할 수 있습니다.
자연어 처리를 하는 방법
자연어를 처리하는 방식에는 크게 규칙 기반 접근법(Rule Based Approach)과 통계 기반 접근법(Statistical Based Approach)이 있습니다.
규칙 기반 접근법(Rule Based Approach)
정해진 규칙을 통해 자연어를 처리하는 것을 규칙 기반 접근법이라고 합니다. 예를 들어볼게요.
100일, 100미터, 100원
위의 표현들에는 앞에 숫자가 오고 뒤에 문자가 온다는 규칙성이 있습니다. 이 규칙성을 토대로 숫자 뒤에 '일'이 나오면 날짜, '미터'가 나오면 거리, '원'이 나오면 돈과 관련된 의미를 가진다는걸 알 수 있습니다.
규칙 기반 접근법은 일정한 패턴을 가지는 자연어에 대해서 안정적으로 좋은 성능을 낼 수 있기 때문에 실제 상용 서비스에서도 많이 활용되고 있습니다.
통계 기반 접근법(Statistical Based Approach)
하지만 자연어에는 일정한 규칙이 없는 경우도 많은데요. 이럴 땐 통계 기반 접근법을 사용할 수 있습니다.
예를 들어, 문서에서 가장 중요한 키워드가 무엇인지 찾고 싶은 상황이라 해 볼게요. 수많은 단어들 중 가장 중요한 단어는 어떻게 찾을 수 있을까요? 아마도 자주 등장하는 단어가 핵심 키워드일 가능성이 높겠죠? 또 다른 문서들에서는 잘 사용되지 않는데 유독 그 문서에서만 많이 사용된다면 해당 문서의 중요한 키워드일 것입니다. 이렇게 특정 단어의 출현 빈도를 통해 자연어의 중요도를 파악하는 것은 대표적인 통계 기반 접근법입니다.
그리고 머신러닝, 딥러닝을 활용한 자연어 처리 기법도 통계 기반 접근법입니다. 일관된 패턴을 파악하기 어려운 자연어에서도 유의미한 정보를 찾을 수 있기 때문에 많은 관심을 받고 있습니다.
이렇게 다양한 방식으로 자연어 처리를 할 수 있는데요. 이번 포스팅에서는 그 중 규칙 기반 접근법에 대해서만 알아보겠습니다. 자연어를 분석에 활용할 수 있는 형태로 전처리하는 과정과, 전처리 된 데이터로 규칙 기반 감성 분석을 해보면서 자연어 처리의 기본적인 과정에 대해 학습해 볼게요.
'Data Analysis > Natural Language Processing(NLP)' 카테고리의 다른 글
정제(Cleaning) (2) | 2023.06.06 |
---|---|
단어 토큰화 실습 (0) | 2023.06.06 |
단어 토큰화(Word Tokenization) (0) | 2023.06.06 |
자연어 전처리란? (0) | 2023.06.06 |
자연어 처리가 어려운 이유 (11) | 2023.06.05 |