Skip to content

๐Ÿ™Delight ๋ฐฅ์”จ(์Œ์‹ ์ถ”์ฒœ ์„œ๋น„์Šค) ๋จธ์‹ ๋Ÿฌ๋‹ ์„œ๋ฒ„(Flask)์ž…๋‹ˆ๋‹ค.๐Ÿ™

Notifications You must be signed in to change notification settings

Team-Delight/Delight-MachineLearning-Application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

41 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


๐Ÿšฉ ํ–ฅํ•ด99 ์ตœ์ข… ํ”„๋กœ์ ํŠธ Delight


๐Ÿ‘†๐Ÿ‘† ํด๋ฆญ ์‹œ ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐฅ์”จ๋Š” ํ•œ๋ผ ์„ ํƒ์ด ์–ด๋ ค์šด ๊ณ ๊ฐ๋“ค ์œ„ํ•˜์—ฌ
    "ํ•œ๋ผ ์ถ”์ฒœ ๊ธฐ๋Šฅ์„ ํ†ตํ•œ ๋งŒ์กฑ์Šค๋Ÿฌ์šด ์‹์‚ฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ฆ๊ฑฐ์›€๊ณผ ๊ธฐ์จ์„ ๋“œ๋ฆฌ๊ณ ์ž ๊ฐœ๋ฐœ ๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค."


๐Ÿšฉ Delight ๋จธ์‹ ๋Ÿฌ๋‹ ์„œ๋ฒ„


๐Ÿ”น [์ธ์Šคํƒ€๊ทธ๋žจ DB ๊ตฌ์ถ•]
  • ์Œ์‹์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ณด๋Š”
    ์ธ์Šคํƒ€๊ทธ๋žจ ํฌ๋กค๋ง์„ ํ†ตํ•ด ์–ป์€ ์ธ์Šคํƒ€๊ทธ๋žจDB์™€ ์Œ์‹์ด ๊ฐ€์ง€๋Š” ๊ณ ์œ ์˜ ํŠน์ง•์ธ, ์žฌ๋ฃŒDB๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.


  • ์ธ์Šคํƒ€๊ทธ๋žจ DB ๊ตฌ์ถ•์„ ์œ„ํ•ด
    Selenuim ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ 1๊ฐœ ์Œ์‹๋‹น 200๊ฐœ์˜ ์ธ์Šคํƒ€๊ทธ๋žจ ๊ฒŒ์‹œ๊ธ€์„ ํฌ๋กค๋งํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    ย ย ย ย ย ๐Ÿ‘‰ 1๊ฐœ ์Œ์‹์ด ์ธ์Šคํƒ€๊ทธ๋žจDB๋กœ ๊ตฌ์ถ•๋˜๋Š” ์ „๋ฐ˜์ ์ธ ๊ณผ์ • ๐Ÿ“



๐Ÿ”น [๋ชจ๋ธ๋ง]
  • ์ถ”์ฒœ ๋ชจ๋ธ์€ ๋น„์ง€๋„ํ•™์Šต(Unsupervised learning) ์ค‘ ํ•˜๋‚˜์ธ
    ํ˜‘์—…ํ•„ํ„ฐ๋ง(Collaborative Filtering, CF) ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.


  • ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜ ํ˜‘์—…ํ•„ํ„ฐ๋ง(User Based CF, UBCF)์ด ์•„๋‹Œ
    ์ปจํ…์ธ  ๊ธฐ๋ฐ˜ ํ˜‘์—…ํ•„ํ„ฐ๋ง(Contents Based CF, CBCF)์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    ย ย ย ย ย ๐Ÿ‘‰ UBCF๊ฐ€ ์•„๋‹Œ CBCF๋ฅผ ์„ ์ •ํ•œ ์ด์œ  ๐Ÿ“


  • ์Œ์‹์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„ํ•˜๊ณ , ๊ฐ ์Œ์‹๋“ค๊ฐ„์˜ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๋ฅผ ๊ตฌํ•ด
    ๊ฐ€์žฅ ์œ ์‚ฌ๋„๊ฐ€ ๋†’์€ ์Œ์‹์„ 3์ข…์„ ์ถ”์ฒœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


  • ์ถ”์ฒœ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ๊ฐœ์„ ์„ ์œ„ํ•ด ๋ณ„๋„์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    ๊ฐ€์ค‘์น˜ ์ ์šฉ ๊ฒฐ๊ณผ ์ „์ฒด 130์ข… ์Œ์‹ ์ค‘ 105์ข…์˜ ์Œ์‹์ด ์ถ”์ฒœ๋˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.
    (๊ฐ€์ค‘์น˜ ์ ์šฉ ์ „: ์ „์ฒด 130์ข… ์Œ์‹ ์ค‘ 89์ข…์˜ ์Œ์‹ ์ถ”์ฒœ ์ด๋ฃจ์–ด ์ง)



๐Ÿ”น [Flask ์„œ๋ฒ„์™€ ์„ฑ๋Šฅ ๊ฐœ์„ ]
  • Java์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์œ ์ €๊ฐ€ ์„ ํƒํ•œ ์Œ์‹ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
    ๋ฐ›์€ ์Œ์‹ ๋ฆฌ์ŠคํŠธ๋ฅผ Input์œผ๋กœํ•˜๋ฉฐ, CBCF์˜ ๊ฒฐ๊ณผ์ธ ์ถ”์ฒœํ•  ์Œ์‹ 3์ข…๋ฅ˜๋ฅผ Java ์„œ๋ฒ„๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.(POST)


  • ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€๋น„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฏธ๋“ค์›จ์–ด์ธ gunicorn์„ ์ ์šฉํ•˜์˜€๊ณ  ๋กœ๋“œ๋ฐธ๋ฆฐ์‹ฑ์„ ์œ„ํ•ด ์•ž๋‹จ์— Nginx๋ฅผ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    ย ย ย ย ย ๐Ÿ‘‰ ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ๋กœ ์•Œ์•„๋ณด๋Š” Nginx์™€ gunicorn ์ ์šฉ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ์ฐจ์ด ๐Ÿ“



๐Ÿšฉ Requirements


  • python 3.7.10
  • scikit-learn 0.24.2
  • flask 2.0.1
  • flask-cors 3.0.10
  • pandas 1.3.0
  • konlpy 0.5.2
  • selenium 3.141.0


๐Ÿšฉ Git - flow Branch ์ „๋žต์„ ์ ์šฉ

master  : ํ…Œ์ŠคํŠธ ์„œ๋ฒ„์—์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ๋๋‚˜๊ณ  ์šด์˜์„œ๋ฒ„๋กœ ๋ฐฐํฌ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋žœ์น˜
develop : ๋‹ค์Œ ๋ฒ„์ „์„ ์ถœ์‹œ์ „ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋ธŒ๋žœ์น˜ 
feature : ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
release : ์ด๋ฒˆ ์ถœ์‹œ ๋ฒ„์ „์„ ์ค€๋น„ํ•˜๋Š” ๋ธŒ๋žœ์น˜
hotfix  : ์šด์˜์ค‘์ธ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ • ํ•˜๋Š” ๋ธŒ๋žœ์น˜