텍스트 분류는 자연어 처리(Natural Language Processing, NLP) 분야에서 중요한 작업 중 하나입니다. Gensim은 텍스트 분류 작업에 매우 유용한 도구입니다. 이번 블로그 포스트에서는 Gensim을 사용하여 텍스트 분류 모델의 정확도를 측정하는 방법을 알아보겠습니다.
준비 사항
-
Gensim 설치하기: Gensim을 사용하기 위해 먼저 설치해야 합니다. pip를 사용하여 다음 명령어를 실행하여 Gensim을 설치합니다.
pip install gensim
-
데이터셋 준비하기: 텍스트 분류 모델을 학습하고 테스트하기 위해 데이터셋을 준비해야 합니다. 예를 들어, 스팸 메일 분류를 위한 스팸 메일과 정상 메일로 구성된 데이터셋을 사용할 수 있습니다.
텍스트 분류 모델 학습하기
-
데이터셋 로드하기: Gensim은 다양한 파일 형식을 지원하므로, 미리 처리된 텍스트 데이터셋을 로드할 수 있습니다. 예를 들어,
.txt
파일을 로드하는 방법은 다음과 같습니다.from gensim.models.doc2vec import TaggedDocument from gensim.utils import simple_preprocess def read_corpus(file_path): with open(file_path, 'r') as file: for line in file: yield TaggedDocument(simple_preprocess(line), [file_path]) corpus = list(read_corpus('data.txt'))
-
분류 모델 학습하기: Gensim의
Doc2Vec
모델을 사용하여 텍스트 분류 모델을 학습할 수 있습니다. 다음은 간단한 예시 코드입니다.from gensim.models.doc2vec import Doc2Vec model = Doc2Vec(vector_size=100, min_count=2, epochs=40) model.build_vocab(corpus) model.train(corpus, total_examples=model.corpus_count, epochs=model.epochs)
-
모델 저장하기: 훈련된 모델을 저장하여 나중에 재사용할 수 있습니다.
model.save('classification_model')
텍스트 분류 모델의 정확도 측정하기
-
테스트 데이터셋 로드하기: 정확도를 측정하기 위해 테스트 데이터셋을 준비해야 합니다.
test_corpus = list(read_corpus('test_data.txt'))
-
분류 모델 예측하기: 저장된 모델을 로드하고, 테스트 데이터셋에 대한 예측을 수행합니다.
loaded_model = Doc2Vec.load('classification_model') test_vectors = [loaded_model.infer_vector(doc.words) for doc in test_corpus] predictions = loaded_model.docvecs.most_similar(test_vectors)
-
정확도 계산하기: 예측 결과와 실제 레이블을 비교하여 정확도를 계산할 수 있습니다.
def calculate_accuracy(predictions, test_corpus): correct_count = 0 total_count = len(predictions) for prediction, truth in zip(predictions, test_corpus): if prediction[0] == truth.tags[0]: correct_count += 1 accuracy = correct_count / total_count return accuracy accuracy = calculate_accuracy(predictions, test_corpus) print(f"Accuracy: {accuracy}")
위 방법을 통해 Gensim을 사용하여 텍스트 분류 모델의 정확도를 측정할 수 있습니다. 데이터셋에 따라 성능은 달라질 수 있으며, 모델의 튜닝 및 다른 알고리즘의 사용이 필요할 수 있습니다.
더 많은 자세한 내용은 Gensim 공식 문서를 참조하시기 바랍니다.
#NLP #Gensim