[패스트캠퍼스 수강 후기] 데이터분석 인강 100% 환급 챌린지 47회차 미션
12. ch 03. 텍스트 마이닝 - 01. 텍스트 마이닝이란 - 13. ch 03. 텍스트 마이닝 - 02. 텍스트 데이터 전처리 실습
12. ch 03. 텍스트 마이닝 - 01. 텍스트 마이닝이란
13. ch 03. 텍스트 마이닝 - 02. 텍스트 데이터 전처리 실습
1) Library & Data Import
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")
df = pd.read_csv("https://raw.githubusercontent.com/yoonkt200/FastCampusDataset/master/bourne_scenario.csv")
df.head()
Feature Description
page_no : 데이터가 위치한 pdf 페이지 정보
scene_title : 씬 제목
text : 씬에 해당하는 지문/대본 텍스트 정보
2) 데이터셋 살펴보기
2-1) 기본 정보 탐색
데이터셋 기본 정보 탐색
df.shape
df.isnull().sum()
df.info()
df['text'][0]
df['text'][5]
len(df['text'].values.sum())
3) 텍스트 데이터 전처리
3-1) 정규 표현식 적용
df['text'][0]
import re
def apply_regular_expression(text):
text = text.lower()
english = re.compile('[^ a-z]')
result = english.sub('', text)
result = re.sub(' +', ' ', result)
return result
apply_regular_expression(df['text'][0])
df['processed_text'] = df['text'].apply(lambda x: apply_regular_expression(x))
df.head()
3-2) Word Count
말뭉치(코퍼스) 생성
corpus = df['processed_text'].tolist()
corpus
BoW 벡터 생성
from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer(tokenizer=None, stop_words="english", analyzer='word').fit(corpus)
bow_vect = vect.fit_transform(corpus)
word_list = vect.get_feature_names()
count_list = bow_vect.toarray().sum(axis=0)
word_list
count_list
bow_vect.shape
bow_vect.toarray()
bow_vect.toarray().sum(axis=0)
bow_vect.toarray().sum(axis=0).shape
word_count_dict = dict(zip(word_list, count_list))
word_count_dict
import operator
sorted(word_count_dict.items(), key=operator.itemgetter(1), reverse=True)
단어 분포 탐색
plt.hist(list(word_count_dict.values()), bins=150)
plt.show()
패스트캠퍼스 데이터분석 강의 링크
bit.ly/3imy2uN