์ถ์ฒ์์คํ ์ด๋ก ์ ํ์ตํ๊ณ , ๋ฆฌ๋๋ถ์ค ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ๊ฐ์ค์น ํ์ด๋ธ๋ฆฌ๋ ์ถ์ฒ์์คํ ์ ๊ตฌํํ์์ต๋๋ค.
์คํฐ๋
ํ์ต์๋ฃ
- SKPlanet Tacademy ์ถ์ฒ์์คํ ๋ถ์ ์ ๋ฌธํ๊ธฐ
- ํ์ด์ฌ ๋จธ์ ๋ฌ๋ ์๋ฒฝ๊ฐ์ด๋ ์ถ์ฒ์์คํ
- ๋งฅ์ฃผ ์ถ์ฒ์์คํ ๊ตฌํ
- ๊ทธ์ธ, ๊นํ ํ๋ก์ ํธ ๋ค์
๋งค์ฃผ ์ ๊ธฐ ์คํฐ๋ ๋ฐ ํ์ ์งํ
ใฐ๏ธ ๊ถ์ง์(CF ๋ชจ๋ธ๋ง, ํ๋ก ํธ์๋, GUI) redo@ewhain.net
ใฐ๏ธ ๋ฌธ์์ฐ(์ ์ฒ๋ฆฌ,ํต๊ณ๋ถ์, ๋ฐฑ์๋) moonsy0221@ewhain.net
ใฐ๏ธ ์ด์ง์(๋ชจ๋ธ ์ํคํ ์ณ ์ค๊ณ, ํ๋ก ํธ์๋) jiddoly@gmail.com
ใฐ๏ธ ์ด๋คํ(ํ์ฅ, CB ๋ชจ๋ธ๋ง, ๋ฐฑ์๋) dahyun3422@gmail.com
ใฐ๏ธ ์ตํ๊ฒฝ(์ ์ฒ๋ฆฌ, ํต๊ณ๋ถ์, ๋ฐฑ์๋) hakyung0007@gmail.com
ํ์์ฑ
- ์ถ์ฒ ์์คํ
์ ํตํด ๋ณด์ฆ๋ ์ฝํ
์ธ ๋ฅผ ๋ฐ๊ตดํ์ฌ IP ํ์ฅ
- ๋ฆฌ๋๋ถ์ค ๋ด, ๋ก๋งจ์ค ์ฅ๋ฅด ํค์๋ ๊ฒ์ ์ ๊ทน ํ์ฉ
- ๋ฆฌ๋๋ถ์ค ๋ด, ๊ธฐ์กด ์ ์ ์ ๊ฐ์ธ ๋ง์ถคํ ์ถ์ฒ ์์คํ
์ ๋ถ์ฌ
- ์ธ๊ธฐ์ ์์ฃผ์ ์ํ ์ถ์ฒ
- ํค์๋๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ์ฌ ๋ค์์ ๋ฒ์ฉ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ๋ง์ผํ
์งํ
๋ชฉ์
์ ์ ๋ง์ถคํ ๋ก๋งจ์ค ์น์์ค ์ถ์ฒ ์์คํ
๊ตฌํ
ํ๊ฒ
๊ธฐ์กด ๋ฆฌ๋๋ถ์ค ์น์์ค ์ฝํ
์ธ ๋ฅผ ์ด์ฉํด ๋ณธ ์ฌ์ฉ์
๋ด์ฉ
CB ์ CF ๋ฅผ ์กฐํฉํ ๊ฐ์ค์น Hybrid ์ถ์ฒ ์์คํ
๊ตฌํ
๊ธฐ๋ํจ๊ณผ
์น์์ค ์ฝํ
์ธ ์ฌ์ฉ์๋ค์ ์ทจํฅ, ์ํฉ์ ๋ง๋ ์ถ์ฒ์ ํตํ ๊ฐ์ธ ๋ง์ถคํ ์ฝํ
์ธ ํฅ์ ์ง์
๊ธฐ๋ณธ ์ ์ฒ๋ฆฌ, ๋๋ฝํ ๋ฐ์ดํฐ ํ์ ๋ฐ ์ ๊ฑฐ, user rating table ์์ฑ์ ์ํ ID ๊ฐ๊ณต
๋ณ์ ๊ฐ ๊ด๊ณ ๋ถ์์ ์ํ ํต๊ณ ๋ถ์ ๋ฐ ๋ณ์ ์ค์๋ ํ์ : ํ๊ท๋ถ์ (XGBoost, Randomforest, Linear Regression) , ID ๊ธฐ์ค 5์ง ๋ถ๋ฅ๋ถ์ (GradientBoosting, xgboost, lightgbm)
๋ณ์ ์ค์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก, ์ฌ์ฉ์๊ฐ ์ํ์ ๊ณ ๋ฅผ ๋ ์ค์ํ๊ฒ ๊ณ ๋ คํ๋ ์์๋ฅผ ์ ์ ํ์ฌ ๊ฐ์ค์น ๋ถ์ฌ ๊ธฐ์ค ๋ณ์๋ก ํ์ฉ
ํํ์ ๋ถ์๊ธฐ : mecab (์น์์ค ์ฉ์ด ์ฌ์ฉ์ ์ฌ์ ์ถ๊ฐ) , ์ฃผ์ธ๊ณต ์ด๋ฆ ๋ถ์ฉ์ด ์ ๊ฑฐ
ํ ์คํธ ๋ฒกํฐํ : countervectorizer, tf-idf, word2vec
ํ๊ท ์ฝ์ฌ์ธ ์ ์ฌ๋ ํ๋ ฌ ๋์ถ
๊ธฐ๋ค๋ฌด/๋ฌด๋ฃ๊ณต๊ฐ ํ์ฐจ์ , ํค์๋์ ๋ํ ๊ฐ์ค์น ๋ถ์ฌ
ID ์๋ณ์ ๊ทธ๋ฃนํ ์ฒ๋ฆฌ
Item based CF
Surprise module
์ข์์์,ํ๊ท ๋ณ์ ,์ ์ฒด๋ฆฌ๋ทฐ์,๊ตฌ๋งค์์ ์ ๋ํ ๊ฐ์ค์น ๋ถ์ฌ
โจ ํ๋ก์ ํธ ์์ฐ์์์ ๋๋ค. ํด๋ฆญํด์ฃผ์ธ์! โจ
๊ตฌํ ํํ : ์น ์ ํ๋ฆฌ ์ผ์ด์
Framework : Django, python
๋ฉ์ธ, ์ํ ํํฐ๋ง, ๊ฐ์ค์น Input, ์ํํ๊ฐ(์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ), ์ถ์ฒ ๊ฒฐ๊ณผ
GUI
ํ๊ณ
๐ ์ ์ ID ์๋ณํ๋ก ์ธํ CF ์ฑ๋ฅ ๊ฐ์ ๋ถ๊ฐ, ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ํ๋ณดํ๊ธฐ ์ด๋ ค์ ๋ชจ๋ธ ์ฑ๋ฅ์ ํ๊ฐํ ๊ฐ๊ด์ ์ธ ์งํ ์๋ฆฝ์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์
ํ์ฅ๊ฐ๋ฅ์ฑ
๐ ์ ์ ๋ก๋ถํฐ ์ถ์ฒ ๊ฒฐ๊ณผ์ ๋ง์กฑ๋๋ฅผ ๋ฐ๊ฑฐ๋ ๋ฆฌ๋๋ถ์ค ๋งํฌ๋ก ์ฐ๊ฒฐ๋์ด ์ ์ ๋ก๊ทธ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์์งํด, ์ถ์ฒ ๊ฒฐ๊ณผ์ ์ฑ๋ฅ๊ฐ์ ์งํ๋ก ํ์ฉํ์ฌ ๊ณ ๋ํ๋ ๋ชจ๋ธ๋ง ์งํ ๊ฐ๋ฅ
์์ ๋ฐ ๊ธฐ๋ํจ๊ณผ
๐ ์ฌ์ฉ์ ๊ฐ์ธ์ ์น์์ค ์๋น ์ฑํฅ์ ์ธ๋ถ์ ์ผ๋ก ํ์ ํด ๋ฆฌ๋๋ถ์ค์์ ์ด์ํ๋ ์น์์ค ํ๋ ์ด๋ฆฌ์คํธ, ํค์๋ ์ด๋ฒคํธ, ํ๋ ์ด์ ์ฑ๋ ์ด์ ๋ฑ์ ์ฐจ๋ณํ๋ ๋ง์ผํ ์ ๊ฐ๋ณ ์ฌ์ฉ์์๊ฒ ๋ง์ถคํํ์ฌ ์ ๊ณต ๊ฐ๋ฅ
๐ ์ํ๋ณ ํจ๊ป ๊ตฌ๋งค ๋ฐ ๋๋ฌ๋ณธ ์ํ ์ถ์ฒ์ ๋์ด์, ํน์ ์ ์ ๊ฐ ์๋นํ ์ํ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฌ์ฉ์ ๊ฐ์ธ ๋ง์ถคํ ์ถ์ฒ ์์คํ ๊ตฌํ ๊ฐ๋ฅ
โณ๏ธ vscode ๊นํ๋ธ ์ฐ๋ ๋ฐฉ๋ฒ
git clone [์ฃผ์]
python -m venv venv
(ctrl+shift+p)
select interpreter
์์ฑํ ๊ฐ์ํ๊ฒฝ ์ ํ ํ ํฐ๋ฏธ๋ ํ์ธ
python -m pip install django
- ์ ๋ฐ์์๋์ง ํ์ธ
python manage.py runserver
- vscode ์์์ ์์ค์ ์ด->์ 3๊ฐ->ํ
git pull
- vscode ์์์ ์ผ์ชฝ ์๋ ํ์ฌ ๋ธ๋์น ํด๋ฆญ -> ์ ๋ถ๊ธฐ ๋ง๋ค๊ธฐ
git branch [๋ธ๋์น ์ด๋ฆ]
: ๋ธ๋์น ์์ฑ
git checkout [๋ธ๋์น ์ด๋ฆ]
: ๋ธ๋์น ์ด๋
- vscode ์์์ ์์ค์ ์ด->์๋ก๊ณ ์นจ->์ปค๋ฐ(+์คํ
์ด์ง)->ํธ์ฌ
git add *
git commit -m "๋ฉ์์ง"
git push
- ์ธํฐ๋ท์ผ๋ก ๊นํ๋ธ ์ ์ํด์ pull request ์์ฑ
- ํ๋ฆฌํ ๋ณด๋ด๊ณ ์นดํก๋ณด๋ด๊ธฐ!
- ๋ด branch ์์ ์ฌํญ์ master ๋ธ๋์น์ ๋ฐ์
- ๊ทธ๋ฅ ์์ ํ๋ ๋ธ๋์น ์ญ์ ํ๊ณ master ๋ธ๋์น๋ก ์ด๋ํด์ pull ๋ฐ๊ธฐ