취향저격 - 전처리
지난 포스터에서는 형태소 분석기들의 성능을 비교해 보았다.
이번 포스터에서는 프로젝트를 진행하면서, 형태소 분석기를 이용해서 수집한 데이터를 전처리하는 코드를 리뷰할 것이다.
문장 단위로 나누기
import kss #문장 단위로 나눌 라이브러리를 쓰기위해 선언
import pandas as pd # 파일을 저장하기위해 선언
from tqdm import tqdm_notebook, tnrange # 반복문 진행사항을 알기위해 선언
data = pd.read_csv('D:/Sig 팀 프로젝트/2학년 겨울방학/winter_sig/한석/Movie_Sent.csv',encoding='utf-8') # 영화별로 모아놓은 데이터 경로
title_list = [] # 제목을 저장할 리스트
code_list = [] # 영화 코드를 저장할 리스트
sentence_list = [] # 문장으로 나눠서 저장할 리스트
genre_list = [] # 영화의 장르를 저장할리스트
for movie_title, movie_code, movie_summary, movie_genre in tqdm_notebook(zip(data['Title'], data['Code'], data['Sentence'], data['Genre'])): # 불러온 csv 파일중 제목, 코드, 줄거리, 장르를 불러옴
for sent in kss.split_sentences(movie_summary): # 영화의 줄거리를 문장 단위로 나눠줌
title_list.append(movie_title) # 나눈 영화의 제목 저장
code_list.append(movie_code) # 나눈 영화의 코드 저장
genre_list.append(movie_genre)
sentence_list.append(sent) # 나눈 영화의 문장을 저장
movie_Data = pd.DataFrame({"Code": code_list, "Genre": genre_list, "Title": title_list, "Sentence": sentence_list}) # 저장한 리스트들을 데이터 프레임으로 저장
movie_Data.to_csv("Movie_Sents.csv") # 저장한 데이터 프레임을 csv파일로 저장
print("done")
import kss #문장 단위로 나눌 라이브러리를 쓰기위해 선언
import pandas as pd # 파일을 저장하기위해 선언
from tqdm import tqdm_notebook, tnrange # 반복문 진행사항을 알기위해 선언
data = pd.read_csv('D:/Sig 팀 프로젝트/2학년 겨울방학/winter_sig/한석/Movie_Sent.csv',encoding='utf-8') # 영화별로 모아놓은 데이터 경로
title_list = [] # 제목을 저장할 리스트
code_list = [] # 영화 코드를 저장할 리스트
sentence_list = [] # 문장으로 나눠서 저장할 리스트
genre_list = [] # 영화의 장르를 저장할리스트
for movie_title, movie_code, movie_summary, movie_genre in tqdm_notebook(zip(data['Title'], data['Code'], data['Sentence'], data['Genre'])): # 불러온 csv 파일중 제목, 코드, 줄거리, 장르를 불러옴
for sent in kss.split_sentences(movie_summary): # 영화의 줄거리를 문장 단위로 나눠줌
title_list.append(movie_title) # 나눈 영화의 제목 저장
code_list.append(movie_code) # 나눈 영화의 코드 저장
genre_list.append(movie_genre)
sentence_list.append(sent) # 나눈 영화의 문장을 저장
movie_Data = pd.DataFrame({"Code": code_list, "Genre": genre_list, "Title": title_list, "Sentence": sentence_list}) # 저장한 리스트들을 데이터 프레임으로 저장
movie_Data.to_csv("Movie_Sents.csv") # 저장한 데이터 프레임을 csv파일로 저장
print("done")
영화별로 모아놓은 줄거리, 명대사, 리뷰를 하나의 sentence로 합쳐놨었다. 이를 다시 한 문장 단위로 잘라서 (코드, 장르, 제목, 문장)의 형식으로 저장하는 코드이다.
문장 단위로 나눌 때는 kss의 split_senteces를 사용했다.
영화의 데이터를 저장할 때 한 영화에 여러 장르일 경우가 있었는데 이 경우에는 장르를 나눠서 장르별로 하나의 데이터를 만들어서 저장했었다.
위의 사진처럼 장르 부분만 다르게 해놓은 것이다.
영화의 문장별로 잘 저장된 것처럼 보인다.
tqdm
from tqdm import tqdm_notebook, tnrange'
이 부분은 이번 프로젝트를 주피터 노트북 환경에서 진행 했는데 반복문을 게이지로 표시하는 라이브러리이다.
from tqdm import tqdm
주피터 환경이 아닌 다른 IDE의 환경의 경우는 잘 모르지만 위의 코드를 입력하면 될 것이다.
전처리 코드
from konlpy.tag import Okt
from tqdm import tqdm_notebook, tnrange
import pandas as pd
import re
okt = Okt() # Okt 선언
sentence_data = [] # 전처리 한 문장들을 저장할 리스트
data = pd.read_csv('D:/Sig 팀 프로젝트/2학년 겨울방학/winter_sig/한석/Movie_Sents.csv',encoding='utf-8')
for movie_summary in tqdm_notebook(data["Sentence"]):
word_list = []
summary = re.sub('[-=+,#/\?:^$.@*\"※~&%ㆍ!』\\‘|\(\)\[\]\<\>`\'…》\]\[\’]', '', movie_summary) # 줄거리의 특수 문자를 제거
for word in okt.pos(summary, stem = True): #stem = True로 단어의 어간을 추출
if word[1] not in ['Josa', 'Punctuation', 'Foreign', 'KoreanParticle', 'Suffix', 'Adverb']: # 조사, 구두점, 외국어, 초성, 접미사, 부사 제거
word_list.append(word[0]) # 위에 해당되지 않는 단어들을 저장함으로써 하나의 문장으로 다시 만듬
sentence_data.append(word_list) # 전처리 된 문장 저장
movie_Data = pd.DataFrame({"Code": data['Code'], "Genre": data['Genre'], "Title": data['Title'], "Sentence": sentence_data})
movie_Data.to_csv("Movie_Sentence_Data.csv") # 파일 저장
print("done")
from konlpy.tag import Okt
from tqdm import tqdm_notebook, tnrange
import pandas as pd
import re
okt = Okt() # Okt 선언
sentence_data = [] # 전처리 한 문장들을 저장할 리스트
data = pd.read_csv('D:/Sig 팀 프로젝트/2학년 겨울방학/winter_sig/한석/Movie_Sents.csv',encoding='utf-8')
for movie_summary in tqdm_notebook(data["Sentence"]):
word_list = []
summary = re.sub('[-=+,#/\?:^$.@*\"※~&%ㆍ!』\\‘|\(\)\[\]\<\>`\'…》\]\[\’]', '', movie_summary) # 줄거리의 특수 문자를 제거
for word in okt.pos(summary, stem = True): #stem = True로 단어의 어간을 추출
if word[1] not in ['Josa', 'Punctuation', 'Foreign', 'KoreanParticle', 'Suffix', 'Adverb']: # 조사, 구두점, 외국어, 초성, 접미사, 부사 제거
word_list.append(word[0]) # 위에 해당되지 않는 단어들을 저장함으로써 하나의 문장으로 다시 만듬
sentence_data.append(word_list) # 전처리 된 문장 저장
movie_Data = pd.DataFrame({"Code": data['Code'], "Genre": data['Genre'], "Title": data['Title'], "Sentence": sentence_data})
movie_Data.to_csv("Movie_Sentence_Data.csv") # 파일 저장
print("done")
위의 코드는 앞으로 사용할 영화 데이터를 전처리 한 후 저장하는 코드이다.
문장의 전처리는 형태소 분석기 중 Okt를 사용했고, 단어의 어간을 추출했다.
조사, 구두점, 외국어, 초성, 접미사, 부사를 문장에서 제거한 후, 각 제거된 문장들을 다시 리스트로 만들어서 파일로 저장했다.
Author And Source
이 문제에 관하여(취향저격 - 전처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hsoh0423/취향저격-전처리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)