본문 바로가기

데이터

원 핫 인코딩, 형태소 분석, 패딩, 자연어 처리 관련 용어 정리

자연어 처리는 인간이 사용하는 언어를 컴퓨터가 이해하고 처리하는 기술입니다.
주로 텍스트 데이터를 처리하는 기술로써, 인간의 언어적 이해와 처리를 모델링하고 구현함으로써 사람들이 사용하는 자연어를 기계가 이해하고 처리할 수 있습니다.
자연어 처리 기술은 인공지능, 기계학습, 통계학 등의 분야에서 활용되며, 다양한 응용 분야에서 활발하게 사용됩니다.
자연어 처리 기술은 크게 언어 이해와 생성 두 가지 분야로 나눌 수 있습니다.
언어 이해는 텍스트를 분석하여 의미를 추출하고, 정보 추출, 감성 분석, 문서 분류, 문장 표현 등의 작업을 수행하는 분야입니다.
반면 생성은 기계가 인간처럼 자연스러운 방법으로 텍스트를 생성하는 분야로서, 기계 번역, 문서 요약, 대화 시스템, 챗봇 등의 응용 분야에서 사용됩니다.
자연어 처리 기술의 핵심 기술로는 형태소 분석, 구문 분석, 의미 분석, 담화 분석, 자연어 생성 등이 있습니다.
형태소 분석은 문장에서 단어의 형태소를 분리하고, 각 형태소의 품사를 결정합니다.
구문 분석은 문장의 구조를 분석하여 구구조를 파악합니다.
의미 분석은 문맥과 의미를 고려하여 문장의 의미를 추출합니다.
담화 분석은 여러 문장으로 이루어진 담화에서 의미적으로 연결된 내용을 추출합니다.
자연어 생성은 주어진 정보를 사용해 자연스러운 한글 문장을 생성하는 기술입니다.
자연어 처리 기술은 기계가 인간의 언어를 이해하고, 처리하면서 인간과 기계 사이의 상호작용을 용이하게 합니다.
이러한 기술은 AI 플랫폼과 데이터 분석 등 다양한 분야에서 활발하게 사용됩니다.

 

One-hot encoding은 범주형 변수를 다룰 때 자주 사용되는 방법 중 하나입니다.
이 방법은 각 카테고리 값을 0 또는 1로 표시하여 범주형 변수를 숫자형 변수로 변환하는 것입니다.
예를 들어, 색깔이라는 변수가 있을 때 붉은색, 파란색, 노란색 값이 있다면 각각 0,0,1 또는 1,0,0 또는 0,1,0과 같이 벡터로 나타내어 사용합니다.
이 방법의 장점은 각 카테고리 값들 간에 독립적이며 순서를 갖지 않는다는 점입니다.
이로 인해 선형 회귀와 같은 대부분의 머신러닝 알고리즘에서 잘 작동합니다.
하지만, 카테고리의 종류가 많아질수록 벡터의 크기가 크게 증가할 수 있습니다.
이 때문에 이러한 방법은 고차원 문제에서 자칫 사용하지 않으면 문제를 매우 복잡하게 만들 수도 있습니다.
또한, 각각의 카테고리 값을 변수로서 다루는 것은 이전 연관성이 없다는 가정하에 사용하는 것이기 때문에, 각각의 값간에 연속성이 있을 경우에는 이 방법으로 표현하는 것은 적합하지 않을 수도 있습니다.

 

형태소 분석은 말의 속성인 형태소로 나누는 작업입니다.
형태소란 의미가 있는 가장 작은 단위를 뜻합니다.
형태소는 크게 자립형태소와 의존형태소로 나뉩니다.
* 자립형태소: 다른 형태소와 결합하여 사용할 수 없으며, 문장에서 독립적으로 사용될 수 있는 형태소 - 체언 (명사, 대명사, 수사) - 수식언 (관형사, 부사) * 의존형태소: 다른 형태소와 결합하여 사용되는 형태소 - 접사, 어미, 조사, 선어말어미 형태소 분석을 수행하여 단어를 형태소의 모음으로 분해하면, 이를 기반으로 문장 구조를 파악할 수 있습니다.
예를 들어, 나는 공원에서 책을 읽었다 는 문장을 형태소 단위로 분석하면 다음과 같습니다. |
나 는 | 공원 에서 | 책 을 | 읽 었 다 |
대명사 | 위치부사 | 명사 | 동사 + 어미 | 분석 결과를 통해 나는 대명사, 공원에서는 위치부사, 책을은 명사+목적격 조사, 읽었다는 동사와 어미로 이루어진 형태소의 조합임을 알 수 있습니다.
이런 형태소 분석은 자료 처리에 있어서 유용하게 활용됩니다.

 

 Padding은 기계/딥러닝 모델이 동일한 길이의 입력 시퀀스를 필요로하는 경우에 사용되는 기술입니다. 입력 시퀀스 중에서 가장 긴 시퀀스를 기준으로 다른 모든 시퀀스의 길이를 일치시키기 위해 사용됩니다. Padding은 일반적으로 가장 긴 시퀀스보다 짧은 모든 시퀀스를 0으로 채워 빈 공간을 채우는 방식으로 이루어집니다. 이렇게 함으로써, 일반적인 행렬로 데이터를 구성하고 이 데이터를 다양한 기계학습 모델에 입력으로 사용할 수 있게 됩니다. Padding은 시퀀스 데이터를 처리할 때 유용하며, 텍스트, 문서, 오디오 신호와 같은 많은 자연어처리 작업에 사용됩니다.