Skip to content

shashamalone/KoBERT_music_recomendation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

80 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์˜ค๋Š˜ ๋‚˜์˜ ๊ธฐ๋ถ„์— ๋งž๋Š” BGM์€? (Web Scraping & KoBERT)

KoBERT๋ชจ๋ธ ๊ธฐ๋ฐ˜์˜ Text(์˜ˆ: ์ผ๊ธฐ)์— ์–ด์šธ๋ฆฌ๋Š” ๋…ธ๋ž˜ ์ถ”์ฒœ ํ”„๋กœ์ ํŠธ

๋ชฉ์ฐจ

๐Ÿ† Project Introduction

  1. ์ฃผ์ œ: ์ผ๊ธฐ, ๋‹ค์ด์–ด๋ฆฌ์˜ ๊ธ€์„ ์ž…๋ ฅํ•˜๋ฉด ๊ฐ์ •์„ ๋ถ„์„ํ•ด ์–ด์šธ๋ฆฌ๋Š” ์Œ์•… ์ถ”์ฒœ
  2. ํŒ€์›: ๊น€์ด์ •(PM, Developer), ๊น€๋‚˜๋ฆฐ(Front-End, Developer), ๋ฐ•์ง€์šฐ(Developer), ์ตœํ˜•๊ทœ(Developer)
  3. ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 11/13(๊ธˆ) ~ 11/28(ํ™”)

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋„

์Šฌ๋ผ์ด๋“œ10 ์Šฌ๋ผ์ด๋“œ34

streamlit ์‹œ์—ฐ ํ™”๋ฉด

image

์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์ผ๊ธฐ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ReUmi ๋ชจ๋ธ์ด ์Œ์•…์„ ์ถ”์ฒœ

Research and Analysis

์‚ฌ๋žŒ๋“ค์€ ๊ฐ€์‚ฌ๋ฅผ ํ†ตํ•ด ๊ธฐ๋ถ„ ์ „ํ™˜์„ ํ•˜๋ฉฐ, ๋…ธ๋ž˜ ๊ฐ์ƒ ์‹œ์— ๊ฐ€์‚ฌ๋ฅผ ๊ณ ๋ คํ•œ๋‹ค. ๋˜ํ•œ SNS์—์„œ ์ž์‹ ์˜ ๊ฐ์ •์„ ๋‹ด์€ ๊ธ€๋“ค์„ ๊ณต์œ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ผ์ƒ์˜ ๊ฐ์ •๋“ค์— ์–ด์šธ๋ฆฌ๋Š” ๋…ธ๋ž˜๋ฅผ ์ถ”์ฒœํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ ์ž ReUmi๋ชจ๋ธ์„ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ธฐ์กด์˜ ๋…ธ๋ž˜ ํ”Œ๋žซํผ ๋ฉœ๋ก  , ์ง€๋‹ˆ , ์œ ํŠœ๋ธŒ ๋“ฑ ์—์„œ ์ถ”์ฒœํ•˜๋Š” ๋…ธ๋ž˜๋“ค์€ ์‚ฌ์šฉ์ž์˜ ์„ ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์— ์˜ํ•œ ์ถ”์ฒœ์ผ ๋ฟ , ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ๊ฐ์ •์— ์ดˆ์ ์„ ๋งž์ถ”๋Š” ํ˜•ํƒœ๋Š” ์•„๋‹ˆ์˜€๊ธฐ์— "๊ฐ์ •"์„ ์ฝ๋Š” ํ”„๋กœ์ ํŠธ 'Read Your Mind'๋ฅผ ์ฃผ์ œ๋กœ ์ •ํ•˜์˜€๋‹ค.

Crawling

์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”์ฒœํ•ด์ฃผ๊ธฐ ์œ„ํ•œ ์žฅ๋ฅด๋ณ„ ์Œ์•…์„ Melon์—์„œ Selenium์„ ํ™œ์šฉํ•ด ํฌ๋กค๋งํ•˜์˜€๋‹ค.

  • ์Šคํ…Œ๋””์…€๋Ÿฌ 50๊ฐœ, ์ธ๊ธฐ๊ณก 50๊ฐœ๋ฅผ ์žฅ๋ฅด๋ณ„๋กœ ํฌ๋กค๋ง
  • ๋…ธ๋ž˜์ œ๋ชฉ, ๊ฐ€์ˆ˜, ๊ฐ€์‚ฌ,์ด๋ฏธ์ง€, ์ข‹์•„์š” ์ปฌ๋Ÿผ์œผ๋กœ ์ •๋ฆฌ
  • ๊ฒฐ๊ณผ : Melon_song_data.csv

Melon_song_data๋ฅผ ์™„์„ฑ๋œ ReUmi Model์— ๋„ฃ์–ด ๊ฐ์ • categroy๊ฒฐ๊ณผ๋ฅผ ์ปฌ๋Ÿผ์œผ๋กœ ์ €์žฅํ–ˆ๋‹ค. ์ด๋Š” 1์ฐจ ํ•„ํ„ฐ๋ง์—์„œ ์‚ฌ์šฉ์ž์˜ ์ผ๊ธฐ์—์„œ ๋А๊ปด์ง€๋Š” ๊ฐ์ •๊ณผ ๋™์ผํ•œ ๋…ธ๋ž˜๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฝ‘๋Š”๋ฐ์— ์‚ฌ์šฉํ•˜์˜€๋‹ค.

  • ๊ฒฐ๊ณผ : total_melon_emotion.csv image

Modeling

KoBERT Model

KoBERT Model์€ SKT-Brain์—์„œ ๊ฐœ๋ฐœํ•œ ํ•œ๊ตญ์–ด ๊ธฐ๋ฐ˜ BERT ๋ชจ๋ธ.

Model ํ•™์Šต์„ ์œ„ํ•œ Data Sets ๊ตฌ์ถ•

KoBERT ๋ชจ๋ธ ํ•™์Šต์„ ์œ„ํ•œ AI HUB์˜ ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ

  1. ๊ฐ์„ฑ ๋Œ€ํ™” ๋ง๋ญ‰์น˜ 58271 ๊ฐœ
  2. ํ•œ๊ตญ์–ด ์—ฐ์†์„ฑ ๋Œ€ํ™” ๋ฐ์ดํ„ฐ ์…‹ 55630 ๊ฐœ
  3. ๊ฐ์ • ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•œ ์Œ์„ฑ ๋ฐ์ดํ„ฐ ์…‹ 43991 ๊ฐœ
  • ์ตœ์ข… ๋ฐ์ดํ„ฐ์…‹ ์ด ๊ฐœ์ˆ˜ 157,862๊ฐœ
  • ๊ฐ์ • Label : ํ–‰๋ณต, ์Šฌํ”” , ๋ถ„๋…ธ , ๊ณตํฌ , ํ˜์˜ค , ๋†€๋žŒ + ์ค‘๋ฆฝ(7๊ฐœ)
  • ๋ชจ๋ธ์— ๋„ฃ๊ธฐ ์œ„ํ•ด ์œ„์˜ 3๊ฐœ์˜ ํŒŒ์ผ์„ ๊ฐ์ • Label 7๊ฐœ์— ๋งž์ถฐ ์žฌ๋ผ๋ฒจ๋ง์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

ReUmi Model

ReUmi Model์€ ํ•œ๊ตญ์–ด ๋Œ€ํ™” ๋ฐ์ดํ„ฐ์…‹ ์•ฝ 15๋งŒ๊ฐœ๋ฅผ KoBERT๋ชจ๋ธ์— ํ•™์Šต์‹œ์ผœ ์™„์„ฑํ•œ ์ตœ์ข… ๋ชจ๋ธ ํ”„๋กœ์ ํŠธ๋ช…์ธ Read Your Mind๋ฅผ ๋”ฐ ๋งŒ๋“ค์—ˆ๋‹ค. แ„€แ…ณแ„…แ…ตแ†ท1

  • train acc : 0.9154 , val acc : 0.7957
  • ์ž…๋ ฅ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ๋ฒ„์ „์œผ๋กœ ๋ชจ๋ธ์— ํ…Œ์ŠคํŠธํ•ด๋ณธ ๊ฒฐ๊ณผ, ์ •ํ™•๋„๋Š” 0.87(Validation ๊ธฐ์ค€)๊นŒ์ง€ ๋‚˜์™”์œผ๋‚˜ ๊ฐ€์‚ฌ์— ๋Œ€ํ•œ ๊ฐ์ •์ธ์ง€๊ฐ€ ๊ฐ€์žฅ ๋†’์•˜๋˜ ๋ชจ๋ธ๋กœ ์„ ํƒํ•˜์˜€๋‹ค.
  • Setting parameters
    num_classes=7
    max_len = 64
    batch_size = 64
    warmup_ratio = 0.1
    num_epochs = 7
    max_grad_norm = 1
    log_interval = 200
    learning_rate = 3e-5

Code

< Crawling >

  1. melon_crawler.ipynb : ๋ฉœ๋ก  ํฌ๋กค๋ง์„ ์œ„ํ•œ ์ฝ”๋“œ

< Modeling >
2. แ„€แ…กแ†ทแ„Œแ…ฅแ†ผแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ_modeling_final.ipynb : ReUmi๋ชจ๋ธ ์™„์„ฑ์— ์‚ฌ์šฉ๋œ ์ฝ”๋“œ

< Fron-End >
3. MusicRecommend.py : ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ReUmi๋ชจ๋ธ๊ณผ ์ฝ”์‚ฌ์ธ์œ ์‚ฌ๋„์— ๊ธฐ๋ฐ˜ํ•ด ๋…ธ๋ž˜๋ฅผ ์ถ”์ฒœํ•˜๋Š” ์ฝ”๋“œ

  • predict(predict_sentence): ReUmi๋ชจ๋ธ ์‹คํ–‰ํ•˜๋Š” ์ฝ”๋“œ
    • ReUmi.pt
    • model_state_dict.pt
  • vectorize_text(text, vectorizer) :์ž…๋ ฅํ•œ ํ…์ŠคํŠธ๋ฅผ ๋ฒกํ„ฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜
  • find_similar_songs(user_text, songs_data, top_n=3) :์ž…๋ ฅํ•œ ํ…์ŠคํŠธ์˜ ๊ฐ์ •์„ ์ธ์‹ํ•˜๊ณ  ๋…ธ๋ž˜๋ฅผ ์ถ”์ฒœํ•˜๋Š” ํ•จ์ˆ˜
  1. app.py : streamlit์— ๊ตฌํ˜„ํ•  ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•œ ์ฝ”๋“œ

    • style.css
    • normalize.css
  2. streamlit_Colab.ipynb : Colab์—์„œ streamlit์„ ์‹คํ–‰ํ•ด ํ™”๋ฉด์„ ์‹œ์—ฐํ•˜๋Š” ์ฝ”๋“œ

About

[๐ŸŸฃPlaydata 33th] KoBERT๋ชจ๋ธ ๊ธฐ๋ฐ˜์˜ Text(์˜ˆ: ์ผ๊ธฐ) ์— ์–ด์šธ๋ฆฌ๋Š” ๋…ธ๋ž˜ ์ถ”์ฒœ ํ”„๋กœ์ ํŠธ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors