header-img
Info :
728x90

3.1 ํ† ํฌ๋‚˜์ด์ง• ์†Œ๊ฐœ

์ž์—ฐ์–ด ์ฒ˜๋ฆฌ Natural Language Processing (NLP) : ์ปดํ“จํ„ฐ ๋ถ„์•ผ์—์„œ๋Š” ์ž์—ฐ์–ด ์˜๋ฏธ๋ฅผ ๋ถ„์„ํ•ด ์ปดํ“จํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ผ

 

์ž์—ฐ์–ด๋ฅผ ์ปดํ“จํ„ฐ์— ์ดํ•ด์‹œํ‚ค๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•

   1. ์šฐ์„  ์–ด๋–ค ๋ฌธ์žฅ์„ ์ผ์ •ํ•œ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์–ด๋“ค๋กœ ๋‚˜๋ˆˆ๋‹ค.

   2. ๋‚˜๋ˆ ์ง„ ๋‹จ์–ด๋“ค์„ ์ด์šฉํ•˜์—ฌ ์˜๋ฏธ๋ฅผ ๋ถ„์„ํ•œ๋‹ค. - ์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋‹จ์–ด๋“ค์„ ํ† ํฐ token ์ด๋ผ๊ณ  ํ•จ.

 

ํ† ํฌ๋‚˜์ด์ง•

   - ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์—์„œ ํ† ํฐ ๋‹จ์œ„๋กœ ์ •๋ณด๋ฅผ ๋‚˜๋ˆ„๋Š” ์ž‘์—…

   - ๋ฌธ์žฅ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ œ์ผ ์ฒ˜์Œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์ž‘์—…์œผ๋กœ ์ฃผ๋กœ ํ…์ŠคํŠธ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์‚ฌ์šฉ

   - ํ† ํฌ๋‚˜์ด์ง•์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์Œ

 

3.2 KoNLPy

- ๊ธฐ๋ณธ์ ์ธ ํ•œ๊ตญ์–ด ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

- ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด, GPL v3 ๋ผ์ด์„ ์Šค(๋˜๋Š” ๊ทธ ์ด์ƒ)์— ๋”ฐ๋ผ ์ž์œ ๋กญ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํ•œ๊ตญ์–ด ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

3.2.1 Kkma

- ์„œ์šธ๋Œ€ํ•™๊ต IDS Intelligent Data System ์—ฐ๊ตฌ์‹ค์—์„œ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœํ•œ ํ•œ๊ตญ์–ด ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ

- '๊ผฌ๊ผฌ๋งˆ'๋กœ ๋ฐœ์Œํ•˜์—ฌ, GPL v2 ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฆ„

- ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

from konlpy.tag inport Kkma

- Kkma ๋ชจ๋“ˆ์˜ ํ•จ์ˆ˜ ์„ค๋ช…

ํ•จ์ˆ˜ ์„ค๋ช…
morphs(phrase) ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์„ ํ˜•ํƒœ์†Œ ๋‹จ์œ„๋กœ ํ† ํฌ๋‚˜์ด์ง•. ํ† ํฌ๋‚˜์ด์ง•๋œ ํ˜•ํƒœ์†Œ๋“ค์€ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜.
nouns(phrase) ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์—์„œ ํ’ˆ์‚ฌ๊ฐ€ ๋ช…์‚ฌ์ธ ํ† ํฐ๋งŒ ์ถ”์ถœ.
pos(phrase, flatten=True) POS tagger๋ผ ๋ถ€๋ฅด๋ฉฐ, ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์—์„œ ํ˜•ํƒœ์†Œ๋ฅผ ์ถ”์ถœํ•œ ๋’ค ํ’ˆ์‚ฌ ํƒœ๊น…. ์ถ”์ถœ๋œ ํ˜•ํƒœ์†Œ์™€ ๊ทธ ํ˜•ํƒœ์†Œ์˜ ํ’ˆ์‚ฌ๊ฐ€ ํŠœํ”Œ ํ˜•ํƒœ๋กœ ๋ฌถ์—ฌ์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜.
sentences(phrase) ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ์—ฌ๋Ÿฌ ๋ฌธ์žฅ์„ ๋ถ„๋ฆฌํ•ด์ฃผ๋Š” ์—ญํ• . ๋ถ„๋ฆฌ๋œ ๋ฌธ์žฅ์€ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜

- Kkma ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ์‚ฌ์šฉ

from konlpy.tag import Kkma

# Kkma ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ๊ฐ์ฒด ์ƒ์„ฑ
kkma = Kkma()

text = "์•„๋ฒ„์ง€๊ฐ€ ๋ฐฉ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค."

# ํ˜•ํƒœ์†Œ ์ถ”์ถœ
morphs = kkma.morphs(text)
print(morphs)

# ํ˜•ํƒœ์†Œ์™€ ํ’ˆ์‚ฌ ํƒœ๊ทธ ์ถ”์ถœ
pos = kkma.pos(text)
print(pos)

# ๋ช…์‚ฌ๋งŒ ์ถ”์ถœ
nouns = kkma.nouns(text)
print(nouns)

# ๋ฌธ์žฅ ๋ถ„๋ฆฌ
sentences = "์˜ค๋Š˜ ๋‚ ์”จ๋Š” ์–ด๋•Œ์š”? ๋‚ด์ผ์€ ๋ฅ๋‹ค๋˜๋ฐ."
s = kkma.sentences(sentences)
print(s)

- Kkma ํ’ˆ์‚ฌ ํƒœ๊ทธ kkma.snu.ac.kr/documents/?doc=postag 

ํ’ˆ์‚ฌ ์„ค๋ช…
NNG ์ผ๋ฐ˜ ๋ช…์‚ฌ
JKS ์ฃผ๊ฒฉ ์กฐ์‚ฌ
JKM ๋ถ€์‚ฌ๊ฒฉ ์กฐ์‚ฌ
VV ๋™์‚ฌ
EFN ํ‰์„œํ˜• ์ข…๊ฒฐ ์–ด๋ฏธ
SF ๋งˆ์นจํ‘œ, ๋ฌผ์Œํ‘œ, ๋Š๋‚Œํ‘œ

 

3.2.2 Komoran

- Shineware์—์„œ ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœํ•œ ํ•œ๊ตญ์–ด ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ. '์ฝ”๋ชจ๋ž€'

- Apache ๋ผ์ด์„ ์Šค 2.0์„ ๋”ฐ๋ฅด๋Š” ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด

- ๊ฒฝ๋Ÿ‰ํ™” ๋ฒ„์ „ ๆœ‰. ๋‹ค๋ฅธ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ์™€ ๋‹ค๋ฅด๊ฒŒ ๊ณต๋ฐฑ์ด ํฌํ•จ๋œ ํ˜•ํƒœ์†Œ ๋‹จ์œ„๋กœ๋„ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•ด ๅคš ์‚ฌ์šฉ.

- Komaran ๋ชจ๋“ˆ์˜ ํ•จ์ˆ˜ ์„ค๋ช…

ํ•จ์ˆ˜ ์„ค๋ช…
morphs(phrase) ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์„ ํ˜•ํƒœ์†Œ ๋‹จ์œ„๋กœ ํ† ํฌ๋‚˜์ด์ง•. ํ† ํฌ๋‚˜์ด์ง•๋œ ํ˜•ํƒœ์†Œ๋“ค์€ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜.
nouns(phrase) ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์—์„œ ํ’ˆ์‚ฌ๊ฐ€ ๋ช…์‚ฌ์ธ ํ† ํฐ๋“ค๋งŒ ์ถ”์ถœ.
pos(phrase, flatten=True) POS tagger๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์—์„œ ํ˜•ํƒœ์†Œ๋ฅผ ์ถ”์ถœํ•œ ๋’ค ํ’ˆ์‚ฌ ํƒœ๊น…. ์ถ”์ถœ๋œ ํ˜•ํƒœ์†Œ์™€ ๊ทธ ํ˜•ํƒœ์†Œ์˜ ํ’ˆ์‚ฌ๊ฐ€ ํŠœํ”Œ ํ˜•ํƒœ๋กœ ๋ฌถ์—ฌ์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜

- Komoran ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ์‚ฌ์šฉ

from konlpy.tag import Komoran

# ์ฝ”๋ชจ๋ž€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ๊ฐ์ฒด ์ƒ์„ฑ
komoran = Komoran()

text = "์•„๋ฒ„์ง€๊ฐ€ ๋ฐฉ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค."

# ํ˜•ํƒœ์†Œ ์ถ”์ถœ
morphs = komoran.morphs(text)
print(morphs)

# ํ˜•ํƒœ์†Œ์™€ ํ’ˆ์‚ฌ ํƒœ๊ทธ ์ถ”์ถœ
pos = komoran.pos(text)
print(pos)

# ๋ช…์‚ฌ๋งŒ ์ถ”์ถœ
nouns = komoran.nouns(text)
print(nouns)

- ํ’ˆ์‚ฌ ํƒœ๊ทธ docs.komoran.kr/firststep/postype.html ์ฐธ๊ณ 

 

3.2.3 Okt

- Okt Open-source Korean Text Processor ์€ ํŠธ์œ„ํ„ฐ์—์„œ ๊ฐœ๋ฐœํ•œ Twitter ํ•œ๊ตญ์–ด ์ฒ˜๋ฆฌ๊ธฐ์—์„œ ํŒŒ์ƒ๋œ ์˜คํ”ˆ ์†Œ์Šค(์•„ํŒŒ์น˜ 2.0 ๋ผ์ด์„ ์Šค) ํ•œ๊ตญ์–ด ์ฒ˜๋ฆฌ๊ธฐ

ํ•จ์ˆ˜ ์„ค๋ช…
morphs(phrase) ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์„ ํ˜•ํƒœ์†Œ ๋‹จ์œ„๋กœ ํ† ํฌ๋‚˜์ด์ง•.
ํ† ํฌ๋‚˜์ด์ง•๋œ ํ˜•ํƒœ์†Œ๋“ค์€ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜.
nouns(phrase) ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์—์„œ ํ’ˆ์‚ฌ๊ฐ€ ๋ช…์‚ฌ์ธ ํ† ํฐ๋“ค๋งŒ ์ถ”์ถœ.
pos(phrase, stem=False, join=False) POS tagger๋ผ ๋ถ€๋ฅด๋ฉฐ, ์ธ์ž๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์žฅ์—์„œ ํ˜•ํƒœ์†Œ๋ฅผ ์ถ”์ถœํ•œ ๋’ค ํ’ˆ์‚ฌ ํƒœ๊น… ์ง„ํ–‰.
์ถ”์ถœํ•œ ํ˜•ํƒœ์†Œ์™€ ๊ทธ ํ˜•ํƒœ์†Œ์˜ ํ’ˆ์‚ฌ๊ฐ€ ํŠœํ”Œ ํ˜•ํƒœ๋กœ ๋ฌถ์—ฌ์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜๋จ.
normalize(phrase) ์ž…๋ ฅํ•œ ๋ฌธ์žฅ ์ •๊ทœํ™”
ex) ์‚ฌ๋ž‘ํ–Œใ…‹ใ…‹ > ์‚ฌ๋ž‘ํ•ดใ…‹ใ…‹ใ…‹
phrases(phrase) ์ž…๋ ฅํ•œ ๋ฌธ์žฅ ์–ด๊ตฌ ์ถ”์ถœ
ex) [์ž…๋ ฅ] ์˜ค๋Š˜ ๋‚ ์”จ๊ฐ€ ์กฐ์•„์š”
      [์ถœ๋ ฅ] ['์˜ค๋Š˜', '์˜ค๋Š˜ ๋‚ ์”จ', '๋‚ ์”จ']

- Okt ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ์‚ฌ์šฉ

from konlph.tag import Okt

# Okt ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ๊ฐ์ฒด ์ƒ์„ฑ
okt = Okt()

text = "์•„๋ฒ„์ง€๊ฐ€ ๋ฐฉ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค."

# ํ˜•ํƒœ์†Œ ์ถ”์ถœ
morphs = okt.morphs(text)
print(morphs)

# ํ˜•ํƒœ์†Œ์™€ ํ’ˆ์‚ฌ ํƒœ๊ทธ ์ถ”์ถœ
pos = okt.pos(text)
print(pos)

# ๋ช…์‚ฌ๋งŒ ์ถ”์ถœ
nouns = okt.nouns(text)
print(nouns)

# ์ •๊ทœํ™”, ์–ด๊ตฌ ์ถ”์ถœ
text = "์˜ค๋Š˜ ๋‚ ์”จ๊ฐ€ ์ข‹์•„์šฌใ…‹ใ…‹"
print(okt.normalize(text))
print(okt.phrase(text))

- Okt ํ’ˆ์‚ฌ ํƒœ๊ทธ ํ‘œ https://openkoreantext.org/

ํ’ˆ์‚ฌ ์„ค๋ช…
Noun ๋ช…์‚ฌ
Verb ๋™์‚ฌ
Adjective ํ˜•์šฉ์‚ฌ
Josa ์กฐ์‚ฌ
Punctuation ๊ตฌ๋‘์ 

3.2.4 ์‚ฌ์šฉ์ž ์‚ฌ์ „ ๊ตฌ์ถ•

- ์ƒˆ๋กญ๊ฒŒ ์ƒ๊ฒจ๋‚˜๋Š” ๋‹จ์–ด๋‚˜ ๋ฌธ์žฅ์€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ์—์„œ ์ธ์‹์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.

- Komoran์ด ๋‹ค๋ฅธ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ์— ๋น„ํ•ด ์‚ฌ์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํŽธ๋ฆฌํ•˜๋ฉฐ ํ˜•ํƒœ์†Œ ๋ถ„์„ ์„ฑ๋Šฅ๊ณผ ์†๋„๊ฐ€ ๊ดœ์ฐฎ์€ ํŽธ.

- ์‚ฌ์šฉ์ž ๋‹จ์–ด ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•

# [๋‹จ์–ด] Tab [ํ’ˆ์‚ฌ]
์—”์—˜ํ”ผ Tab NNG
๋‚˜๋Š” ๋‚ด์ผ, ์–ด์ œ์˜ ๋„ˆ์™€ ๋งŒ๋‚œ๋‹ค Tab NNG

 

3.3 ๋งˆ์น˜๋ฉฐ

- KoNLPy ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ๋น„๊ต

ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ์žฅ์  ๋‹จ์ 
Kkma ๋ถ„์„ ํ’ˆ์งˆ์ด ์ข‹์Œ
์ง€์›ํ•˜๋Š” ํ’ˆ์‚ฌ ํƒœ๊ทธ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์Œ
๋ถ„์„ ์†๋„๊ฐ€ ๋Š๋ฆผ
์‚ฌ์šฉ์ž ์‚ฌ์ „์œผ๋กœ ์ถ”๊ฐ€ํ•œ ๋ณตํ•ฉ ๋ช…์‚ฌ์— ๋Œ€ํ•ด ๋ถˆ์™„์ „ํ•˜๊ฒŒ ๋™์ž‘ํ•จ
Komoran ์ž์†Œ๊ฐ€ ๋ถ„๋ฆฌ๋œ ๋ฌธ์žฅ์ด๋‚˜ ์˜คํƒˆ์ž์— ๊ฐ•ํ•จ
์‚ฌ์šฉ์ž ์‚ฌ์ „ ๊ด€๋ฆฌ ์šฉ์ด
์ ๋‹นํ•œ ๋ถ„์„ ํ’ˆ์งˆ๊ณผ ๋ถ„์„ ์†๋„
Okt ๋งค์šฐ ๋น ๋ฅธ ๋ถ„์„ ์†๋„
์ •๊ทœํ™” ๊ธฐ๋Šฅ ์ง€์›
์‚ฌ์šฉ์ž ์‚ฌ์ „ ๊ด€๋ฆฌ ์–ด๋ ค์›€
์šฉ์–ธ ๋ถ„์„์— ์ผ๊ด€์„ฑ์ด ๋ถ€์กฑํ•จ

 

728x90
๋”๋ณด๊ธฐ
IT ๊ธฐ์ˆ /AI