4์ฃผ์ฐจ ์์์ผ
- NLP ๊ธฐ์ด
- Word Embedding
์์ฐ์ด ๋ฌธ์ฅ์ ์ดํดํ๋ NLU(Natural Language Understanding), ์์ฐ์ด ๋ฌธ์ฅ์ ์์ฑํ๋ NLG(Natural Language Generation)์ ํฉ์ณ์ NLP(Natural Language Processing)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์์ฐ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ๋ฌธ์ฅ์ ์์น์ ์ผ๋ก ๋ฐ๊ฟ์ ํํํด์ผ ํ๋ค. ์์ฐ์ด๋ฅผ ์์น๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ์-ํซ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ณ ์ ์ ์ธ ๋ฐฉ๋ฒ๊ณผ word embedding ๋ฐฉ์์ด ์๋ค.
ex)
"I have two or three apples" -> {"I", "have", "two", "or", "three", "apples"}sqrt(2)
์ด๋ค.ex)
I
: [1 0 0 0 0 0]have
: [0 1 0 0 0 0]two
: [0 0 1 0 0 0]or
: [0 0 0 1 0 0]three
: [0 0 0 0 1 0]apples
: [0 0 0 0 0 1]๋จ์ด ์ฌ์ ์์ ์ถ์ถํ ์-ํซ ๋ฒกํฐ๋ฅผ ์กฐํฉํด์ ์ด๋ค ๋ฌธ์ฅ์ ๋ํ๋ผ ์๋ ์๋ค. ๊ฐ ๋ฌธ์ฅ๋ง๋ค ๊ฐ๋ฐฉ์ ๋ง๋ค๊ณ ๊ทธ ์์ ํ์ํ ๋จ์ด๋ฅผ ๋ฃ๋๋ค๋ ์๋ฏธ์์ ์ด๊ฒ์ Bag-of-Word๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ex)
"I have two apples" -> [1 1 1 0 0 1]
Bag-of-Word์ ๋ฒ ์ด์ฆ ์ ๋ฆฌ๋ฅผ ํ์ฉํ NaiveBayes Classifier๋ฅผ ์ด์ฉํด์ ๊ณ ์ ์ ์ธ ์์ฐ์ด ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค. ํ์ง๋ง ๋จ์ด ๊ฐ์ ์ ์ฌ์ฑ์ ๋ฐ์ํ ์ ์๊ณ , ๋จ์ด ์ฌ์ ์ด ์ปค์ง๋ฉด ๋ฒกํฐ์ ์ฐจ์์ด ๋๋ฌด ๋ง์์ง๋ค๋ ๋จ์ ์ด ์์ด Word Embedding ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์-ํซ ๋ฒกํฐ ๋ง๊ณ ๋ Word Embedding ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ์์ฐ์ด ๋จ์ด๋ฅผ ๋ฒกํฐ๋ก ํํํ ์ ์๋ค.
Word Embedding์ ์ ๊ฒฝ๋ง์ ์ด์ฉํ ์์ฐ์ด ์ ์ฒ๋ฆฌ ๊ธฐ๋ฒ์ผ๋ก, ๋น์ทํ ์๋ฏธ๋ฅผ ๊ฐ๋ ๋จ์ด๊ฐ ์ขํ๊ณต๊ฐ ์์์ ๋น์ทํ ์์น์ ์๋๋ก ๋งคํํ์ฌ ๋จ์ด ๊ฐ์ ๊ด๊ณ๋ ์๋ฏธ๋ฅผ ๋ฐ์ํ ๋ฒกํฐ๋ฅผ ๋ง๋ค ์ ์์ด ์์ฐ์ด ์ฒ๋ฆฌ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ๋ ๋์ ์ฑ๋ฅ์ ์ป์ ์ ์๋ค.
ex)
moving window์ ํฌ๊ธฐ๊ฐ 3์ผ ๋๋ ์ค์ฌ ๋จ์ด ์๋ค๋ก ํ ๋จ์ด์ฉ๋ง ๋ณด๊ฒ ๋๋ค.์ด๋ ๊ฒ ์ถ์ถํ ๋จ์ด ์๋ค์ ์-ํซ ๋ฒกํฐ๋ก ๋ฐ๊พผ ๊ฒ์ ๋ฐ์ดํฐ๋ก ์ผ์ ๋ด์ ์ฐ์ฐ(๋ฒกํฐ ๊ฐ์ ์ ์ฌ๋ ์ธก์ )์ ์ํํ๋ ์์ ์ ๊ฒฝ๋ง์ ๊ตฌ์ฑํ๋ค. ์ ๊ฒฝ๋ง์ ์ฃผ๋ณ ๋จ์ด๋ฅผ ์ ๋ ฅ๋ฐ์ ์ค์ฌ ๋จ์ด๊ฐ ๋ฌด์์ธ์ง ์ถ์ ํ๊ณ , ์ค์ฌ ๋จ์ด๋ฅผ ์ ๋ง์ถ๋ ๋ฐฉํฅ์ผ๋ก ํ์ตํ๊ฒ ๋๋ค. Word2Vec์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ๋ค๋ฅธ ์์ฐ์ด ์ฒ๋ฆฌ ์ ๊ฒฝ๋ง์ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋ค.
์ฐํด ๋์ ๋ง๋ ๊ฐํ ์ธ์ ๋ชจ๋ธ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด๋ค. kaggle ๋ฐ์ดํฐ์ ์ ๋ฐ์์ colab ํ๊ฒฝ์์ ๋ง๋ค์๋ค. ๋ฐ์ดํฐ์ ์ ๋ถ๋ฌ์ฌ ๋ glob์ ์ฌ์ฉํ๋๋ฐ, ํ์ผ ์ด๋ฆ์ string์ด๋ผ์ ์ ๋ ฌ์ด 1, 10, 11, 12... ์ด๋ฐ ์์ผ๋ก ๋์ด์ ํด๊ฒฐํ๊ธฐ ์ํด natsort๋ฅผ ์ฌ์ฉํ๋ค๋ ๋ด์ฉ์ ๊ณต์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋๋ฅผ ๊ฐ์ด ๋ณด๋ฉด์ ๋ชจ๋ธ์ด๋ ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ์ข ๋ ํ๋ค.