반응형
한국어 문장의 감성을 분석하고 긍정과 부정으로 분류할 수 있는 대표적인 코드는 KoNLPy와 Scikit-learn을 이용한 감성 분석 코드입니다.
이 코드는 다음과 같은 순서로 작동합니다.
1. 데이터 수집 및 전처리
2. 형태소 분석 및 품사 태깅
3. 긍정, 부정 단어 사전 생성
4. 피처 추출 및 벡터화
5. 분류 모델 생성 및 학습
6. 테스트 데이터 예측 및 성능 평가
이 코드를 실행하면, 입력된 한국어 문장의 감성을 긍정 또는 부정으로 분류하여 결과를 출력합니다.
예시 코드:
# 필요한 라이브러리 import
from konlpy.tag import Okt
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# 데이터 수집 및 전처리
data = ['이 영화 너무 재미있었어!', '이 영화 너무 지루했어...']
labels = [1, 0]
# 형태소 분석 및 품사 태깅
okt = Okt()
X_train = []
for sentence in data:
morphs = okt.morphs(sentence) # 형태소 분석
pos = okt.pos(sentence) # 품사 태깅
# 명사, 동사, 형용사만 추출
X_train.append(' '.join([morph[0] for morph in pos if morph[1] in ['Noun', 'Verb', 'Adjective']]))
# 긍정, 부정 단어 사전 생성
pos_dict = ['재미있', '좋', '행운', '즐거', '유쾌', '신나', '즐겁']
neg_dict = ['지루하', '나쁘', '슬프', '우울', '실망', '불안', '짜증']
# 피처 추출 및 벡터화
tfidf = TfidfVectorizer(max_features=1000)
X_train = tfidf.fit_transform(X_train).toarray()
# 분류 모델 생성 및 학습
X_train, X_test, y_train, y_test = train_test_split(X_train, labels, test_size=0.2, random_state=42)
lr = LogisticRegression()
lr.fit(X_train, y_train)
# 테스트 데이터 예측 및 성능 평가
X_test = tfidf.transform(X_test).toarray()
y_pred = lr.predict(X_test)
print("Accuracy: ", accuracy_score(y_test, y_pred))
주어진 문장을 형태소 분석과 품사 태깅을 통해 명사, 동사, 형용사만 추출한 후, 피처 추출과 벡터화를 거쳐 분류 모델을 생성하고 학습시킵니다.
이를 통해 문장이 긍정인지 부정인지 예측하는데 활용할 수 있습니다.
이 페이지에서 설명한 방법은 각 문장에 긍정과 부정으로 라벨링 후 이진 분류기에 의해 감성을 예측하는 방법입니다.
다음에는 감성 사전을 활용한 방법을 소개하도록 하겠습니다.
반응형
'데이터 분석 > 데이터 분석 방법' 카테고리의 다른 글
데이터를 활용한 상품 추천 (0) | 2023.02.23 |
---|---|
[감성 분석(4)] 한국어 감성사전을 활용한 문장 감성점수 평가(샘플 코드) (0) | 2023.02.23 |
[감성 분석(2)] 형태소 분석기를 활용한 감성분석 기법(샘플코드 포함) (0) | 2023.02.23 |
[감성 분석(1)] 한국어 형태소 분석 (0) | 2023.02.22 |
문장에서 키워드 단어 추출 방법(머신러닝 전처리) (0) | 2023.02.22 |