์ต๊ทผ์...๊ตฌ๊ธ์์ ๋ฐํํ BERT์ดํ์ด ์ฅ๋์ด ์๋๋๋ค.
๊ฒ๋ค๊ฐ LG CNS์์ SQuaD ๋ฐ์ดํฐ์ ์ ํ๊ธ๋ก ๋์ฒด ํ ์ ์๋ KorQuAD ๋ฐ Leader Board๋ฅผ ์ ๊ณตํด์ฃผ์ด์,
๊ตญ๋ด ์ ์์ AI ๊ฐ๋ฐํ์ด ๋ง์ด ์ฐธ์ฌ๋ฅผ ํ๋ ์ดํ์ด ์์์ต๋๋ค.
BERT์ ๋ํด ๊ถ๊ธํ์๋ฉด ์๋ ๊ธฐ์ฌ๋ฅผ ์ฝ์ด๋ณด์๋ฉด ๋ฉ๋๋ค.
http://www.aitimes.kr/news/articleView.html?idxno=13117
์ , ๋ฆฌ๋๋ณด๋์ 3๋ฑ๊น์ง๋ฐ์ ์๋ ์์ ์ BERT๋ฅผ ์ด์ฉํด์ 4๋ฑ์ด๋ผ๋ ํด๋ณด์ ๋ผ๊ณ ํ๋ค๊ฐ...
ํ๋ก์ ํธ๋๋ฌธ์, ๋ฏธ๋ฃจ๋ค, ์ง๊ธ์ ๊ฐ์ ํ 22๋ฑ์ ๋จธ๋ฌผ๋ ๋ค์.
KorQuAD
desktop_mac Getting Started KorQuAD๋ ํ๊ตญ์ด Machine Reading Comprehension์ ์ํด ๋ง๋ dataset์ ๋๋ค. ๋ชจ๋ ์ง์์ ๋ํ ๋ต๋ณ์ ํด๋น Wikipedia ์ํฐํด ๋ฌธ๋จ์ ์ผ๋ถ ํ์ ์์ญ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค. Stanford Question Answering Dataset(SQuAD) v1.0๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. ์ ์ฒด ๋ฐ์ดํฐ๋ 1,560 ๊ฐ์ Wikipedia article์ ๋ํด 10,645
korquad.github.io
(๊ธ์ ์ฐ๋ ๋์ค์ ๋ณด๋ 23๋ฑ์ผ๋ก ๋ฐ๋ ธ๋ค์...ใ
ใ
)
์ด๋ฒ์, ์ถ๊ฐ์ ์ผ๋ก ํด๋ณผ ์ ์๋ ์์ด๋์ด๋ฅผ ์ป์ด, KorQuAD์ ๋ฆฌ๋๋ณด๋ ์์๋ฅผ ๋์ฌ๋ณด๊ณ ์ ํฉ๋๋ค.
๊ทธ์ค ํ๋์ ๋ฐฉ๋ฒ์ด default๋ก ์ค์ ๋์ด ์๋ BERT์ multilingual tokenizer๋ฅผ ๋์ฒด ํ๋ ๊ฒ ์ ๋๋ค.
ํ๊ตญ์ด์ ๊ธฐ์กด ํํ์ ๋ถ์๊ธฐ๋ konlpy, mecab๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ์นด์นด์ค์์ Khaiii๋ผ๋ ํํ์ ๋ถ์๊ธฐ๋ฅผ ๋ฐํํ์ต๋๋ค.
Khaiii๋ ๋ฅ๋ฌ๋(CNN)๊ธฐ๋ฐ์ ํํ์ ๋ถ์๊ธฐ ์ธ๋ฐ, ๊ธฐ์กด์ ์ฑ๋ฅ์ด ๋๋ Mecab๊ณผ ๋์ผํ๊ฑฐ๋ ์ข ๋ ๋์ ์ฑ๋ฅ์ ๋ด๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ต๋๋ค.
๋๋ฌธ์, ์ฐ์ Khaiii๋ฅผ ์ค์นํ๋ ๋ฒ์ ๊ธฐ๋กํ๋ฉฐ ์งํํ๋ ค๊ณ ํ๋๋ฐ,
์ง๊ธ ํ๊ฒฝ์ด Linux์ด๋ค ๋ณด๋, Linux ํ๊ฒฝ ์์ฃผ๋ก ์งํ์ ํ๊ฒ ์ต๋๋ค.
์ฐ์ ๊ธฐ๋ณธ ๋น๋ ํ๊ฒฝ์ ์๋์ ๊ฐ์ต๋๋ค.
Ubuntu(Mint Linux) 18.04
Python 3.6
gcc 7.xx
1. Khaii git ์ ์ฅ์๋ฅผ clone ํฉ๋๋ค.
git clone https://github.com/kakao/khaiii.git
2. build๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ์ด๋ ํฉ๋๋ค.
cd khaiii
mkdir build
cd build
3. Cmake๋ฅผ ์คํํฉ๋๋ค. (์ปคํผํ์ ํ ๊ฐ์ง๊ณ ์ต๋๋ค.)
cmake ..
4. Make๋ฅผ ์คํํฉ๋๋ค. (์ปคํผ๋ฅผ ํ์ ๋ ํ ๊ฐ์ง๊ณ ์ต๋๋ค.)
make all
์ฑ๊ณต์ ์ผ๋ก ๋น๋๊ฐ ๋๋ฉด build ๋๋ ํฐ๋ฆฌ ์๋์ ๋ค์๊ณผ ๊ฐ์ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
- bin: ๋๋ ํฐ๋ฆฌ
- khaiii: ์คํ ํ๋ก๊ทธ๋จ
- lib: ๋๋ ํฐ๋ฆฌ
- libkhaiii.so: shared ๋ผ์ด๋ธ๋ฌ๋ฆฌ (๋งฅ OS์ ๊ฒฝ์ฐ libkhaiii.dylib)
- libkhaiii.so.X
- libkhaiii.so.X.Y
- test: ๋๋ ํฐ๋ฆฌ
- khaiii: ํ ์คํธ ํ๋ก๊ทธ๋จ
5. make resource : bin ๋๋ ํ ๋ฆฌ์ ์์ฑ๋ khaiiiํ์ผ์ ์คํํ๊ธฐ ์ํด์๋ ํด๋น ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋
๋ฆฌ์์ค ๋ค์ ๋น๋ ํด์ผ ํฉ๋๋ค.
make resource
6. ํ ์คํธ๋ฅผ ํด ๋ด ๋๋ค.
./bin/khaiii --rsc-dir=./share/khaiii
๋ช ๋ น์ด๋ฅผ ์น๋ฉด "...PoS tagger opened"๋ผ๋ ๋ฉ์์ง ๋ค์์ ์๋ฌด ๋ณํ๊ฐ ์๋๋ฐ,
์ฌ๊ธฐ์ ํ ์คํธ ํ๊ณ ์ ํ๋ ๋ฌธ์ฅ์ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ ์น๋ฉด ํํ์ ๋ถ์์ด ๋ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ์ด ๋ฉ๋๋ค.
7. ์ ์ ์๋์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค.
ctest
7. python๊ณผ ์ฐ๋์ ์ํด make๋ฅผ ํฉ๋๋ค. (python binding)
make package_python
8. pip install ์คํ
cd package_python
pip install .
9. Python ๋ฐ์ธ๋ฉ ํ ์คํธ
๋ง์ง๋ง์ผ๋ก, python ๋ฐ์ธ๋ฉ์ด ์ ๋์ด ์๋์ง ํ ์คํธ ํฉ๋๋ค.
์๋ ์์ค๋ฅผ python์ผ๋ก ์คํ์์ผ๋ด ๋๋ค.
** ์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ ํ์ฌ์ ๋๋ ํ ๋ฆฌ(./package_python)์ ๋ฒ์ด๋์ ์คํํด์ผ ํฉ๋๋ค.
ํ์ฌ์ ๋๋ ํ ๋ฆฌ์์ ์คํํ๋ฉด ํ์ฌ์ buildํ์ผ์ ์คํํ๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ ๋ฌธ์ ๊ฐ
๋ฐ์ํฉ๋๋ค.
from khaiii import KhaiiiApi
api = KhaiiiApi()
for word in api.analyze('์๋
, ์ธ์.'):
print(word)
์ ์ด๋ฏธ์ง ์ฒ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ฉด ์ ๋๋ ๊ฒ ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.