글과 사진, 그리고 이야기

T&DI LAB/토픽모델링

STM 실습 (2) 데이터 가공

뱃놀이가자 2023. 11. 14. 22:36
728x90

https://www.kaggle.com/datasets/aggle6666/bbc-news

 

BBC News Articles

This dataset contains BBC News Articles scrapped from the year 2017

www.kaggle.com

캐글에서 제공하는 데이터는 

 

다음과 같은 구조를 가진다.

STM 모델에 적용하기 위해 파이썬 환경에서 데이터셋을 약간 전처리할 계획이다.

 

연구실 선배님이 논문을 읽었는데 STM topic의 성능을 향상시키기 위해 headline을 두 번 concat하여 가중치를 두는 경우도 있다고 하여 document를 만들 때 참고하기로 했다. 또한 metadata로서 date를 활용하기 위해 현재 날짜의 데이터 타입을 바꿀 필요가 있어 

Saturday 08 April 2017

을  April로 바꾸었다.

 

사용하지 않을 것 같은 데이터는 삭제하였고 전체적인 전처리를 요약하면 다음 코드와 같다.

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df=pd.read_csv('BBC_08_APR_17_to_08_JUN_2017.csv', encoding='utf-8')

df.isnull().sum()
# 혹시 원본 데이터에 결측치가 있는지 확인하고자 함

for i in df.index:
    if 'April' in df.loc[i, 'date']:
        df['date'][i]='April'
    elif 'May' in df.loc[i, 'date']:
        df['date'][i]='May'
    elif 'June' in df.loc[i, 'date']:
        df['date'][i]='June'
        
df.drop(labels=['panda_date', 'url'], axis=1, inplace=True)
df['document']=df['headline']+' '+ df['headline']+ ' '+ df['article']
# 가중치 부여
df.to_csv('preprocess.csv', encoding='utf-8')

 

미리보기를 하면 다음과 같다

 

728x90