์๋ฉ ํ๋ก์ ํธ ๋ณด๋ฌ๊ฐ๊ธฐ
-
๋งก์ ๊ธฐ๋ฅ
์์ธํ์ด์ง ๋ด๋ถ์์ ์ฒจ๋ถ๋์ด์๋ ํ์ผ๊ณผ ์ ์ฌํ ํ์ผ์ด ์๋ ์์ 4๊ฐ์ ๊ฒ์๊ธ์ ์ถ์ฒํด์ฃผ๋ ์์คํ ์ ๋๋ค.
- ํ๋ฉด ์๊ฐ
- ๋ฐ์ดํฐ ์์ง (Data Crowling - BeautifulSoup)
- ์ ์ฌ๋ ๋ถ์ (Cosine similarity)
- Django ์ ์ฉ
- ์๋ฒ ๋ฐฐํฌ ๋ฐ ํ๋ฉด ์์ฐ
- Trouble shooting
- ๋๋ ์
- ์๋ฃ ๊ณต์ ์๋น์ค ํน์ฑ ์, ๊ฒ์๊ธ ์์ธํ์ด์ง์๋ ํ์ผ์ด ์ฒจ๋ถ๋์ด ์์ต๋๋ค.
- ํด๋น ํ์ผ์ ๊ธ์ ์ฝ์ด์จ ๋ค, ์ ์ฌํ ๊ฒ์๊ธ์ ์ถ์ฒํด์ฃผ๋ ์์คํ ์ ๊ตฌํํ์ต๋๋ค.
-
์์งํด์ผํ ๋ฐ์ดํฐ
๋ด์ฉ(ํ ์คํธ) ๋ถ์์ด ์ฃผ ์ด๊ธฐ ๋๋ฌธ์, ๋ด์ฉ์ด ๋ง์ ๋ค์ด๋ฒ ๋ด์ค๋ฅผ ํ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์์ต๋๋ค.
-
BeautifulSoup๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์ง, pycharm์์ ๋ฐ์ดํฐ๋ฅผ csvํ์ผ๋ก ๋ด๋ณด๋์ต๋๋ค.
-
pycharm์์ ํฌ๋กค๋งํ ๋ฐ์ดํฐ csv ํ์ผ์ jupyter notebook์์ ๋ถ๋ฌ์์ ํ์ธํ์์ต๋๋ค.
-
๋ด์ฉ๋ง์ ๊ฐ์ ธ์จ ๋ค, ๋ฒกํฐํ๋ฅผ ์ํด sklearn ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ CountVectorizer์ fit_transform์ ์งํํ์์ต๋๋ค.
CountVetorizer: ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ซ์ ๋ฒกํฐ๋ก ๋ณํํ๋ ๊ธฐ๋ฒ -
๋ฒกํฐํ๋ ๊ฒฐ๊ณผ๋ฅผ sklearn ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ cosine_similarity์ ๋ฃ์ด ์ ์ฌ๋๋ฅผ ๋ํ๋์ต๋๋ค.
-
์์ 5๊ฐ์ ์ ์ฌ๋๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ๋ฆฌ์คํธ์ argsort ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ํ๋์ต๋๋ค.
-
์ผ๋ จ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ ๋๋ต 1000๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ์๊ณ , concat์ ์ด์ฉํด ํ๋์ ๋ฐ์ดํฐ ์ธํธ๋ก ํฉ์ณ์ csv ํ์ผ๋ก ๋ด๋ณด๋ด๋ ๊ฒ์ผ๋ก ๋ฐ์ดํฐ ์์ง์ ๋ง์ณค์ต๋๋ค.
- ์๋ฃ ๊ณต์ ์๋น์ค์๋ 'pdf, hwp, docx, xlsx' ์ด 4๊ฐ์ ํ์ฅ์์ ํ์ผ์ด ๋ค์ด๊ฐ ์ ์์ต๋๋ค. ์ด์ ํ์ฅ์์ ๋ฐ๋ผ์ ํ์ผ์ ํ ์คํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์ฐ์ ์ ์ผ๋ก ์งํํ์์ต๋๋ค.
-
์ ๋ก๋ ๋๋ ํ์ผ์ด ๊ฐ๊ฐ ๋ค๋ฅธ ํ์ฅ์๋ฅผ ์ง๋๊ณ ์์ผ๋ฉฐ, ํ์ฅ์ ๋ง๋ค ํ ์คํธ๋ฅผ ์ฝ์ด์ค๋ ๋ฐฉ์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ ํ์ฅ์ ๋ณ ํจ์๋ฅผ ์ ์ธํ์์ต๋๋ค.
-
hwp(python-hwp), docx(python-docx)์ ํ์ด์ฌ์ ๋ด์ฅ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ, xlsx์ pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ํ ์คํธ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค.
-
pdf ํ์ผ์ ๊ฒฝ์ฐ, PyMuPDF๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ํ์ผ์ ์ฒซ ๋ฒ์งธ ํ์ด์ง๋ฅผ ์ด๋ฏธ์ง(png)๋ก ๋ณํํ๊ณ OCR(๋ค์ด๋ฒ ํด๋ก๋ฐ)์ ์ด์ฉํ์ฌ ํด๋น ์ด๋ฏธ์ง์ ํ ์คํธ๋ฅผ ์ฝ์ด์์ต๋๋ค.
-
์ฝ์ด์จ ํ ์คํธ๋ค์ ShareFileContent๋ผ๋ ์ ์ฌ๋ ํ ์ด๋ธ์ Insert๋๊ฒ ๊ตฌํํ์์ต๋๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ๊ฒ์๊ธ์ ์์ฑํ๋ฉด ์๋์ผ๋ก ํ์ผ์ ํ ์คํธ๋ง ์ถ์ถ๋ฉ๋๋ค.
-
์ฌ์ฉ์๊ฐ ์์ธ ํ์ด์ง๋ก ์ด๋ํ ๋, ์ ์ฌ๋ ํ ์ด๋ธ ์ ์ฒด๋ฅผ ๋ถ๋ฌ์์ ํ์ฌ ๊ฒ์๋ฌผ ๋ด์ ํ์ผ๊ณผ์ ์ ์ฌ๋ ๋ถ์์ ์งํํฉ๋๋ค.
-
์ ์ฌ๋ ๋ถ์์ด ์๋ฃ ๋ ํ, ์ ์ฌํ ๊ฒ์๋ฌผ ์์ 4๊ฐ๊ฐ ๋ฆฌ์คํธ ํํ๋ก ๋ฆฌํด๋๋ฉด ํด๋น ๊ฒ์๊ธ๋ค์ด ํ๋ฉด์ ๋ณด์ฌ์ง๊ฒ๋ฉ๋๋ค.
- ๊ฐ์ธ ๋ก์ปฌ์์ ์์ ํ AI ์๋น์ค๊ฐ ์ ์๋๋๋ ๊ฒ์ ํ์ธํ๊ณ ubuntu์ aws๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ์ ๋ฐฐํฌํ์์ต๋๋ค.
-
๋ก์ปฌ์์ ํฌ๋กค๋งํ ๋ฐ์ดํฐ๋ฅผ DB์ ์ถ๊ฐํ ํ ํ์ผ๋ค์ ํ์ธํด ๋ณด์์ ๋, ํ์ผ์ด ์ด๋ฆฌ์ง ์๋ ํ์์ด ๋ฐ์ํ์ต๋๋ค.
ํ์ฅ์๋ณ๋ก ํ ์คํธ๋ฅผ ์ฝ์ด์ค๋ ๊ฒ์ด ์ผ๋ฐ ํ ์คํธ ํ์ผ๊ณผ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ถ๊ฐํด์ผํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
๊ฐ ํ์ฅ์๋ง๋ค ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒ์ ํจ์๋ก ๋ง๋ค์ด ์ฌ์ฉํ์ฌ ํด๊ฒฐํ์์ต๋๋ค. -
์ด๋ฏธ์ง๋ก ๋ณํ๋ pdf๋ฅผ ํ ์คํธ๋ก ๊ฐ์ ธ์ค๋ ๊ณผ์ ์์ ํด๋น ์ด๋ฏธ์ง ํ์ผ์ ๊ฒฝ๋ก์ ํ์ผ์ด ์๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด๋ฏธ์ง๋ก ์ ์ฅํ ๋์ ๊ฒฝ๋ก ์ค์ ์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
settings์ ์ค์ ๋์ด์๋ MEDIA_ROOT ๊ฒฝ๋ก๋ฅผ ์ด์ฉํ์ฌ ํด๋น ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ์ ์ฝ์ด์ฌ ์ ์์์ต๋๋ค. -
๊ธฐํ ๋ณ๊ฒฝ (์์ธ ํ์ด์ง๋ก ํ์ด์ง ์ด๋ ์์ ๋ก๋ฉ ์๊ฐ์ด ์ ์ ๊ธธ์ด์ง๋ ํ์์ด ๋ฐ์ํ์ต๋๋ค.)
์ด๋ฐ ๊ธฐํ: ์์ธ ํ์ด์ง๋ก ์ด๋ํ ๋ ๋ชจ๋ ๊ฒ์๊ธ์ ํ์ผ์ ๋ถ๋ฌ์์ ๊ฐ ํ์ฅ์ ๋ณ๋ก ํ ์คํธ๋ฅผ ์ฝ์ด์จ ๋ค, ํ์ฌ ๊ฒ์๋ฌผ๊ณผ์ ์ ์ฌ๋๋ฅผ ๋ถ์ํ๊ณ ์ ํ์์ต๋๋ค.
ํ์ผ์ ์ด๊ณ ํ ์คํธ๋ฅผ ์ฝ์ด์ค๋ ๊ณผ์ ํนํ, pdf๋ฅผ ์ด๋ฏธ์ง๋ก ๋ณํํ๊ณ ์ด๋ฅผ ํ ์คํธ๋ก ์ฝ์ด์ค๋ ๊ณผ์ ์ด ์ค๋๊ฑธ๋ ค์ ๋ผ๋ ๊ฒ์ ์๊ฒ๋์์ต๋๋ค.
๋ฐ๋ผ์ ํ ์คํธ๋ก ์ฝ์ด์ค๋ ๊ณผ์ ์ ๊ฐ ๊ฒ์๊ธ์ด ์ ์ฅ๋ ๋๋ง๋ค ์งํ๋๋๋ก ๊ตฌํํ์ฌ ์ด๋ฅผ ์กฐ๊ธ์ด๋๋ง ํด๊ฒฐํ ์ ์์์ต๋๋ค.
- ์ ์ฌ๋ ๋ถ์์ ํตํ AI ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ cosine_similarity๋ฅผ ํตํ ์ ์ฌ๋ ๋ถ์ ๋ฐฉ๋ฒ๊ณผ ์ด๋ค์ Django์ ์ ์ฉํ๋ ๊ฒ์ ๋ํด ๋ง์ด ๋ฐฐ์ธ ์ ์์์ต๋๋ค.
- ๋ง์ฐํ๊ฒ ๊ฒ์๋ฌผ์ ์๊ฐ๊ธ๊ณผ ์ ๋ชฉ์ผ๋ก ์ ์ฌ๋ ๋ถ์์ ์งํํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ์์ผ๋,
ํ์๋ฅผ ํตํด ํ์ผ์ ํ ์คํธ๋ฅผ ๊ฐ์ ธ์ ์ ์ฌ๋๋ฅผ ๋ถ์ํ๋ ๊ฒ์ด ์กฐ๊ธ ๋ '์๋ฃ ๊ณต์ ' ๋ผ๋ ์๋น์ค์ ์๋ง์ ๋ฐฉํฅ์ด๋ผ๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ฌ ํด๋น ๋ฐฉ๋ฒ์ผ๋ก ์งํํ๊ฒ ๋์์ต๋๋ค.
๐ ์ด๋ฌํ ๊ณผ์ ์์ ๋ ๋ค์ํ ๊ด์ ์ผ๋ก ์๋น์ค๋ฅผ ์๊ฐํ๋ฉด ์ฐจ๋ณํ๋ ํ๋ซํผ์ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ๋์๊ณ ์๊ฐ์ ๋ ๋ํ ์ ์๋ ์ข์ ๊ธฐํ๊ฐ ๋์์ต๋๋ค. - ์ด๋ ค์ด ์ ๋ ๋ง์ด ์์๊ณ ์์ง ์๋ฒ๊ฐ ์กฐ๊ธ ๋ถ์์ ํ ๋ถ๋ถ์ด ์์ง๋ง, ์์ฑํด๋ธ ๋งํผ ์์ผ๋ก๋ ๋ ๋ค์ํ AI ์๋น์ค๋ฅผ ๋ง๋ค์ด ๋ผ ์ ์์ ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค.














