ํ๊ตญ์ด์ Tokenizer
ํ๊ตญ์ด๋ Tokenizer๋ฅผ ํตํด ๋จ์ด๋ฅผ ๋ถ๋ฆฌํ๊ธฐ๊ฐ ๋๋จํ ์ด๋ ค์ด ํธ์ ์ํ๋ ์ธ์ด๋ค.
๋ผํด ๋ฌธ์๋ก ๋ ์ธ์ด๋ค์ ๋๋ถ๋ถ ๋จ์ด๊ฐ ๋์ด์ฐ๊ธฐ๋ก ๊ตฌ๋ถ๋๊ณ ๋์ฌ ๋ณํ์ด๋ ๋จ์ด์ ์ฑ๋ณ, ๋ณต์ํ ์ ๋๋ง ๊ณ ๋ คํ๋ฉด ๋๋๋ฐ, ํ๊ตญ์ด๋ ๊ทธ๊ฒ๋ณด๋ค ๋ฏธ๋ฌํ ๋ณํ๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ด๋ค.
ํนํ ๊น๋ค๋ก์ด ๊ฒ์ "์กฐ์ฌ"๋ค. ๊ต์ฐฉ์ด ํน์ฑ์ ์กฐ์ฌ๊ฐ ๋จ์ด ๋ค์ ๋ถ๋๋ฐ, ํ๊ตญ์ด์์๋ ์ด๊ฑธ ๊ท์น์ ์ผ๋ก ๋ผ์ด๋ด๋ ๊ฒ์ด ์๊ฐ๋ณด๋ค ์ด๋ ต๋ค.
์ฌ๊ธฐ์๋ ํ๊ตญ์ด์ฉ Tokenizer๋ฅผ ์ ํํ๋๋ฐ ํ์ํ ๊ธฐ๋ฐ์ง์, ๊ทธ๋ฆฌ๊ณ ๋ํ์ ์ธ ๊ตฌํ์ฒด ๋ช๊ฐ์ง๋ฅผ ์๊ฐํด๋ณธ๋ค.
๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ
Tokenizer๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๊ธฐ๋ณธ์ ์ธ ์ฉ์ด๋ ๊ฐ๋
์ ์ข ์์๋๋ ๊ฒ์ด ์ข๋ค.
๋๋ต ์ ๋ฆฌํด๋ณธ๋ค.
ํ๊ตญ์ด ํ์ฌ ํ๊ทธ
๋ค์์ Tokenizer๋ค์ ํ์ฌ ํํ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ถ์ถํ๊ณ ์ถ์ถ ์ ๋๋ฅผ ๋ค๋ฅด๊ฒ ์ค์ ํ ์ ์๋ ์ต์
์ ์ ๊ณตํ๋ค.
์ฌ๊ธฐ์ ํ์ฌ๋ฅผ ๊ตฌ๋ถํ๋ ์ถ์ฝ์ด๋ฅผ ์ฌ์ฉํ๋๋ฐ, ๋ณดํต ๊ตญ๋ฆฝ๊ตญ์ด์์์ ์ ์ํ "์ธ์ข
ํ์ฌ ํ๊ทธ"๋ฅผ ๊ณจ์๋ก ์ผ๋๋ค.
์ถ์ฒ: https://m.blog.naver.com/aramjo/221404488280
๊ตฌํ์ฒด๋ง๋ค ์กฐ๊ธ์ฉ ํ์ฅํด์ ๋ค๋ฅด๊ฒ ์ฐ๊ธฐ๋ ํ๋๋ฐ, ๋์ฒด๋ก๋ ์ด์ ๋น์ทํ๋ค.
ํ์ฌ ๊ฐ์ง๊ฐ ๋๋ Tokenizer๋ค์ ํน์ ํ์ฌ๋ง ๋จ๊ธฐ๋ ํ์ฌ ์ ๊ฑฐ๊ฐ ๊ฐ๋ฅํ๋ค.
ํํ์ ๋ถ์
ํ๊ตญ์ด Tokenizer๋ฅผ ๋ค๋ฅธ ๋ง๋ก ํํ์๋ถ์๊ธฐ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ํํ์๋ถ์์ด Tokenizer์ ์ญํ ์ ํฌํจ๋๋ ๊ด๊ณ๋ผ์ ์๋ฐํ ๋งํ๋ฉด ์ข ๋ค๋ฅด๊ธด ํ๋ฐ, ์ด ๊ธ์์๋ ์ด๋ ์ ๋ ํผ์ฉํ๋ค.
์ ํํ ๋งํ๋ฉด ์ด์ ์ ํํ์ ๋จ์๋ก ๋ถ๋ฆฌ์ด์ ์ ํํ์ ๋จ์๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ ํํ์๋ถ์์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
"๋จน์์ต๋๋ค"๊ฐ ๋ค์ด์ค๋ฉด, ๊ทธ๊ฒ์ ์ต์ํ์ ์๋ฏธ ๋จ์์ธ ๋จน / ์ / ์ต๋๋ค 3๊ฐ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค.
์ด ๊ฒฝ์ฐ "๋จน"์ ๋์ฌ์ ์ด๊ฐ์ด๋ค. '๋จน๋ค'๋ผ๋ ๋์์ ํต์ฌ ์๋ฏธ๋ฅผ ๋ํ๋ธ๋ค.
"์"์ ... ๊ณผ๊ฑฐ ์์ ๋ฅผ ๋ํ๋ด๋ ์ ์ด๋ง ์ด๋ฏธ๋ค.
"์ต๋๋ค"๋ ๋์๊ณผ ํ์ํ์ ๋ํ๋ด๋ ์ข
๊ฒฐ ์ด๋ฏธ์ด๋ค.
๊ตฌํ ์์ค์ด ๋๊ณ ๋ฌด๊ฑฐ์ด Tokenizer๋ค์ ๋ชจ๋ ์ด๋ฌํ ์ธ๋ถ์ ์ธ ๋ถ์์ ํตํด ๋จ์ด๋ฅผ ๋ถ๋ฆฌํด๋ธ๋ค.
์กฐ์ฌ ์ ๊ฑฐ (Particle Removal)
ํ๊ตญ์ด์์ ๊น๋ค๋ก์ด ๋ถ๋ถ ์ค ํ๋๋ค.
๋จ์ด ์์ค์ ์ถ์ถ์ด ํ์ํ๋ฉด ๋ฐ๋์ ์ค์ํ๊ฒ ํ์ธํด๋ด์ผ ํ๋ ๋ถ๋ถ์ด๊ธฐ๋ ํ๋ค.
๊ฐ๋ ์์ฒด๊ฐ ์ด๋ ค์ด ๊ฒ์ ์๋๊ณ , "์ผ์ฑ์ ์์์"๋ฅผ "์ผ์ฑ์ ์" + "์์"๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค.
๊ทผ๋ฐ ์ด๊ฒ ์์ฉ ์์ค์ผ๋ก ๊ฐ๋ฉด ์๋นํ ๊น๋ค๋กญ๋ค. ์กฐ์ฌ ์์ฒด๋ ์ ํด์ ธ์์ผ๋๊น ๊ท์น์ ์ผ๋ก ์ ๊ฑฐํ ์ ์๋๋ฐ, ์ฌ์ ์ ์๋ ๊ณ ์ ๋ช ์ฌ๊ฐ ์กฐ์ฌ๋ก ๋๋๋ ๊ฒฝ์ฐ์๋ ์ด๊ฒ ์ฝ์ง ์๋ค.
"ํ๋๋น์น๊ณผ" ๊ฐ์ ๊ณ ์ ๋ช ์ฌ๊ฐ ์๋ค๋ฉด, ์ผ๋ฐ์ ์ธ Tokenizer๋ ์ด๊ฒ์ "ํ๋๋น์น"+"๊ณผ"๋ก ๋ถ๋ฆฌํด๋ฒ๋ฆด ์ ์๋ค.
Open Korean Text์ ๊ฒฝ์ฐ: ๋ธ๋์ฌ์น๊ณผ๋ฅผ "๋ธ๋์ฌ์น"๋ก ํ๊ดด.
์ด ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด "ํ๋๋น์น๊ณผ" ์์ฒด๋ฅผ ์ฌ์ ์ ๋ฑ๋กํด์ผํ๋๋ฐ, ์ด๊ฒ๋ ๋ง์ด ์ฝ์ง ๋ชจ๋ ๋จ์ด๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ๋ค. OOV ์น์
์์ ํ์ถํ๋ค.
์กฐ์ฌ ์ ๊ฑฐ ์ ๋๋ ๊ฑฐ์ ๋ชจ๋ ํ๊ตญ์ด tokenizer๊ฐ ์ ๊ณต์ ํ์ง๋ง, ๊ทธ ์์ค์๋ ์ฐจ์ด๊ฐ ์ข ์๋ค.
์ด๊ทผ ์ถ์ถ (Stemming)
ํ
์คํธ๋ฅผ ์ ํ์ ์ธ ํํ๋ก ๋ถ์ํ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด, ์ด๊ทผ ์ถ์ถ๋ ์ค์ํ ๋ถ๋ถ์ด๋ค.
ํน์ ์ฉ์ด๋ฅผ ์ํ์ ๊ฐ๊น์ด ์ด๊ทผ์ผ๋ก ๋ณํํ๋ ๊ฒ์ ๋งํ๋ค. "๋จน์์ต๋๋ค"๋ฅผ "๋จน๋ค"๋ก ๋ฐ๊พธ๊ณ "running"
์ "run"์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ ๋ฑ์ด ์ด์ ์ํ๋ค.
"kiwi", "nori", "mecab-ko" ๊ฐ์ ๋ํ tokenizer๋ค์ ์ง์ํ๊ณ , open korean text ๊ฐ์ ๊ฒฝ๋ ๊ตฌํ์ฒด๋ ์ ๊ณตํ์ง ์์ ์ ์๋ค.
Stop Word ์ ๊ฑฐ
ํ์์๋ ํํ์๋ค์ ๋ ๋ ค๋ฒ๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค.
"์", "๋", "์ด", "๊ฐ" ๊ฐ์ ์กฐ์ฌ๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋, ์ํ๋ค๋ฉด ์ถ๊ฐ ์ฌ์ ์ ํตํด์ ํน์ ๋จ์ด๋ค์ ๋ ๋ ค๋ฒ๋ฆฌ๋๋ก ํ ์ ์๋ค.
"kiwi", "nori" ๊ฐ์ tokenizer๋ค์ stop word ์ฌ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
OOV (Out-of-Vocabulary)
ํํ์๋ถ์์์ ๊ฐ์ฅ ๊น๋ค๋ก์ด ๊ฒ์ ํญ์ ๊ณ ์ ๋ช
์ฌ๋ค.
์๋ฌด๋ฆฌ ์ ๊ตฌํ๋์ด์๊ณ ํ๊ตญ์ด ๋ฌธ์ฅ์ ์ ๋ถ์ํ๊ฒ ํด๋จ๋๋ผ๋, ๋ชจ๋ฅด๋ ๋จ์ด๊ฐ ํฌํจ๋๋ฉด ๊ท์น์ ์ํด์ ์๋์น ์์ ๋ถํด๊ฐ ์ผ์ด๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ณผ๊ฒฉํ๊ฒ ํํ์ ๋ถ๋ฆฌ๋ฅผ ํ๋ ๊ตฌํ์ฒด๋ "๋์ซ์ฟ "๋ฅผ "๋", "์ซ", "์ฟ "๋ก ๋ถ๋ฆฌํด๋ฒ๋ฆด ์ ์๊ณ , "์ธ๋ธ๋์ค์น๊ณผ"
๋ฅผ "์ธ๋ธ๋์ค", "์น๊ณผ"๋ "์ธ๋ธ๋์ค์น", "๊ณผ(์กฐ์ฌ)"๋ก ๋ถ๋ฆฌํด๋ฒ๋ฆด ์๋ ์๋ค.
์ด๋ ๊ฒ ์ฌ์ ์ ์๋ ๊ณ ์ ๋ช
์ฌ๊ฐ ์๋ ๊ฒ, ํน์ ๊ทธ ๊ณ ์ ๋ช
์ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ OOV๋ผ๊ณ ๋ถ๋ฅธ๋ค.
OOV๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์๋ ๋ช๊ฐ์ง ๋ฐฉ์์ด ์๋๋ฐ, ๋ฌด์์ ์ ํํด๋ 100% ์์ ํ๊ฒ ๋๋ ๊ฒ์ ์๋ค.
1. ์ฌ์ ๊ด๋ฆฌ (User Dictionary)
๊ณ ์ ์ ์ผ๋ก๋ ์ฌ์ฉ์ ์ฌ์ ์ ๊ณ ์ ๋ช
์ฌ๋ฅผ ์ถ๊ฐํด์ ๋์ํ๋ ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํ๊ณ , ๋์ค์ ์ธ Tokenizer ๊ตฌํ์ฒด๋ค์ ์ด ๋ฐฉ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ถ ์ ๊ณตํ๋ค.
์ฌ์ ์ ์ถ๊ฐ๋ง ํด๋๋ฉด ์์ฃผ ํ์คํ๊ฒ ์ฒ๋ฆฌ๊ฐ ๋๋ค๋ ๊ฒ์ด ๋ณด์ฅ๋์ง๋ง, ์๋ก์ด ์ ์กฐ์ด๋ ๊ณ ์ ๋ช
์ฌ๊ฐ ๊ณ์ ์ ์
๋ ๊ฒฝ์ฐ๋ฅผ ๋์ํ๋ ๊ฒ์ด ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ๋ค๋ ๋จ์ ์ด ์๋ค.
๊ฒ๋ค๊ฐ ๋งค๋ฒ ์
๋ฐ์ดํธํ๊ณ ๋ฆฌ๋ก๋ํ๋ ๊ฒ๋ ์ผ์ด๋ค.
2. ํต๊ณ ๊ธฐ๋ฐ ํ์ง
ํน์, ํน์ ๋ง๋ญ์น๊ฐ ๋ฑ์ฅํ๋ ๋น๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ ์ ๋ช
์ฌ๋ฅผ ์ถ๋ก ํ ์ ์๋ค.
soynlp์ Word Extractor๋ Noun Extractor ๊ฐ์ ๊ตฌํ์ฒด๊ฐ ์ด์ ์ํ๋ค.
ํต๊ณ ๊ฐ๋ ์ ์ ์ฉํด์ ์ค์๊ฐ์ผ๋ก ์ฌ์ ์ ๊ด๋ฆฌํ๋ ๋ณํ ๊ธฐ๋ฒ์ด๋ผ๊ณ ํ ์ ์๋ค.
๋ค๋ง ์ด๊ฒ๋ 100% ์์ ํ ๊ฒ์ด ์๋์ ์ธ์งํ๊ณ ์์ด์ผ ํ๋ค.
ํต๊ณ์ ์ฌ์ ์ด ๊ตฌ์ถ๋๊ธฐ ์ ์๋ ํ์ง์ ๋ณด์ฅํ ์ ์๋ cold start ๋ฌธ์ ๊ฐ ์๋๋ฐ๋ค๊ฐ, ํต๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ถ๋ก ์ด ์คํ์ผ ์๋ ์๋ค.
3. ๋ฌธ๋งฅ ๊ธฐ๋ฐ ํ์ง
์๋๋ฉด ์์ ๋ฌธ๋งฅ์ ๊ธฐ์ค์ผ๋ก ๋ช ์ฌ๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด๊ฑด ๋จ์ํ ๊ท์น ๊ธฐ๋ฐ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ๋ ์ด๋ ต๊ณ , LLM์ฒ๋ผ ์์ฐ์ด ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํด์ผ ํ๋ค.
kiwi๊ฐ ์ด ๋ฐฉ์์ ์จ์ ๊ฒฝ๋๋ชจ๋ธ์ ๋ด์ฅํด๋์ ํน์ํ ์ผ์ด์ค๋ค.
4. LLM ์ง๋ฅด๊ธฐ
์ฌ์ค ๊ทธ๋ฅ ๊ฐ์ฅ ํธํ๊ณ ํ์คํ ๋ฐฉ๋ฒ์ ๊ด์ฐฎ์ LLM์ ์ฐ๋ ๊ฒ์ด๋ค.
์คํ๋ชจ๋ธ์ ์๋นํด๋ ๋๊ณ , GEMINI ๊ฐ์ ์ ๋ ดํ ์๋น์ค์ ๊ฒฝ๋ ๋ชจ๋ธ์ ์ฐ๋ ๊ฒ์ผ๋ก๋ ์ถฉ๋ถํ๋ค.
๋์ ๋น์ฉ๋ฌธ์ , ๋ฎ์ ๊ฐ์ฉ์ฑ/์ฒ๋ฆฌ๋ ๋ฌธ์ , ๋ฝ์ธ๋๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
Tokenizer ๊ตฌํ์ฒด
Tokenizer ๊ตฌํ์ฒด๋ ๊ฝค ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ๊ณ , ๊ตฌํ ์์ค์ด๋ ๊ธฐ๋ฅ์ ์ข
๋ฅ, ์ฒ๋ฆฌ๋ ๋ฑ์ด ์ ๋ถ ๋ค๋ฅด๋ค.
๊ทธ๋์ ์ ํ์ธํด๋ณด๊ณ ์ ํ์ ํด๋ณด๋ ๊ฒ์ด ์ข๋ค.
์ฌ๊ธฐ์๋ mecab, nori, kiwi, okt, charabia ์ ๋๋ฅผ ๊ฐ๋จํ ์๊ฐํด๋ณธ๋ค.

Nori (Elasticsearch)
Elasticsearch ํ๊ฒฝ์์ ์ฃผ๋์ ์ผ๋ก ์ฌ์ฉ๋๋ Tokenizer๋ค. ๊ฒ์์ฉ์ผ๋ก ๋ง๋ค์ด์ก๋ค.
Java๋ก ๊ตฌํ๋์ด์๊ณ , ์กฐ์ฌ ์ ๊ฑฐ, ์ด๊ทผ ์ถ์ถ ๋ฑ์ ์ ๋ฐ์ ์ธ ๊ธฐ๋ฅ๋ค์ ์ ๋นํ ์ ์ ๊ณตํ๋ค.
ํ์ฌ Elasticsearch์์ ํ๊ตญ์ด๋ฅผ ์ด๋ค๊ณ ํ๋ฉด ์ด๊ฑธ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ ํํ๋ ํธ์ด๋ค.

Tokenizer์ ํ์ํ ๊ฒ๋ค์ ์ผ์ถ ์๋ค. ์กฐ์ฌ ์ ๊ฑฐ, ์ด๊ทผ์ถ์ถ, ํ์ฌ๋ณ ์ ๋ณ ๋ฑ.
๊ตฌํ ์์ค์ ๊ด์ฐฎ์ ํธ์ธ๋ฐ, Java ๊ตฌํ์ด๋ผ์ ์๋ฌด๋ฐ๋ ๋ถ์ด๊ธด ๊ณค๋ํ๋ค.
Mecab-Ko (์์ ํ๋ข)
MeCab์ ์๋ ์ผ๋ณธ์ด๋ฅผ ์ํ ํํ์ ๋ถ์๊ธฐ์ธ๋ฐ, ํ๊ตญ์ด์ ๋ง๊ฒ ํ์ฅํ ๊ตฌํ์ฒด๊ฐ Mecab-ko๋ค.
C++๋ก ๊ตฌํ์ฒด๋ค.
๊ณผ๊ฑฐ์๋ Elasticsearch์์ ์์ ํ๋ข(Seunjeon) ํ๋ฌ๊ทธ์ธ์ ํตํด ๋ง์ด ์ฌ์ฉ๋์์ง๋ง, ํ์ฌ๋ Lucene์ ๊ธฐ๋ณธ ํฌํจ๋ Nori๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉด์ ์ฌ์ฉ ๋น๋๊ฐ ํฌ๊ฒ ์ค์๋ค.
์์ ์ ์์ ํ๋ข์ ์จ๋ดค๋ ๊ธฐ์ต์ผ๋ก๋ ๋ฏธ๋ฌํ๊ฒ ๊ตฌ๋ ธ๋ค... ์ง๊ธ์ ๋์์ง ์์ ๊ฒ ๊ฐ๊ธด ํ๋ค๋ง.
์ฌ์ฉ์ ์ฌ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ค๋ง ์ฌ์ฉ์ ์ฌ์ ์ CSV ๊ธฐ๋ฐ์ผ๋ก ๊ด๋ฆฌ๋๋ฉฐ, ๋ณ๊ฒฝ ์ ์ฌ์ ์ ๋ค์ ๋น๋ํ๊ฑฐ๋ ์ฌ๋ก๋ํด์ผ ํ๋ฏ๋ก ์ค์๊ฐ์ผ๋ก ๋์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ์๋ ๋ค์ ๋ถํธํ๋ค.
OOV ์ฒ๋ฆฌ๋ ์ฌ์ฉ์ ์ฌ์ ์์ค์ผ๋ก๋ง ์ ๊ณตํ๋ค.
๊ทธ ์ธ์๋ ๊ธฐ๋ฅ ์์ค์ด ๋๋ต nori์ ๋น์ทํ๋ค. ํ์ฌ ์๋ณ, ์กฐ์ฌ ์ ๊ฑฐ, ์ด๊ทผ ์ถ์ถ ๋ฑ ๊ธฐ๋ณธ์ ์ธ๊ฑด ์๋ค.
Kiwi
C++ ๊ตฌํ์ฒด๋ค.
์ธ์ด๋ณ ํฌํ
์ด ๊ด์ฐฎ๊ฒ ์ ๊ณต๋๊ณ , ํธ์์ฑ์ด ์ข๋ค.
๊ตฌํ ๋ฐฉ์์ด๋ ๊ธฐ๋ฅ ์์ค์ nori์ ๋น์ทํ๊ฑฐ๋ ๋ ํ๋ถํ ํธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ข ๋ ๋ฒ์ฉ์ ๊ฐ๊น๋ค.
ํ์ฌ ์๋ณ, ์กฐ์ฌ ์ ๊ฑฐ, ์ด๊ทผ ์ถ์ถ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ์ ๊ณตํ๊ณ , OOV ๊ธฐ๋ฅ๋ ๊ด์ฐฎ๊ฒ ์ ๊ณต์ด ๋๋ ํธ์ด๋ค.
ํนํ ์ต์ ๋ฒ์ ์์๋ ๋ฌธ๋งฅ ๊ฐ์ง์ฉ ๊ฒฝ๋ ๋ชจ๋ธ์ ๋ด์ฅํด์ ๊ณ ์ ๋ช
์ฌ๋ฅผ ๊ฝค ์ ์ถ์ถํ๋ค.
๋ค์ ์นํ์ด์ง์์ ์ฆ์ ํ
์คํธ๊ฐ ๊ฐ๋ฅํ๋ค.
https://kiwi.bab2min.pe.kr/

Open Korean Text
Scala ๊ตฌํ์ฒด์ด๋ ์ธ์ด๋ณ ํฌํ
๋ฒ์ ์ด ์กด์ฌํ๋ค.
ํธ์ํฐ ๊ฐ์ SNS์ ๊ธ์์ ํค์๋๋ฅผ ์ถ์ถํ๋ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก๋ค.
ํํ์ ๋ถ์๊ธฐ๋ผ๊ธฐ๋ณด๋ค๋ ๊ฐ๋ฒผ์ด ํ๊ตญ์ด ํ
์คํธ ์ ์ฒ๋ฆฌ ๋๊ตฌ์ ๊ฐ๊น๋ค.
ํ๊ตญ์ด ์ ๊ทํ, ํ ํฐํ, ํ์ฌ ํ๊น
, ์ด๊ตฌ ์ถ์ถ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, MeCab-ko๋ Kiwi, nori์ฒ๋ผ ์ ๊ตํ ํํ์ ๋ถ์ ํ์ง์ ๊ธฐ๋ํ๊ธฐ๋ ์ด๋ ต๋ค.
์ฅ์ ์ ์ฌ์ฉ์ด ์ฝ๊ณ ๋น๊ต์ ๊ฐ๋ณ๋ค๋ ์ ์ด๋ค.
ํนํ SNS ๋ฌธ์ฅ, ใ
ใ
/ใ
ใ
, ๋์ด์ฐ๊ธฐ ์ค๋ฅ, ๊ตฌ์ด์ฒด ํํ ๊ฐ์ ๋น์ ํ ํ
์คํธ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ๊ฐ์ ์ด ์๋ค.
๋ฐ๋ฉด ์ฌ์ฉ์ ์ฌ์ , ์ ๊ตํ ์ํ ๋ณต์, ํ์ฌ ์ธ์, OOV ์ฒ๋ฆฌ, ๊ฒ์ ์ธ๋ฑ์ฑ์ฉ ํ์ง ์ธก๋ฉด์์๋ ํ๊ณ๊ฐ ์๋ค.
๋ฐ๋ผ์ ๊ณ ํ์ง ํํ์ ๋ถ์์ด๋ ๋ธ๋๋๋ช
๋ณด์กด์ด ์ค์ํ ์์คํ
๋ณด๋ค๋, ๋น ๋ฅด๊ฒ ํค์๋๋ฅผ ๋ฝ๊ฑฐ๋ ๋น์ ํ ํ๊ตญ์ด ํ
์คํธ๋ฅผ ๋๋ต์ ์ผ๋ก๋ง ์ ๊ทํํ๋ ์ฉ๋์ ๋ ์ ํฉํ๋ค.
charabia
Rust ๊ตฌํ์ฒด๋ค. ๊ฒ์์ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก๋ค.
meilisearch์์ ์๊ธฐ๋ค ์ฐ๋ ค๊ณ ๋ง๋ค์๋๋ฐ, ์ฌ๊ธฐ์ ๊ธฐ์ ๋ง์ด ๊ฐ๋ค์ฐ๋๋ผ.
์ด๊ฒ๋ ํํ์ ๋ถ์๊ธฐ๋ณด๋ค๋ ๋ฒ์ฉ Tokenizer์ ๊ฐ๊น๋ค.
์ธ์ด๋ณ ํน์ฑ์ ๋ง๊ฒ ๊ธฐ๋ณธ์ ์ธ ๋จ์ด ๋ถ๋ฆฌ์ ์ ๊ทํ๋ฅผ ์ํํ๋ฉฐ, ํ๊ตญ์ด์ ๊ฒฝ์ฐ์๋ ๊ฐ๋ฒผ์ด ์์ค์ ํ ํฐํ๋ฅผ ์ ๊ณตํ๋ค.
์ฅ์ ์ ๋งค์ฐ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ฉฐ, ๋ค๊ตญ์ด๋ฅผ ๋ณ๋์ ๋ฌด๊ฑฐ์ด ํํ์ ๋ถ์๊ธฐ ์์ด ํ ๋ฒ์ ์ฒ๋ฆฌํ ์ ์๋ค๋ ์ ์ด๋ค.
๋ฐ๋ฉด ํ์ฌ ํ๊น
, ์ํ ๋ณต์, ์ฌ์ฉ์ ์ฌ์ , OOV ์ฒ๋ฆฌ ๋ฑ ์ ๊ตํ ํ๊ตญ์ด ํํ์ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์๋๋ค.
๋ฐ๋ผ์ ์ ๋ฌธ์ ์ธ ํ๊ตญ์ด ๋ถ์๋ณด๋ค๋ ๊ฒ์ ์ธ๋ฑ์ฑ์ด๋ ๊ฒ์์ ์ํ ๊ฐ๋ฒผ์ด ์ ์ฒ๋ฆฌ ์ฉ๋์ ์ ํฉํ๋ค.
์ฐธ์กฐ
https://github.com/meilisearch/charabia
https://github.com/open-korean-text/open-korean-text
https://github.com/bab2min/kiwi
https://bab2min.tistory.com/682
https://datascienceschool.net/03%20machine%20learning/03.01.04%20soynlp.html