-
1๋ ๋ค์ ์์ฑํ๋ ๋ง์ด์ ๋ฝ์ฆ ์ธํด ์ ๋ฆฌ๐ Experiences 2023. 2. 20. 15:38
๐ ํ๋ก์ ํธ๋ช
[2021.08~11]
ํคํ ํฌ ๊ธฐ๋ฐ ๋ทฐํฐ ๊ฒ์โง์ถ์ฒ ์๋น์ค ๊ธ๋จ์์ด์ ํ์ฅํ ๋ฐ์ดํฐ์ ๋งคํ ์๋ํ ๋ชจ๋ธ๋ง ํ๋ก์ ํธ
๐ ํคํ ๊ทธ๋?
์ฌ์ง 1 “์ทจํฅํํฐ”์์ ๋ณผ ์ ์๋ฏ ์ ์ ๊ฐ ๋น์ฅ ๋ ์ฌ๋ฆฌ๊ธด ํ๋ค์ง๋ง ์ํ๋ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋๋ก ์ธ์ฌํ ์ทจํฅ์ ํฌํจํ ์ถ์ฒ ๊ฒ์์ด๋ฅผ ๋ฐ๋ก ํคํ ํฌ๋ผ ๋ถ๋ฆ ๋๋ค. ์ด ํคํ ํฌ๋ฅผ ์ถ์ถํ๋ ๊ธฐ์ ์ ํคํ ํฌ ๊ธฐ์ ์ด๋ผ ๋ช ๋ช ํ๋ค๋ฉด, ํคํ ํฌ ๊ธฐ์ ์ ์ ์ฉํ๊ธฐ ์ํด์๋ ์๋ ์ฌ์ง 1์ฒ๋ผ ํ๋ถํ ๋ฐ์ดํฐ์ ์ด ๋ฐํ์ด ๋์ด์ผ ํฉ๋๋ค.
์ฌ์ง 1. ์๋ฐ์ดํฐ์ ์์ ์ถ์ถํ ํคํ ํฌ (์์) ๐ ๋ชฉํ
์ ๊ฐ ์ํ ํ์ ๋ชฉํ๋ ์ฐจํ ํคํ ๊ทธ ์ถ์ถ ๊ธฐ์ ์ ํ์ฉํ๊ธฐ ์ํ ์ฌ๋ฌ ์์ค์์ ํ์ฅํ ๋ฆฌ๋ทฐ์ ์ ํ ๋ฐ์ดํฐ (๋ฌด๊ฒ, ์์, ํผ๋ถ ํ์ ๋ฑ)๋ฅผ ํฌํจํ ๋ฐ์ดํฐ์ ๊ตฌ์ถ์ด์์ต๋๋ค.
๋จ์ ์คํฌ๋ํ ์์ ์ ๋์ด ๊ธฐ์กด์๋ ๊ฐ ๋ฐ์ดํฐ ์์ค(์คํฌ๋ํ ํ๊น ์น์ฌ์ดํธ) ๋ณ๋ก ํ์ฅํ ์ผ์น ์ฌ๋ถ ํ๋จ์ด ์๊ธฐ ์์ ์ ์ํด ์ด๋ฃจ์ด์ก๋ค๋ฉด, ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ฐ์ดํฐ ์์ค ๋ณ๋ก ํ์ฅํ ์ด๋ฆ์ด ๊ธฐ์ฌ๋ ๋ฐฉ์๊ณผ ์ด๋ฏธ์ง๋ฅผ ๋ฐํ์ผ๋ก ํ ์คํธ์ ์ ์ฌ๋์ ์ด๋ฏธ์ง ์ ์ฌ๋ ์ ๋์ ๊ฐ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํด ๋์ผ ์ ํ์์ผ๋ก ํ๋จ๋๋ ํน์ ์์ฌ๋๋ ์ ํ ๊ฐ์ ์ค์ฌ ์๊ธฐ๋ก ๋งคํํ๋ ์์ ์ ์ต์ํ์ํค๋ ๊ฒ์ด ๋ชฉํ์์ต๋๋ค.
๐ ๋ด๋น ์ ๋ฌด
- ๋ฆฌ๋ทฐ ๋ฐ ์ ํ ๋ถ๊ฐ ์ค๋ช ์คํฌ๋ํ ์ฝ๋ ์์ฑ
- ํ ์คํธ ์ ์ฒ๋ฆฌ
- DB ์ ๋ก๋ ๋ฐ ์ ๋ฐ์ดํธ
๐ ํ์
๋ฐ์ดํฐ ๋ถ์ 1๋ช - ์ฃผ์๋
๋ฐ์ดํฐ ์คํฌ๋ํ, ์ ์ฒ๋ฆฌ 1๋ช - ์ธํด 1๋ช [๋ณธ์ธ]
์๊ธฐ ๋งคํ - ์ธํด 1๋ช
๐ ๋ด๋น ์ ๋ฌด ์์ธ + ๋ง์ฃผ์น ๋ฌธ์ ๋ฐ ํด๊ฒฐ๋ฐฉ๋ฒ
- ์คํฌ๋ํ ๊ณผ์
- ๋ถ์กฑํ ์์๊ณผ ์๋ฌ ์ฒ๋ฆฌ ๋ฌธ์
์น์ฌ์ดํธ๋ณ ํ์ฅํ ํฌ์คํ ์ด ์ ์ผ๋ฉด ๋ช๋ง ๊ฐ์ ๋ง์ผ๋ฉด 100๋ง ๊ฐ ๋จ์๊น์ง ๋ค์ํ๋๋ฐ์, ๊ฐ ์ ํ์ ๋ฆฌ๋ทฐ๋ฐ์ดํฐ๊น์ง ํฌํจํด์ผ ํ๋ค๊ณ ํ์์ ๋, ์ฃผ์ด์ง ์๊ฐ, ์คํฌ๋ํ์ ๊ตฌ๋ํ ์ ์๋ ์ปดํจํฐ ๊ฐ์ ๋ฑ์ ์์์ด ์ ํด์ง ํ์๋ผ์ธ ์์ ์๋ฃ ์ง๊ธฐ์ ๊ต์ฅํ ๋ถ์กฑํ์ต๋๋ค. ๊ทธ๋์ ๊ฐ ํ์์ด ๊ฐ ์ปดํจํฐ 3๋์ฉ ๊ทธ ์ธ์๋ Colab ํด๋ผ์ฐ๋ ์๋ฒ๋ฅผ 2๊ฐ ์ด์ ๋๋ฆฌ๋ฉฐ ๊ฐ๋ฅํ ๋ชจ๋ ์์์ ๋์ํ์ฌ ์คํฌ๋ํ์ ์งํํ์ต๋๋ค ํ์ง๋ง ์คํฌ๋ํ ๊ณผ์ ์์ ์์ธกํ ์ ์์๋ ๋ง์ ์์ธ๊ฐ ๋ฐ์ํ๊ณ ์ฒ๋ฆฌํด์ผ ํ๋ ์ฝ๋๊ฐ ์ถ๊ฐ๋๊ฒ ๋๋๋ฐ…
- ๋ฐ์ดํฐ ์ ๊ณต ์๋ฒ์ ์๋์ ์ธ ๋ชจ๋ฐ์ผ ๋ทฐ ๋ ๋๋ง → ๊ธฐ์กด ์คํฌ๋ํ ์ฝ๋ ๋ฌดํจํ
- ์คํฌ๋ํ ์๋ฒ ์ธ๋ถ ๋คํธ์ํฌ ๋ฌธ์ → ์ฃผ๋ง ๋์ ์ ์ค ๋ฐ์
- ๋ถ์กฑํ ์์๊ณผ ์๋ฌ ์ฒ๋ฆฌ ๋ฌธ์
-
- ์์งํ๋ ์ฝ๋์ ํ์์ฑ
์ด๋ ๊ฒ 10๋ ์ ๋์ ์ปดํจํฐ๊ฐ ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ์ํ์์ ์๋ฌ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๊ณต์ ํ๋ ์ํฉ์ ํ๋ก์ ํธ๋ฅผ ๊ต์ฅํ ์ง์ฒด์์ผฐ์ต๋๋ค. ์คํฌ๋ํ ์ฝ๋์ ๊ฒฝ์ฐ ๊ธฐ๋ฅ๋ณ๋ก ํจ์๋ฅผ ๋ถ๋ฆฌํ๊ฒ ๋๋ฉด ํ๋์ ๋ชฉํ ๋ฐ์ดํฐ๋ฅผ ์คํฌ๋ํํ๊ธฐ ์ํด ํจ์์ ๊ฐ์๊ฐ 10์ฌ ๊ฐ๊ฐ ๋์ด๊ฐ๊ฒ ๋๊ณ , ์ ํ๋ช , ์ ํ ๋งํฌ, ๋ฆฌ๋ทฐ, ์ด๋ฏธ์ง ๋งํฌ, ์์, ์ฉ๋ ๋ฑ ํ์ฅํ ์ ๋ณด๊น์ง ์คํฌ๋ํํ ๊ฒฝ์ฐ ๋งค์ฐ ๋ง์ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์ ์ฅํด์ผ ํ๋ ์ํฉ์์, ์ข ๋ ๊ณต์ ์ ์ ๋ฐ์ดํธ๊ฐ ์ฌ์ด ์์งํ๋ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด OOP๋ฅผ ์ค๋ฌด์์ ์ฒ์ ์ฌ์ฉํ๋ฉฐ ๋ณต์กํ๊ณ ๋ง์ ๋ก์ง์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ๋์ ํด๋์ค๋ก ๊ด๋ฆฌํ์์ต๋๋ค. ๋ํ์ ์ธ OOP์ ๋ค์ ํน์ฑ๋ค์ ๊ตฌํํ๋ฉฐ ์์งํ์ ์ค์์ฑ์ ํํ ๋๋ ์๊ฐ์ด์์ต๋๋ค.- ์์์ด ๊ฐ๋ฅํ [์์]
- ์ฌ๋ฌ ํํ๋ก ์ฌ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ [๋คํ์ฑ]
- ๋ณธ์ง์ ์ธ ๊ณตํต์ ํน์ฑ๋ง ๋ณด์ ์บก์๋ก ๋ง๋ [์ถ์ํ]
- ๋ณต์ก์ฑ์ ๋จ์ํํ [์บก์ํ] - DRY (Don’t repeat yourself! ๋ฌด์๋ฏธํ ๋ฐ๋ณต์ ๊ธ๊ธฐ์)
- ์์งํ๋ ์ฝ๋์ ํ์์ฑ
- ์ ์ฒ๋ฆฌ ๊ณผ์
- ๋ฐ์ดํฐ ์์ค ๋ณ๋ก ํ์ฅํ๋ช
์ด ๊ธฐ์ฌ๋ ๋ฐฉ์์ด ๋ฌ๋ผ ๋์ผ ์ ํ์ผ๋ก ํ๋จ์ด ์ด๋ ค์ด ๋ฌธ์
- ์ ํ ๊ธฐ์ ๋ชฉ์ (ํ๋งค์ฉ/์ค๋ช
์ฉ)์ ๋ฐ๋ผ ๋ค๋ฅธ ์ ํ ํ๊ธฐ ๋ฐฉ๋ฒ
2์ข , 1+1, 100ml, ์ฆ์ , ๋ฌด๋ฃ๋ฐฐ์ก์ฒ๋ผ ์ํ ํ์ดํ๊ณผ ๊ด๊ณ์์ด ๋ฐ๋ณต์ ์ผ๋ก ์ถํํ๋ ๋ถ์ฉ์ด ๋ฐ ํจํด๋ค์ ์ฒ๋ฆฌํ๋ ๋ถ์ฉ์ด ๋ฐ ํจํด ๋ฆฌ์คํธ ์์ฑ ํ ์ผ๊ด ์ ์ฒ๋ฆฌ.
- ์ ํ ๊ธฐ์ ๋ชฉ์ (ํ๋งค์ฉ/์ค๋ช
์ฉ)์ ๋ฐ๋ผ ๋ค๋ฅธ ์ ํ ํ๊ธฐ ๋ฐฉ๋ฒ
- ๋ฐ์ดํฐ ์์ค ๋ณ๋ก ํ์ฅํ๋ช
์ด ๊ธฐ์ฌ๋ ๋ฐฉ์์ด ๋ฌ๋ผ ๋์ผ ์ ํ์ผ๋ก ํ๋จ์ด ์ด๋ ค์ด ๋ฌธ์
์ ์ฒ๋ฆฌ ์ ํ ๊ฒฐ๊ณผ -
-
- ์๋ก ๋ค๋ฅธ ๋ธ๋๋์ ๋ค๋ฅธ ์ํ์ด์ง๋ง, ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์ํ์ด ๋์ผํ ์ํ์ผ๋ก ๋ถ๋ฅ๋๋ ๊ฒฝ์ฐ
๋น๊ต ๋์ ๊ตฐ์ ๋ธ๋๋ ๋จ์๋ก ์ค์ฌ, ๋งคํํ๋ ค๋ ์ ํ A์ ๋ธ๋๋์ ํํ์ฌ ์ ํ๋ง ์ ๊ฒํ๊ธฐ ์ํด ์๋์ ๊ฐ์ด ๋ธ๋๋ key ํ ์ด๋ธ ์์ฑ. ์ด์ ์์ ์๋์ ๊ฐ์ด ์์ค๋ง๋ค ๋ธ๋๋ ํ๊ธฐ ๋ฐฉ๋ฒ์ด ๋ค์ํ๊ธฐ์ ๊ฐ ์ผ์ด์ค ๋ณ๋ก ๋์ผํ ๋ธ๋๋์ธ์ง ํ๋จํ ์ ์๋ ํ ์คํธ ์ ์ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ฑํ์์ต๋๋ค.
- ์๋ก ๋ค๋ฅธ ๋ธ๋๋์ ๋ค๋ฅธ ์ํ์ด์ง๋ง, ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์ํ์ด ๋์ผํ ์ํ์ผ๋ก ๋ถ๋ฅ๋๋ ๊ฒฝ์ฐ
-
์์ค A ์์ค B ์ ํ๋ช ์ธ์ ๋ค๋ณดํ๋ฉ ์ธ์ ๋ค ์ด์ฒ ์ปค์ปค ์ด์ฒ ํค์ด์ปค์ปค ๋ฐ๋ทฐ ( ← ์ถ์ฝ๋ ๋ธ๋๋ ๋ค์) ๋ฐ์ค๋ทฐํฐ๋ฉ Nike ( ← ์๋ฌธํ๊ธฐ) ๋์ดํค - ํ๋งค์ฉ ์์ค์ ์ฃผ๋ก ๋ํ๋๋ ๅค ๋ : 1 ๋งค์นญ
์์ค A์ ๊ฒฝ์ฐ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ๊ฐ ์ํ์ ์ต์ ์ด ์ฌ๋ฌ ๊ฐ์ธ ์ํ + ์ธํธ ์ํ์ ๊ดํ ๊ฒฝ์ฐ. ๋งคํ๋ ์ํ ์ธ์ ๋ค๋ฅธ ์ํ์ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ๋ฌธ์ ๋ฐ์. ๋จ์ผ ์ํ ํน์ง์ ๋ํ๋ด๋ ์์ค B์ ์ํ๋ค ์ฌ๋ฌ ๊ฐ๋ฅผ ์์ค A์ ์ธํธ ์ํ์ ๋งคํ์์ผ ํด๊ฒฐ.
- ํ
์คํธ ๋ชจ๋ธ๋ง ๊ณผ์ (tf-idf, mecab)
์ฃผ์๋์ด ํ ์คํธ ๋ชจ๋ธ์ ๊ตฌํํด ๋ณผ ์ ์๋ ๊ธฐํ๋ฅผ ์ฃผ์ ์ ํ ์คํธ tf-idf์ mecab์ ํ์ฉํ ๋ชจ๋ธ๋ง์ ์๋ํด ๋ณด์์ต๋๋ค.- tf-idf์ ๋จ์ํ ํ ํฐํ
์ฒซ ์๋๋ก tf-idf๋ก ๋จ์ํ ํ ์คํธ ์ ์ฌ๋๋ง ๋น๊ตํ์๋ค๊ฐ ๋จ์ํ ๋์ด์ฐ๊ธฐ์ ์ํ ํ ํฌ๋์ด์ฆ๊ฐ ์งํ๋์ด (์ฌ ํฌ๋ฆผ, ์ ํฌ๋ฆผ, ์ฌ ์คํฑ, ์ฌ์คํฑ) ← ์ด๋ฌํ ๊ฒฝ์ฐ ์ ํจํ ์๋ฏธ ๋จ์๋ก ํ ํฐํ๊ฐ ์งํ๋์ง ๋ชปํ์ต๋๋ค. ์ปค์คํ ํ์ฅํ ์ฌ์ ์ ๋ง๋ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ง ์์๊น?๋ผ๋ ์๊ฐํด Mecab ๋ชจ๋ธ์ ๋์ ํด ๋ณด์์ต๋๋ค. - Mecab์ ์ฌ์ ์ ์ ๋จ์ด ์ด์ธ์ ํ ํฐํ ๋ฌธ์
์ฐธ์กฐํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ฌ ๋ด/์ธ์ ์์ด์ ์ง์ ๋ง๋ค์์ด์ผ ํ๋๋ฐ์, mecab๋ชจ๋ธ์์ ์ปค์คํ ํ์ฅํ ์ฌ์ ์ ๋ง๋ค์ด (์๋ฉ์ ผ, ์คํจ, ์ ํฌ๋ฆผ) ๋จ์ด๋ค์ด ํ๋์ ํ ํฐ์ผ๋ก ์ธ์๋๋๋ก ๋ชจ๋ธ๋ง์ ํด๋ณด์์ต๋๋ค. ์๋ฌธ ํ์ฅํ ์ฌ์ ์ด ์์ด ํ๊ตญ์ด ํ๊ธฐ๋ฒ์ผ๋ก ๋ฒ์ญํ ํ ๊ทธ๊ฑธ ์ฌ์ ์ผ๋ก ์ฌ์ฉํ์ต๋๋ค. ํ์ง๋ง… ์๋ฌธ์ ํ๊ตญ์ด๋ก ํ๊ธฐ ์ ์๋ก ๋ค๋ฅธ ์์, ์์์์ผ๋ก (์ ํฌ๋ฆผ, ์ฌํฌ๋ฆผ, ์ ๋ฉ์ ผ, ์๋ฉ์ ผ) ํ๊ธฐ๋ ์ ์๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ ํ ํฐ ์ถ์ถ์ด ์ ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ๊ฒฐ๊ตญ์๋ ์ฃผ์๋์ด ์๋ก ๋ง๋์ ๋ชจ๋ธ์ด ์ ํ๋์์ต๋๋ค ๐
- tf-idf์ ๋จ์ํ ํ ํฐํ
- ๋๋น ๊ด๋ฆฌ
DBMS๋ก Sequel pro๋ฅผ ์ฌ์ฉํ์๊ณ ๋ฐ์ดํฐ ์ ๋ก๋ ๋ฐ ์ ๋ฐ์ดํธ๋ pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์์ต๋๋ค.
๐ ์ฒซ ์ค๋ฌด ๊ฒฝํ์ ํ๋ฉฐ ๋ฐฐ์ด ์ ๋ค
- ํ์คํ ์ปค๋ฎค๋์ผ์ด์
์ ์ค์์ฑ
๋๊ธฐ์ ์ผ๋ก ์งํ๋๋ ํํ๋ก์ ํธ์ ๊ฒฝ์ฐ์๋ ํ ๋จ๊ณ์์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๊ทธ ๋ค ๋จ๊ณ๋ ์ฐ์์ ์ผ๋ก ์ํฅ์ ์ฃผ๊ฒ ๋ฉ๋๋ค.
“์๊ตฌ ์ฌํญ์ ํ์คํ ํ์ ํ๊ณ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒ๋ณด๋ค ์๋ฒฝํ๊ฒ ํ๊ณ ๋์ด๊ฐ ๊ฒ”์ ๋ฐฐ์ ์ต๋๋ค. - ๋ฅ๋์ ์ธ ๋ฌธ์ ํด๊ฒฐ
๋ชจ๋๊ฐ ๋ฐ์ ํ ํ๋ก์ ํธ์์ ๋ชจ๋ ์ ํ์ ๋ํ ์๊ฒฌ์ ๋ฌผ์ด ์ฑ ์์ ๋ถ์ฐ์ํค๋ ๊ฒ์ ์ ์ฒด์ ์ธ ์ ๋ฌด์ ํจ์จ์ฑ์ ๋ฎ์ถค์ ๋ฐฐ์ ์ต๋๋ค. ์ค์ค๋ก ์ ํํ๊ณ ๊ฒฐ๊ณผ์ ๋ํด ์ฑ ์์ง๋๋ค.
์ด๋ ๊ฒ ์ธํด ๊ธฐ๊ฐ์ ํ๊ณ ๋ฅผ ํด๋ณด์ง ์์ ์ฑ 1๋ ์ฌ๊ฐ ์ง๋ฌ๊ณ , ์๋ฏธ ์๋ ๊ฒฝํ์ ๋ฌธ์ํํ๋ ๊ฒ์ ์ค์์ฑ์ ๋๋ผ๋ฉฐ ์์ฑํด ๋ณด์์ต๋๋ค.
์ฝ๋ฉ ์ค๋ ฅ ์ด์ธ์๋ ํ์คํ ์ปค๋ฎค๋์ผ์ด์ , ๋๊ธฐ, ์ ๋ฌด๋ฅผ ๋ค๋ฃจ๋ ์์ธ๋ฅผ ๋ฐฐ์ธ ์ ์์๋ ๊ท์คํ ๊ฒฝํ์ด์์ต๋๋ค.
์ด ์ฝ๋ฉํธ๋ฅผ ๋ง์ง๋ง์ผ๋ก ๊ธด ๊ธ์ ๋ง์น๊ฒ ์ต๋๋ค. ์ฝ์ด์ฃผ์ ๊ฐ์ฌํฉ๋๋ค.
'๐ Experiences' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ ์ธํด ํ๊ณ ๋ก (3) 2023.09.10 [Information Systems] ์ ๋ณด์์คํ ํ ๊ฒฐ๊ณผ๋ฌผ (0) 2023.02.20