FastText Classification ์ ์ฉํด๋ณด๊ธฐ
Fast text ๋ Facebook's AI Research (FAIR) lab ์์ ๋ง๋ wordembdding๊ณผ,text classification์ ์ํ library ์ด๋ค. 294๊ฐ ์ธ์ด์ ๋ํด์ pretrained model์ ์ ๊ณตํ๋ค. ํ๊ตญ์ด๋ ํฌํจ๋๋ค(๋ง์ธ!)
์ด๋ฒ์ MZ text classification ๋ํ์ ๋๊ฐ๊ฒ ๋๋ฉด์, fast text classification์ ์ฌ์ฉํด ๋ณด์๊ณ , ์ฌ์ฉ๋ฒ๊ณผ ํ๊ธฐ๋ฅผ ๋จ๊ฒจ๋ณด๋ ค๊ณ ํ๋ค.
๊ธฐ์กด์ word to vector์์ ์ฐจ์ด์
๊ธฐ์กด์ word to vector๋ ๋จ์ด ๊ธฐ๋ฐ์ผ๋ก ํ์ต์ ์งํํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฌ์ ์ ์๋ ๋จ์ด์ ๋ํด์๋ ์ ๋๋ก ๋จ์ด ๋ฒกํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์๋ค. ํ์ง๋ง fasttext๋ ๋จ์ด ๋ด๋ถ์์๋ ngram์ผ๋ก ์ชผ๊ฐ์ ํ์ตํ๊ธฐ ๋๋ฌธ์, ์ด๋์ ๋ ์คํ๋ ์ ์กฐ์ด์ ๋ํด์๋ ํ์ต์ด ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ์๋๋ฉด์์๋ ์ฐจ์ด๊ฐ ์๋ค.
Fasttext๋ ์๋๊ฐ ๋น ๋ฅด๋ค! classification ๋ชจ๋ธ์ ํ์ตํ๊ธฐ ์ํด 60000๊ฐ์ ๋ฌธ์ฅ์ ํ์ตํ๋๋ฐ 5๋ถ์ด ์ฑ ๊ฑธ๋ฆฌ์ง ์์๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ธ์ ํฌ๊ธฐ๊ฐ word to vector ๋ณด๋ค ์ปค์, model load์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค. ํนํ fasttext ์์ ์ ๊ณตํ๋ ํ๊ธ pretrainned๋ชจ๋ธ ์ ์ฉํ๋ ค๋ฉด ์๊ฐ์ด ํ์ฐธ ๊ฑธ๋ฆฐ๋ค ใ ใ
Fasttext ํ์ต๊ณผ ํ ์คํธ
data:
๋จผ์ ๋ฐ์ดํฐ ํ์์ ํ์ต์ด ๊ฐ๋ฅํ๊ฒ ๋ฐ๊ฟ ์ค์ผํ๋ค
1
2
3
4
5
6
7
|
__label__1.์ฐจ๋์ ์ด __label__์ด์ ์ ์ด __label__์ผ์๋ฐ๋ผ๊ฐ๊ธฐ ๋ด ์ ์ ์ ๋ ์ฐจ ๊ณ์ ๋ฐ๋ผ๊ฐ .
__label__1.์ฐจ๋์ ์ด __label__์ด์ ์ ์ด __label__์ผ์๋ฐ๋ผ๊ฐ๊ธฐ ์ฐจ ๋ฐ๋ผ๋ถ ๊ธฐ ๊ฐ๋ฅ ํ ๋ ?
__label__1.์ฐจ๋์ ์ด __label__์ด์ ์ ์ด __label__์ผ์๋ฐ๋ผ๊ฐ๊ธฐ ์์ฐจ ์ ์ ๋๊ฑฐ๋ฆฌ ๋ฅผ ์ ์ง ํ ๋ฉด์ ๋ฐ๋ผ๊ฐ ์ค .
__label__1.์ฐจ๋์ ์ด __label__์ด์ ์ ์ด __label__์ผ์๋ฐ๋ผ๊ฐ๊ธฐ ์์ฐจ ๋ฐ๋ผ ์ ๋ถ ์ด ?
__label__1.์ฐจ๋์ ์ด __label__์ด์ ์ ์ด __label__์ผ์๋ฐ๋ผ๊ฐ๊ธฐ ์ ์ ์ฐจ ๋ค ์ ๋ถ ์ด ์ค๋ ?
__label__1.์ฐจ๋์ ์ด __label__์ด์ ์ ์ด __label__์ผ์๋ฐ๋ผ๊ฐ๊ธฐ ๋ ์ ์์ฐจ ๋ฅผ ๋ฐ๋ผ ๊ฐ ์ฃผ ๋ ด .
__label__1.์ฐจ๋์ ์ด __label__์ด์ ์ ์ด __label__์ผ์๋ฐ๋ผ๊ฐ๊ธฐ ์ ๋ฐ๋ผ๊ฐ ๊ฐ ๊ธฐ ๋ ํ ์ ์ ์ง ?
|
cs |
txtํ์ผ์์ ๋ฌธ์ฅ์ ์ฒซ๋ถ๋ถ์๋ __label__['class ์ด๋ฆ'] ์, ๋ค์๋ ํํ์ ๋ถ๋ฆฌ๊ฐ ์๋ฃ๋ ๋ฌธ์ฅ์ '\t'๊ธฐํธ๋ก ๋ถ๋ฆฌํ์ฌ dataํ์์ ๋ฐ๊ฟ์ค๋ค. ํ ๋ฌธ์ฅ์ ์ฌ๋ฌ class๊ฐ ๊ฐ๋ฅํ๋ค.
๋ชจ๋ธ์ ํ์ต๋ ๊ฐ๋จํ๋ค.
1
2
3
4
5
6
7
8
9
10
|
import fasttext
model1 = fasttext.train_supervised(input="[ํ์ตํ์ผ๊ฒฝ๋ก]",
epoch=100,
bucket = 20000,
lr = 1,
wordNgrams=2,
dim=80,
)
print(model1.test("[ํ ์คํธํ์ผ๊ฒฝ๋ก]") model1.save_model(".[๋ชจ๋ธ์ ์ฅ๊ฒฝ๋ก].bin")
|
cs |
ํ์ต์ํฌ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๋ฉด, ์์์ ํ์ต์ ํ๋ค. ๊ทธ ํ์ผ์ ์ ์ฅ๋ง ์ ํ๋ฉด ๋๋ค.
์ฑ๋ฅ์ model.test๋ฅผ ํตํด ํ ์ ์๋ค. ์ ํ๋๋ฅผ ์ถ๋ ฅํด์ค๋ค.
์๋๋ ๋ฌธ์ฅ์ ๋ํด predict๋ฅผ ํ ์์์ด๋ค.
model1.predict("์ ์ฐจ๋ฅผ ๋ฐ๋ผ ๊ฐ ์ค")
>>> (('__label__1.์ฐจ๋์ ์ด',), array([1.00001001]))
model1.predict("์๊ธ์ค ๋ก ๊ฐ๋ ๊ธธ ์ ์๋ ค ์ค")
>>> (('__label__5.์๋ฃ',), array([1.00001001]))
ํ์ต์๋๊ฐ ๋น ๋ฅด๊ณ , ์ฑ๋ฅ๋ ์ด๋์ ๋ ๊ด์ฐฎ์์ ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค!