[python] 문장 분류
이 블로그에서는 Python을 사용하여 문장을 분류하는 방법을 알아보겠습니다.
1. 자연어 처리 라이브러리 설치
문장을 분류하려면 먼저 자연어 처리 라이브러리를 설치해야합니다. 가장 인기 있는 자연어 처리 라이브러리 중 하나인 nltk
를 사용하여 진행해 보겠습니다.
pip install nltk
2. 데이터 전처리
분류할 문장 데이터를 불러온 후, 텍스트 데이터를 전처리해야 합니다. 이 단계에는 문장을 토큰화하고, 불필요한 문자를 제거하며, 단어를 소문자로 변환하는 등의 작업이 포함됩니다.
import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from string import punctuation
# 예시 데이터
sentence = "This is an example sentence for text classification."
# 문장 토큰화
tokens = word_tokenize(sentence)
# 불용어 및 구두점 제거
stop_words = set(stopwords.words('english'))
words = [word.lower() for word in tokens if word.isalnum() and word.lower() not in stop_words and word not in punctuation]
print(words)
3. 모델 학습
전처리한 데이터를 사용하여 모델을 학습시킬 수 있습니다. 예를 들어, Naive Bayes 분류기를 사용하여 문장을 분류할 수 있습니다.
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 예시 레이블과 데이터
labels = ['positive', 'negative', 'neutral']
data = ['This is a positive sentence.', 'I am not happy with this.', 'It is okay.']
# TF-IDF 벡터화
tfidf = TfidfVectorizer()
X = tfidf.fit_transform(data)
y = labels
# 학습 및 테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Naive Bayes 모델 학습
model = MultinomialNB()
model.fit(X_train, y_train)
# 모델 평가
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy: {:.2f}%".format(accuracy * 100))
4. 예측
학습된 모델을 사용하여 새로운 문장을 분류할 수 있습니다.
new_sentence = "I feel great!"
# 새로운 문장 TF-IDF 벡터화
new_X = tfidf.transform([new_sentence])
# 모델을 사용하여 예측
predicted_label = model.predict(new_X)
print("Predicted label:", predicted_label[0])
이제 Python을 사용하여 문장을 분류하는 방법을 알아보았습니다. 다양한 모델과 전처리 기술을 사용하여 정확도를 더 높일 수 있습니다.
참고 문헌:
본 블로그는 Python을 활용하여 문장 분류하는 방법에 대한 간략한 소개를 제공합니다.