[파이썬] Gensim 텍스트 분류의 gensim 활용

Gensim은 파이썬에서 자연어 처리를 위한 강력한 라이브러리입니다. 이번 포스트에서는 Gensim을 사용하여 텍스트 분류를 수행하는 방법에 대해 알아보겠습니다.

텍스트 분류란?

텍스트 분류는 텍스트 문서를 사전에 정의된 카테고리나 그룹으로 분류하는 과정입니다. 주어진 텍스트를 분석하여 주제, 감성, 언어 등을 판단하고 해당하는 카테고리에 할당하는 것이 텍스트 분류의 목적입니다. 예를 들어, 스팸 메일 필터링, 감성 분석, 뉴스 기사 분류 등이 텍스트 분류의 대표적인 예시입니다.

Gensim을 이용한 텍스트 분류

Gensim은 벡터 공간 모델링을 사용하여 텍스트 문서를 벡터로 표현하고, 이를 바탕으로 텍스트 분류를 수행할 수 있습니다. 아래는 Gensim을 사용하여 텍스트 분류를 수행하는 간단한 예제 코드입니다.

import gensim
from gensim import corpora
from gensim.models import LdaModel
from gensim.utils import simple_preprocess
from gensim.parsing.preprocessing import STOPWORDS

# 텍스트 문서 데이터셋
documents = ["Gensim은 텍스트 분석을 위한 라이브러리입니다.",
             "Gensim을 사용하면 텍스트 데이터를 벡터로 표현할 수 있습니다.",
             "텍스트 분류를 통해 문서를 주제별로 분류할 수 있습니다."]

# 전처리 함수
def preprocess(text):
    result = []
    for token in simple_preprocess(text):
        if token not in STOPWORDS:
            result.append(token)
    return result

# 텍스트 전처리
processed_docs = [preprocess(doc) for doc in documents]

# 단어 사전 생성
dictionary = corpora.Dictionary(processed_docs)

# 문서를 벡터로 변환
corpus = [dictionary.doc2bow(doc) for doc in processed_docs]

# 토픽 모델링
lda_model = LdaModel(corpus=corpus, id2word=dictionary, num_topics=2)

# 분류 수행
for doc in processed_docs:
    bow = dictionary.doc2bow(doc)
    topic = max(lda_model.get_document_topics(bow), key=lambda x: x[1])[0]
    print("문서: {}, 분류: {}".format(" ".join(doc), topic))

위 예제 코드에서는 Gensim을 사용하여 텍스트 데이터를 전처리하고, 단어 사전을 생성한 뒤 문서를 벡터로 변환합니다. 이후 LDA 토픽 모델링을 수행하여 주제를 추출하고, 분류를 수행하는 부분까지 구현되어 있습니다.

결론

Gensim을 활용하여 텍스트 분류를 수행하는 방법을 알아보았습니다. Gensim은 간편하고 효율적인 텍스트 분석을 위한 강력한 도구이며, 다양한 자연어 처리 작업에 활용될 수 있습니다. 텍스트 분류를 수행해야 할 때 Gensim을 고려해보세요.