반응형
한국어 감성분석 사전을 활용하여 문장의 감성점수를 구하는 파이썬 코드를 소개해드리겠습니다.
KoNLPy 패키지에서 제공하는 Komoran 형태소 분석기와 한국어 감성분석 사전인 KNU 한국어 감성사전을 함께 사용하여 문장의 감성점수를 계산할 수 있습니다.
먼저, 필요한 패키지를 import 합니다.
from konlpy.tag import Komoran
import pandas as pd
다음으로, Komoran 객체와 감성사전을 불러옵니다.
komoran = Komoran()
sentiment_file = 'KNU한국어감성사전.txt'
sentiment_df = pd.read_csv(sentiment_file, delimiter='\t', header=None)
감성사전은 탭(\t)으로 구분된 텍스트 파일로 되어 있으므로, pandas를 사용하여 데이터프레임으로 변환합니다.
다음으로, 문장의 감성점수를 계산하는 함수를 정의합니다.
def get_sentiment_score(sentence):
words = komoran.pos(sentence) # 형태소 분석
score = 0
for word, pos in words:
if pos in ['VA', 'VV', 'VX', 'VCP', 'VCN', 'MAG']: # 감성단어인 경우
found = sentiment_df[sentiment_df[0] == word] # 단어 검색
if not found.empty: # 단어가 존재하는 경우
polarity = found.iloc[0, 1] # 극성(긍정/부정) 확인
if polarity == 'P':
score += 1 # 긍정일 경우 감성점수 +1
elif polarity == 'N':
score -= 1 # 부정일 경우 감성점수 -1
return score
위 함수에서는 입력된 문장을 Komoran 객체를 사용하여 형태소 분석하고, 감성분석 사전에서 단어를 검색하여 극성(긍정/부정)을 확인하며, 이를 바탕으로 감성점수를 계산합니다.
예를 들어, "오늘 날씨가 좋아서 기분이 좋다"는 문장의 감성점수를 계산하면 다음과 같습니다.
sentence = '오늘 날씨가 좋아서 기분이 좋다'
score = get_sentiment_score(sentence)
print(score) # 2
이 문장에서는 '좋다'라는 긍정적인 감성단어가 2회 등장하였으므로, 감성점수는 2점입니다.
반응형
'데이터 분석 > 데이터 분석 방법' 카테고리의 다른 글
추천 시스템(상품 연관도 / 유사도) (0) | 2023.02.23 |
---|---|
데이터를 활용한 상품 추천 (0) | 2023.02.23 |
[감성 분석(3)] 머신러닝 자연어 처리 한국어 감성분석 방법(샘플 코드) (1) | 2023.02.23 |
[감성 분석(2)] 형태소 분석기를 활용한 감성분석 기법(샘플코드 포함) (0) | 2023.02.23 |
[감성 분석(1)] 한국어 형태소 분석 (1) | 2023.02.22 |