AI 기초
텍스트 분류가 어떻게 작동하는가?
텍스트 분류는 텍스트 시퀀스를 분석하고 레이블을 할당하여 그룹화하는 과정입니다. 텍스트 분류는 거의 모든 자연어 처리(NLP) 작업에 대한 기초입니다. 텍스트 분류를 통해 컴퓨터 프로그램은 스팸 인식, 감성 분석, 챗봇 기능 등 다양한 작업을 수행할 수 있습니다. 텍스트 분류는 정확히 어떻게 작동하는가? 텍스트 분류를 수행하는 다양한 방법은 무엇인가? 이러한 질문에 대한 답변을 아래에서 살펴보겠습니다.
텍스트 분류 정의
텍스트 분류가 무엇인지 이해하기 전에, 텍스트 분류의 기본 개념을 정의하는 것이 중요합니다. 텍스트 분류는 다양한 작업과 알고리즘에 적용되는 용어이므로, 텍스트 분류의 기본 개념을 이해하는 것이 중요합니다.
텍스트를 분류하고 레이블을 붙이는 모든 작업은 텍스트 분류로 간주될 수 있습니다. 시스템이 텍스트를 분류하고 레이블을 붙이는 기본적인 단계를 수행한다면, 그것은 텍스트 분류기라고 할 수 있습니다. 스팸 이메일 감지, 문서를 주제 또는 제목으로 분류하는 작업, 제품 리뷰의 감성을 인식하는 작업 등이 모두 텍스트 분류의 예입니다.
텍스트 분류의 작동 방식

Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)
대부분의 텍스트 분류 방법은 세 가지 카테고리 중 하나에 속합니다: 규칙 기반 방법 또는 기계 학습 방법.
규칙 기반 분류 방법
규칙 기반 텍스트 분류 방법은 명시적으로 설계된 언어 규칙을 사용하여 작동합니다. 시스템은 엔지니어가 생성한 규칙을 사용하여 텍스트를 분류하고, 의미적으로 관련된 텍스트 요소를 찾습니다. 각 규칙에는 텍스트가 일치해야 하는 패턴이 있습니다.
예를 들어, 대화의 일반적인 주제를 구분하는 텍스트 분류기를 설계하고 싶다고 가정해 보겠습니다. 텍스트 분류기가 날씨에 대한 토론을 인식할 수 있도록 하려면, 텍스트 샘플에 날씨와 관련된 단어가 포함되어 있는지 확인하도록 지시할 수 있습니다. 키워드, 구, 및 기타 관련 패턴의 목록을 생성하여 주제를 구분할 수 있습니다. 예를 들어, “바람”, “비”, “태양”, “눈”, 또는 “구름”과 같은 단어가 포함되어 있는지 확인할 수 있습니다. 그런 다음 텍스트 분류기가 입력 텍스트를 분석하여 이러한 단어가 몇 번 나타나는지 확인할 수 있습니다. 이러한 단어가 영화와 관련된 단어보다 더 자주 나타난다면, 텍스트를 날씨 카테고리로 분류할 수 있습니다.
규칙 기반 시스템의 장점은 입력과 출력이 예측 가능하고 해석 가능하며, 엔지니어가 수동으로 개선할 수 있다는 것입니다. 그러나 규칙 기반 분류 방법은 다소 취약하며, 미리 정의된 패턴에만 따라갈 수 있으므로 일반화하기 어렵습니다. 예를 들어, “구름”이라는 단어는 하늘의 습기 또는 데이터를 저장하는 디지털 구름을 의미할 수 있습니다. 규칙 기반 시스템은 이러한 미묘한 차이를 처리하기 위해 엔지니어가 많은 시간을 투자해야 합니다.
기계 학습 시스템
규칙 기반 시스템은 제한이 있습니다. 기계 학습 기반 분류 시스템은 알고리즘이 데이터셋을 분석하여 특정 클래스와 관련된 패턴을 찾는 방식으로 작동합니다.
기계 학습 알고리즘은 레이블이 지정된 사례를 분석하여 관련 특징을 학습합니다. 이러한 레이블이 지정된 사례는 훈련 데이터입니다.
기계 학습 분류기는 훈련 데이터를 분석하여 클래스와 관련된 패턴을 학습합니다. 그런 다음 레이블이 없는 새로운 사례를 분류기에 입력하여 레이블을 할당합니다. 할당된 레이블은 원래 레이블과 비교하여 모델의 정확도를 평가합니다.
Bag-of-Words
Bag-of-words는 텍스트 데이터를 숫자 데이터로 변환하는 가장 일반적인 방법 중 하나입니다. “Bag-of-words”라는 용어는 문서의 모든 단어를 순서와 문법을 무시하고 단어의 빈도만 고려하여 하나의 “가방”으로 만드는 것에서 유래합니다. 이렇게 하면 문서의 모든 단어가 하나의 배열 또는 벡터로 나타낼 수 있습니다. 입력 문서에 10,000개의 고유한 단어가 있는 경우, 특징 벡터의 크기는 10,000 단어입니다.

gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
각 문서에는 해당 문서에서 각 단어가 몇 번 나타나는지 나타내는 숫자로 채워진 동일한 크기의 벡터가 있습니다. 예를 들어, “음식”이라는 단어가 하나의 텍스트 문서에서 8번 나타난다면, 해당 특징 벡터/특징 배열에는 8이라는 숫자가 해당 위치에 있습니다.
다시 말해서, 입력 문서의 모든 고유한 단어가 하나의 가방으로 모여서 각 문서에는 동일한 크기의 단어 벡터가 할당되며, 각 문서에서 각 단어가 몇 번 나타나는지로 채워집니다. 텍스트 데이터셋은 종종 많은 고유한 단어가 포함되어 있지만, 대부분의 단어는 자주 사용되지 않습니다. 이러한 이유로 단어 벡터를 생성하는 데 사용되는 단어 수는 일반적으로 선택된 값(N)으로 제한되며, 특징 벡터의 차원은 Nx1이 됩니다.
Term Frequency-Inverse Document Frequency (TF-IDF)
문서를 단어로 나타내는 또 다른 방법은 Term Frequency-Inverse Document Frequency (TF-IDF)입니다. TF-IDF 접근 방식도 문서를 나타내는 벡터를 생성하지만, Bag-of-words와는 달리 단어가 문서에서 얼마나 자주 나타나는지에 따라 가중치를 부여합니다. TF-IDF는 단어가 문서의 주제와 얼마나 관련이 있는지 분석하여 단어의 중요성을量化합니다. 다시 말해서, TF-IDF는 빈도수 대신 관련성을 분석합니다.
TF-IDF 접근 방식은 먼저 문서 내에서 고유한 단어가 몇 번 나타나는지 계산합니다. 그러나 TF-IDF는 또한 매우 일반적인 단어인 “the”, “or”, “and”와 같은 stopwords의 영향을 제한합니다. 이러한 단어는 매우 일반적이지만 문서의 내용에 거의 정보를 제공하지 않습니다. 이러한 단어를 할인해야 하며, 이는 TF-IDF의 “역 문서 빈도” 부분에서 수행됩니다. 이는 특정 단어가 문서 목록에서 나타나는 횟수가 많을수록 해당 단어가 문서를 구분하는 데 weniger 유용하다는 사실에 기반합니다. TF-IDF는 단어의 중요성을 계산하는 공식이 있으며, 가장 자주 나타나고 의미적으로 풍부한 단어를 보존합니다.
TF-IDF 접근 방식에 의해 생성된 특징 벡터에는 정규화된 값이 포함되어 있으며, 각 단어에 가중치가 부여됩니다.
Word Embeddings
Word embeddings는 단어를 숫자로 나타내는 방법입니다. 단어가 유사한 의미를 가지면 유사한 숫자 표현을 가집니다.
Word embeddings는 단어를 실수 값 벡터로 나타내는 것을 의미합니다. 벡터는 그리드 또는 매트릭스에 존재하며, 방향과 크기(또는 크기)를 가집니다. 단어를 벡터로 나타낼 때, 각 단어는 실수 값으로 구성된 벡터에 매핑됩니다. 유사한 의미를 가진 단어는 유사한 방향과 크기를 가집니다. 이러한 인코딩은 기계 학습 알고리즘이 단어 사이의 복잡한 관계를 학습할 수 있도록 합니다.
다른 알고리즘과 접근 방식이 단어 임베딩을 생성하는 데 사용됩니다. 가장 일반적이고 신뢰할 수 있는 단어 임베딩 방법 중 일부는 임베딩 계층, Word2Vec, GloVe입니다.
임베딩 계층
단어 임베딩을 사용하여 기계 학습/딥 러닝 시스템을 구축하는 한 가지 방법은 임베딩 계층을 사용하는 것입니다. 임베딩 계층은 딥 러닝 계층으로, 단어를 임베딩으로 변환하여 딥 러닝 시스템의 나머지 부분으로 전달합니다. 단어 임베딩은 네트워크가 훈련될 때 학습됩니다.

단어 임베딩 접근 방식에서, 유사한 단어는 유사한 표현을 가지며, 서로 다른 단어와는 다릅니다.
임베딩 계층을 사용하려면 먼저 텍스트를 전처리해야 합니다. 문서의 텍스트는 원-핫 인코딩되어야 하며, 벡터 크기는 미리 지정되어야 합니다. 원-핫 텍스트는 단어 벡터로 변환되어 기계 학습 모델로 전달됩니다.
Word2Vec
Word2Vec는 단어를 임베딩으로 변환하는 또 다른 일반적인 방법입니다. Word2Vec는 통계적 방법을 사용하여 단어를 임베딩으로 변환하며, 신경망 기반 모델에서 사용하도록 최적화되어 있습니다. Word2Vec는 Google (GOOGL ) 연구자에 의해 개발되었으며, 가장 일반적으로 사용되는 임베딩 방법 중 하나입니다. Word2Vec는 의미적 및 구문적 공통점을 식별하는 데 유용합니다. 즉, Word2Vec는 유사한 개념 사이의 관계를 캡처할 수 있으며, “King”과 “Queen” 사이의 공통점은 왕실이라는 사실이며, “King”은 남성성을 의미하는 반면 “Queen”은 여성성을 의미한다는 것을 구분할 수 있습니다.
GloVe
GloVE, 또는 글로벌 벡터는 Word2Vec의 임베딩 알고리즘을 기반으로 합니다. GloVE 임베딩 방법은 Word2Vec와 행렬 분해 techniques와 같은 Latent Semantic Analysis를 결합합니다. Word2Vec의 장점은 문맥을 캡처할 수 있다는 것입니다. 그러나 글로벌 텍스트 통계를 캡처하는 데에는 좋지 않습니다. GloVE는 두 접근 방식의 장점을 결합하여 글로벌 텍스트 통계를 기반으로 단어-문맥을 생성합니다.












