참고로 여기서 사용되는 댓글 데이터 엑셀 파일은 '[자연어처리] 댓글 데이터 엑셀에 저장하기' 에서 가져온 파일인데, 여기다가 직접 라벨링을 한 것입니다.(label = 0 (부정), label = 1 (긍정))
1. 데이터 추출
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re
from tqdm import tqdm
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
일단 필요한 라이브러리 임포트 합시다.
그리고 댓글이 담긴 엑셀 파일을 업로드 한다.
from google.colab import files
uploaded = files.upload()
이러면 엑셀 파일 업로드 완료.
이후 데이터프레임에 파일을 넘기면,
df = pd.read_excel('WU84tVatcFE.xlsx') # 파일 명
df
이렇게 엑셀 파일에 담긴 댓글이 데이터프레임 안에 저장되었다.
총 댓글의 수를 알고싶으면
print('댓글 개수 :',len(df))
총 48개의 댓글이 있다는 것을 알 수 있다.
2. 데이터 정제
중복된 댓글이 있는 지 확인하는 단계이다.
df['댓글 내용'].nunique() # 댓글의 내용 중 중복된 값을 제외한 수
위와 같이 '댓글 내용' 중 중복된 것을 제외한 수가 48개인 것을 알 수 있다. 즉 '댓글 내용'은 중복된 것이 없다는 뜻이다.
다음으로 각 'label' 의 수를 파악하면,
df['label'].value_counts().plot(kind = 'bar') # 여기서 label 은 긍정, 부정을 나타낸다. label = 0 은 부정, label = 1 은 긍정
위와 같이 0 이 더 많으므로 부정적인 댓글이 많다는 것을 알 수 있다.
육안으로 알아보기 힘들다면 그룹으로 묶어서 각 'label' 의 수를 알 수 있다.
print(df.groupby('label').size().reset_index(name = 'count'))
0 (부정)은 26개, 1 (긍정)은 22개 이다.
3. 데이터 전처리
일단 댓글에서 한글을 제외한 모든 문자를 제거해보자.
df['댓글 내용'] = df['댓글 내용'].str.replace("[^ㄱ-ㅎㅏ-ㅣ가-힣 ]","")
df[:5]
음. 딱 봐도 숫자나 특수문자 같은 것이 없어진게 보인다.
다음 전처리는 토큰화인데...
계속 오류가 뜬다.. 다음 글에서 해결해서 돌아올께요..
'캡스톤 > 자연어처리' 카테고리의 다른 글
[자연어처리] 댓글 데이터 전처리 (2) (0) | 2022.04.05 |
---|---|
[자연어처리] No module named 'konlpy' 에러 (0) | 2022.04.05 |
[자연어처리] 댓글 데이터 엑셀에 저장하기 (0) | 2022.04.03 |
[자연어처리] 유튜브 API 를 사용해 영상 댓글 데이터 가져오기 (0) | 2022.04.03 |
[자연어처리] 유튜브 댓글 크롤링 후 엑셀에 저장 (0) | 2022.03.15 |