FIFA_Online_4_Player_Evalution_Analysis (2)

2022. 5. 24. 14:30Project/FIFA Online 4 댓글 감정분석

728x90
반응형

https://github.com/JooJaeHwan/FIFA_Online_4_Player_Evalution_Analysis

 

GitHub - JooJaeHwan/FIFA_Online_4_Player_Evalution_Analysis

Contribute to JooJaeHwan/FIFA_Online_4_Player_Evalution_Analysis development by creating an account on GitHub.

github.com


데이터 크롤링 

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
import pandas as pd
from collections import defaultdict
# 크롤링
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.implicitly_wait(3)
df =  pd.read_csv('Player.csv', index_col=0)
reviews_dic = defaultdict(list)
for i in range(len(df)):
    for j in range(1, 100):
        url = 'https://fifaonline4.inven.co.kr/dataninfo/rate/index.php?pg={}|searchword={}|season={}'.format(j, df.iloc[i][1], df.iloc[i][2])
        driver.get(url)
        driver.implicitly_wait(5)
        html = driver.page_source 
        soup = BeautifulSoup(html, 'html.parser')
        temp = [i.text.strip() for i in soup.select('#fifaonline4Db > div.fifa4.db_board.board_style01.board_rate > div > table > tbody')]
        if temp[0] == '검색한 데이터가 존재하지 않습니다.':
            break
        data = temp[0].split("\n")
        for z in range(3,len(data),22):
            reviews_dic["name"].append(df.iloc[i][1])
            reviews_dic["class_id"].append(df.iloc[i][2])
            reviews_dic["rate"].append(data[z])
            reviews_dic["reviews"].append(data[z+2])
    print('{}명의 데이터를 수집했습니다'.format(i+1))
    result = pd.DataFrame(reviews_dic)
    result.to_csv("Reviews2.csv")
# webdriver 종료
driver.close()

print("최종 완료")
result.to_csv("Reviews2.csv")

대략 데이터의 수가 40만개 정도 되는 크기이기 대문에 여러번 나눠서 수집을 진행했습니다 len(df) 를 진행했던 부분의 인원 까지로 바꿔서 진행했습니다.

데이터 라벨링

데이터에 라벨이 적혀있지 않았기 대문에 직접 긍정, 부정,  쓸모없는 데이터 총 3개로 나누어서 직접 라벨링을 진행했고, 데이터가 너무 많고 쓸모 없는 데이터가 너무 많아서 먼저 의미없는 단어들을 선정해서 데이터에서 Drop 시키고 약 16,000개 정도의 데이터만 직접 라벨링을 했습니다.

728x90
반응형