본문 바로가기

카테고리 없음

[패스트캠퍼스 수강 후기] 데이터분석 인강 100% 환급 챌린지 47회차 미션

[패스트캠퍼스 수강 후기] 데이터분석 인강 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