부본 텍스트 분류는 어떻게 작동합니까? - Unite.AI
Rescale 미팅 예약

AI 101

텍스트 분류는 어떻게 작동합니까?

mm
업데이트 on

텍스트 분류는 텍스트 시퀀스를 분석하고 레이블을 지정하여 내용에 따라 그룹에 배치하는 프로세스입니다. 텍스트 분류는 자연어 처리(NLP)와 관련된 거의 모든 AI 또는 기계 학습 작업의 기초가 됩니다. 텍스트 분류를 통해 컴퓨터 프로그램은 스팸 인식, 감정 분석, 챗봇 기능과 같은 다양한 작업을 수행할 수 있습니다. 텍스트 분류는 정확히 어떻게 작동하나요? 텍스트 분류를 수행하는 다양한 방법은 무엇입니까? 아래에서 이러한 질문에 대한 답변을 살펴보겠습니다.

텍스트 분류 정의

시간을 갖고 우리가 이해했는지 확인하는 것이 중요합니다. 텍스트 분류가 무엇인지, 일반적으로 텍스트 분류를 수행하는 다양한 방법을 탐구하기 전에. 텍스트 분류는 다양한 작업과 알고리즘에 적용되는 용어 중 하나이므로 수행할 수 있는 다양한 방법을 탐색하기 전에 텍스트 분류의 기본 개념을 이해하는 것이 유용합니다.

텍스트에 대해 다른 범주를 만든 다음 다른 텍스트 샘플에 이러한 범주로 레이블을 지정하는 것과 관련된 모든 작업은 텍스트 분류로 간주될 수 있습니다. 시스템이 이러한 기본 단계를 수행하는 한 텍스트를 분류하는 데 사용되는 정확한 방법과 텍스트 분류기가 최종적으로 적용되는 방법에 관계없이 텍스트 분류기로 간주될 수 있습니다. 이메일 스팸 감지, 주제 또는 제목별로 문서 구성, 제품에 대한 리뷰 감정 인식은 텍스트를 입력으로 사용하고 해당 텍스트에 대한 클래스 레이블을 출력함으로써 수행되기 때문에 모두 텍스트 분류의 예입니다.

텍스트 분류는 어떻게 작동합니까?

사진: Flickr를 통한 Quinn Dombrowski, CC BY SA 2.0, (https://www.flickr.com/photos/quinnanya/4714794045)

대부분의 텍스트 분류 방법은 규칙 기반 방법 또는 기계 학습 방법의 세 가지 범주 중 하나로 분류될 수 있습니다.

규칙 기반 분류 방법

규칙 기반 텍스트 분류 방법은 명시적으로 엔지니어링된 언어 규칙을 사용하여 작동합니다. 시스템은 엔지니어가 생성한 규칙을 사용하여 주어진 텍스트 조각이 속해야 하는 클래스를 결정하고 의미론적으로 관련된 텍스트 요소의 형태로 단서를 찾습니다. 모든 규칙에는 텍스트가 해당 범주에 배치되기 위해 일치해야 하는 패턴이 있습니다.

좀 더 구체적으로 말하면 날씨, 영화, 음식과 같은 일반적인 대화 주제를 구별할 수 있는 텍스트 분류기를 디자인하고 싶다고 가정해 보겠습니다. 텍스트 분류기가 날씨에 대한 논의를 인식할 수 있도록 하려면 제공되는 텍스트 샘플의 본문에서 날씨 관련 단어를 찾도록 지시할 수 있습니다. 주제를 구별하는 데 사용할 수 있는 키워드, 구문 및 기타 관련 패턴 목록이 있습니다. 예를 들어 분류자에게 "바람", "비", "태양", "눈" 또는 "구름"과 같은 단어를 찾도록 지시할 수 있습니다. 그런 다음 분류자가 입력 텍스트를 살펴보고 이러한 단어가 텍스트 본문에 나타나는 횟수를 계산하고 영화와 관련된 단어보다 더 자주 나타나는 경우 텍스트를 날씨 클래스에 속하는 것으로 분류할 수 있습니다.

규칙 기반 시스템의 장점은 입력 및 출력이 인간에 의해 예측 및 해석 가능하고 엔지니어의 수동 개입을 통해 개선될 수 있다는 것입니다. 그러나 규칙 기반 분류 방법도 다소 취약하며 프로그래밍된 미리 정의된 패턴만 고수할 수 있기 때문에 일반화하는 데 어려움을 겪는 경우가 많습니다. 예를 들어 "구름"이라는 단어는 하늘, 또는 데이터가 저장되는 디지털 클라우드를 의미할 수 있습니다. 규칙 기반 시스템은 엔지니어가 이러한 미묘함을 수동으로 예측하고 조정하는 데 상당한 시간을 소비하지 않고 이러한 뉘앙스를 처리하기 어렵습니다.

기계 학습 시스템

위에서 언급한 바와 같이 규칙 기반 시스템에는 기능과 규칙이 미리 프로그래밍되어 있어야 하므로 제한이 있습니다. 대조적으로 기계 학습 기반 분류 시스템은 특정 클래스와 관련된 패턴에 대한 데이터 세트를 분석하는 알고리즘을 적용하여 작동합니다.

기계 학습 알고리즘은 관련 기능에 대해 분석되는 미리 레이블이 지정된/사전 분류된 인스턴스를 제공받습니다. 이러한 미리 레이블이 지정된 인스턴스는 학습 데이터입니다.

기계 학습 분류자는 교육 데이터를 분석하고 다양한 클래스와 관련된 패턴을 학습합니다. 그런 다음 보이지 않는 인스턴스는 레이블을 제거하고 인스턴스에 레이블을 할당하는 분류 알고리즘에 공급됩니다. 그런 다음 할당된 레이블을 원래 레이블과 비교하여 기계 학습 분류기가 얼마나 정확한지 확인하고 모델이 어떤 패턴을 얼마나 잘 학습하여 어떤 클래스를 예측하는지 측정합니다.

기계 학습 알고리즘은 수치 데이터를 분석하여 작동합니다. 즉, 텍스트 데이터에 기계 학습 알고리즘을 사용하려면 텍스트를 숫자 형식으로 변환해야 합니다. 텍스트 데이터를 숫자 데이터로 인코딩하고 이 데이터를 중심으로 기계 학습 방법을 만드는 다양한 방법이 있습니다. 아래에서 텍스트 데이터를 나타내는 다양한 방법 중 일부를 다룰 것입니다.

백오브워드

한마디 텍스트 데이터를 인코딩하고 나타내는 데 가장 일반적으로 사용되는 접근 방식 중 하나입니다. "bag-of-words"라는 용어는 기본적으로 문서의 모든 단어를 취하여 어순이나 문법에 주의를 기울이지 않고 모두 하나의 "bag"에 넣는다는 사실에서 유래합니다. 단어의 빈도 가방 안에. 그 결과 입력 문서에 있는 모든 단어의 단일 표현을 포함하는 긴 배열 또는 벡터가 생성됩니다. 따라서 입력 문서에 총 10000개의 고유 단어가 있는 경우 특징 벡터의 길이는 10000단어가 됩니다. 이것이 단어 bag/feature vector의 크기가 계산되는 방식입니다.

사진: Machinelearning.co를 통한 gk_, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

특징 벡터 크기가 결정된 후 전체 문서 목록의 모든 문서에는 해당 단어가 현재 문서에 나타나는 횟수를 나타내는 숫자로 채워진 자체 벡터가 할당됩니다. 즉, "food"라는 단어가 하나의 텍스트 문서에 XNUMX번 나타나면 해당 특징 벡터/특징 배열의 해당 위치에 XNUMX이 나타납니다.

다시 말해, 입력 문서에 나타나는 모든 고유 단어는 모두 하나의 가방에 쌓이고 각 문서는 동일한 크기의 단어 벡터를 가져오고 다른 단어가 문서에 나타나는 횟수로 채워집니다. .

텍스트 데이터 세트에는 고유한 단어가 많이 포함되는 경우가 많지만 대부분은 자주 사용되지 않습니다. 이러한 이유로 단어 벡터를 생성하는 데 사용되는 단어 수는 일반적으로 선택한 값(N)으로 제한되고 기능 벡터 차원은 Nx1이 됩니다.

용어 빈도-역 문서 빈도(TF-IDF)

문서에 포함된 단어를 기반으로 문서를 나타내는 또 다른 방법은 더빙입니다. 용어 빈도-역 문서 빈도(TF-IDF). TF-IDF 접근 방식은 또한 문서의 단어를 기반으로 문서를 나타내는 벡터를 생성하지만 Bag-of-words와 달리 이러한 단어는 빈도 이상으로 가중치 부여. TF-IDF는 문서에 있는 단어의 중요성을 고려하여 해당 단어가 문서의 주제와 얼마나 관련이 있는지 정량화하려고 시도합니다. 즉, TF-IDF는 빈도 대신 관련성을 분석하고 특징 벡터의 단어 수를 전체 데이터 세트에 대해 계산된 TF-IDF 점수로 대체합니다.

TF-IDF 접근 방식은 먼저 특정 문서 내에서 고유한 용어가 나타나는 횟수인 용어 빈도를 계산하여 작동합니다. 그러나 TF-IDF는 또한 "the", "or", "and"와 같은 매우 일반적인 단어가 미치는 영향을 제한하는 데 주의를 기울입니다. 이러한 "불용어"는 매우 일반적이지만 문서 내용에 대한 정보를 거의 전달하지 않기 때문입니다. 이러한 단어는 TF-IDF의 "역 문서 빈도" 부분이 참조하는 할인이 필요합니다. 이는 특정 단어가 나타나는 문서가 많을수록 모든 문서 목록에서 해당 단어를 다른 문서와 구분하는 데 덜 유용하기 때문입니다. TF-IDF가 단어의 중요도를 계산하는 데 사용하는 공식은 가장 빈번하고 의미론적으로 풍부한 단어를 보존하도록 설계되었습니다.

TF-IDF 접근 방식으로 생성된 특징 벡터에는 합계가 XNUMX인 정규화된 값이 포함되어 각 단어에 TF-IDF 공식으로 계산된 가중치가 부여됩니다.

단어 임베딩

워드 임베딩 유사한 의미를 가진 단어가 유사한 숫자 표현을 갖도록 텍스트를 표현하는 방법입니다.

워드 임베딩 단어를 "벡터화"하여 작동즉, 벡터 공간에서 단어를 실제 값 벡터로 나타냅니다. 벡터는 그리드 또는 매트릭스에 존재하며 방향과 길이(또는 크기)가 있습니다. 단어를 벡터로 나타낼 때 단어는 실제 값으로 구성된 벡터로 변환됩니다. 모든 단어는 하나의 벡터에 매핑되며 의미가 유사한 단어는 방향과 크기가 비슷합니다. 이러한 유형의 인코딩을 통해 기계 학습 알고리즘이 단어 간의 복잡한 관계를 학습할 수 있습니다.

다른 단어를 나타내는 임베딩은 해당 단어가 사용되는 방식과 관련하여 생성됩니다. 유사한 방식으로 사용되는 단어는 유사한 벡터를 갖기 때문에 단어 임베딩을 생성하는 프로세스는 단어가 갖는 일부 의미를 자동으로 변환합니다. 이와는 대조적으로 단어 모음 접근 방식은 서로 다른 단어가 매우 유사한 맥락에서 사용되더라도 서로 다른 표현을 갖는 부서지기 쉬운 표현을 생성합니다.

결과적으로 단어 임베딩은 문장 내 단어의 맥락을 더 잘 포착합니다.

단어 임베딩을 만드는 데 사용되는 다양한 알고리즘과 접근 방식이 있습니다. 가장 일반적이고 신뢰할 수 있는 단어 임베딩 방법에는 임베딩 레이어, word2vec 및 GloVe가 포함됩니다.

임베딩 레이어

기계 학습/딥 러닝 시스템과 함께 단어 임베딩을 사용하는 한 가지 가능한 방법은 임베딩 레이어 사용. 임베딩 레이어는 단어를 임베딩으로 변환한 다음 나머지 딥 러닝 시스템에 공급하는 딥 러닝 레이어입니다. 단어 임베딩은 특정 텍스트 기반 작업에 대한 네트워크 훈련으로 학습됩니다.

단어 임베딩 접근 방식에서 유사한 단어는 유사한 표현을 가지며 유사하지 않은 단어보다 서로 더 가깝습니다.

임베딩 레이어를 사용하려면 먼저 텍스트를 전처리해야 합니다. 문서의 텍스트는 원-핫 인코딩되어야 하며 벡터 크기는 미리 지정되어야 합니다. 그런 다음 원-핫 텍스트는 단어 벡터로 변환되고 벡터는 기계 학습 모델로 전달됩니다.

워드투벡

워드투벡 단어를 삽입하는 또 다른 일반적인 방법입니다. Word2Vec은 통계적 방법을 사용하여 단어를 임베딩으로 변환하며 신경망 기반 모델과 함께 사용하도록 최적화되어 있습니다. Word2Vec은 Google 연구원이 개발했으며 유용하고 풍부한 임베딩을 안정적으로 생성하므로 가장 일반적으로 사용되는 임베딩 방법 중 하나입니다. Word2Vec 표현은 언어의 의미 및 구문 공통성을 식별하는 데 유용합니다. 즉, Word2Vec 표현은 유사한 개념 간의 관계를 포착하여 "왕"과 "여왕" 사이의 공통점이 로열티라는 것과 "왕"이 "남성다움"을 의미하고 여왕이 "여성다움"을 의미한다는 것을 구별할 수 있음을 의미합니다.

글 로베

GloVE 또는 단어 표현을 위한 전역 벡터, Word2Vec에서 사용하는 임베딩 알고리즘을 기반으로 합니다. GloVe 임베딩 방법은 Word2Vec과 Latent Semantic Analysis와 같은 행렬 분해 기술의 측면을 결합합니다. Word2Vec의 장점은 컨텍스트를 캡처할 수 있다는 것이지만 단점으로 전체 텍스트 통계를 제대로 캡처하지 못합니다. 반대로 전통적인 벡터 표현은 전체 텍스트 통계를 결정하는 데는 좋지만 단어와 구문의 컨텍스트를 결정하는 데는 유용하지 않습니다. GloVE는 글로벌 텍스트 통계를 기반으로 단어 컨텍스트를 생성하는 두 가지 접근 방식의 장점을 활용합니다.

전문 분야의 블로거 및 프로그래머 기계 학습 깊은 학습 주제. 다니엘은 다른 사람들이 사회적 이익을 위해 AI의 힘을 사용하도록 돕기를 희망합니다.