Emotions and Music 3
2022. 6. 28. 22:37ㆍProject/감정분석과 노래 추천
728x90
반응형
회의록
▶ 데이터 수집 관련
■ 데이터 추가 수집
- 노래가사로는 데이터가 부족하다고 판단 감정이 풍부한 문학작품을 이용하면 어떨까?
- 브런치는 너무 감성적이지 않을까...? 라고 판단하고 추후 데이터 부족하다고 판단하면 추가 수집 보류!
- 문학작품을 Train Data로 이용하고 노래가사를 Test Data로 이용
- 문학작품은 너무 길기 때문에 한 문장씩 받아오기
▶ Model 관련
■ KoBERT
■ Word2Vec 과 LSTM 유사도 분석 : 라벨링
Project Framework
▶ Project 흐름도 초안
▶ Model Pipeline 초안
- 어떻게 입력된 상황을 노래가사와 매칭을 시킬 수 있을까?
- 모델 2개를 연결해 대분류( 큰 감정들 ) -> 소분류 ( 세부 감정 ) 느낌으로 두번 분류를 진행?
- LSTM : 2개 모델을 각각 만들기 ( 상황 - 노래 )
- 코사인유사도 사용
코드
- 문학광장에서 수필 데이터 크롤링
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
import pymysql
import warnings # 경고창 무시
import time
import re
warnings.filterwarnings('ignore')
conn = pymysql.connect(user = '',
passwd = '',
port = 0000,
db = 'Writing',
charset = 'utf8')
cur = conn.cursor()
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.implicitly_wait(3)
driver.maximize_window()
driver.implicitly_wait(3)
st = []
for i in range(42, 300):
url = f'https://teen.munjang.or.kr/archives/category/write/life/page/{i}'
driver.implicitly_wait(3)
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
temp = [i['id'] for i in soup.select('#main > article[id]')]
for t in temp:
if "추천해요" in [i.text for i in soup.select(f'#{t} > div > div.post_content > div.post_title > a')][0]:
continue
if [i.text for i in soup.select(f'#{t} > div > div.post_content > div.post_title > p')] == [] and [i.text for i in soup.select(f'#{t} > div > div.post_content > div.post_title > a > span')] != ['[공지] ']:
driver.find_element_by_xpath(f'//*[@id="{t}"]/div/div[2]/div[1]/a').click()
driver.implicitly_wait(30)
sentence = driver.find_element_by_class_name("entry-content").text.split("\n")
time.sleep(5)
for s in sentence:
s = s.strip()
s = re.sub(r'[^가-힣A-Za-z0-9\.\,\!\?\s]', '', s)
s = re.sub(' +', " ", s)
if len(s) <= 25:
continue
cur.execute('INSERT IGNORE INTO essay (sentences) VALUES (%s)', s)
conn.commit()
else: continue
driver.back()
print(f'{i}페이지 끝')
driver.quit()
참고
728x90
반응형
'Project > 감정분석과 노래 추천' 카테고리의 다른 글
Emotions and Music 6 (0) | 2022.07.03 |
---|---|
Emotions and Music 5 (0) | 2022.07.03 |
Emotions and Music 4 (0) | 2022.07.03 |
Emotions and Music 2 (0) | 2022.06.28 |
Emotions and Music 1 (0) | 2022.06.28 |