ย
๊ธ์ ์ฝ๊ฑฐ๋ ์ธ ๋ ๋จ์ํ ๋ฌธ์ฅ์์๋ ํ ๋จ์ด๊ฐ ํ ๋ฌธ๋ฒ์ ์ญํ ์ ๋ด๋นํ์ง๋ง, ๋ฌธ์ฅ์ด ์กฐ๊ธ์ด๋ผ๋ ๋ณต์กํด์ง๋ฉด ์ฌ๋ฌ ๋จ์ด๊ฐ ๊ตฌ๋ฅผ ์ด๋ฃจ์ด ํ ๊ฐ์ง ์ญํ ์ ๊ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด, โ๋๋ ์ค๋ ๋ง์๋ ๋ฐฅ์ ๋จน์์ดโ ๋ผ๋ ๋ฌธ์ฅ์์ ๋ชฉ์ ์ด๋ 2๊ฐ์ ๋จ์ด๋ก ๊ตฌ์ฑ๋ ๋จ์ด๊ตฌ, โ๋ง์๋ ๋ฐฅโ ์
๋๋ค. NLP ์์
์์์๋ ๋์ผํ๊ฒ ๋ฌธ์ฅ์ ์ฝ๊ณ ์ธ ๋, ์ฌ๋ฌ ๋จ์ด๋ก ๊ตฌ์ฑ๋ ๊ตฌ๋ฌธ์ ์ดํดํ๊ณ ํ์ฉํ ์ค ์์์ผํฉ๋๋ค. ์ด๋, ์ฌ๋ฌ ๋จ์ด๋ฅผ ํ๋์ ๊ตฌ๋ก ์ดํดํ๋ ๊ฒ์ ๋ถ๋ถ ๊ตฌ๋ฌธ ๋ถ์(shallow parsing) ๋๋ ์ฒญํฌ ๋๋๊ธฐ(chunking)์ด๋ผ๊ณ ํฉ๋๋ค.
ย
๋ถ๋ถ ๊ตฌ๋ฌธ ๋ถ์
๋ถ๋ถ ๊ตฌ๋ฌธ ๋ถ์์ ์ฌ๋ฌ ๊ฐ์ ํํ์ ํน์ ๋จ์ด๊ฐ ๊ตฌ๋ฌธ์ ์ผ๋ก ํ๋์ ๊ตฌ์กฐ์ ํฌํจ๋ ๊ฒฝ์ฐ, ๋จ์ด๋ค์ ํ๋์ ๋จ์๋ก ๋ฌถ์ด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ์ฆ ๋ถ๋ถ ๊ตฌ๋ฌธ ๋ถ์์ ๋ชฉ์ ์ ๋ช
์ฌ, ๋์ฌ, ํ์ฉ์ฌ ๋ฑ์ ๋ค์ํ ๋ฌธ๋ฒ ์์๋ก ๊ตฌ์ฑ๋ ๊ณ ์ฐจ์์ ๋จ์๋ฅผ ๋ค๋ฃจ๋ ๊ฒ์ผ๋ก, ๋ ๋์ ์์ค์ ๋ชจ๋์์ ์ฝ๊ฒ ๊ตฌ๋ฌธ์ ํ์ฉํ ์ ์๋๋ก ํฉ๋๋ค. ๋ช
์ฌ๊ตฌ, ๋์ฌ๊ตฌ ๋ฑ์ ๋ค์ํ ๊ตฌ๋ฌธ์ ๋ถ์ํด๋ผ ์ ์์ต๋๋ค.
ย
์์ด์ฒ๋ผ ๋ง์ด ์ฌ์ฉํ๋ ์ธ์ด์ ๋ํด์๋ ๋ถ๋ถ ๊ตฌ๋ฌธ ๋ถ์์ ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค. spaCy ํจํค์ง๋ฅผ ํตํด ๋ถ๋ถ ๊ตฌ๋ฌธ ๋ถ์์ ์งํํ ์ ์์ต๋๋ค. ์๋ ์์ ์ฝ๋์์๋ โDo not count the eggs before they hatchโ ๋ผ๋ ๋ฌธ์ฅ์ ๋ํด ๋ถ๋ถ ๊ตฌ๋ฌธ ๋ถ์์ ํตํด ๋ช
์ฌ๊ตฌ๋ฅผ ์ถ์ถํฉ๋๋ค.
import spacy nlp = spacy.load('en') doc = nlp(u"Do not count the eggs before they hatch") for chunk in doc.noun_chunks: print('{} - {}'.format(chunk, chunk.label_))
ย
์ ๋ฌธ์ฅ์์ ๋จ์ํ ๋ช
์ฌ ๋จ์๋ก eggs, they ๋ง ์ถ์ถํ๋ ๊ฒ์ด ์๋๋ผ, ๊ตฌ๋ฌธ์ ์ผ๋ก ํจ๊ป ๋ชฉ์ ์ด๋ฅผ ๊ตฌ์ฑํ๋ the eggs๋ฅผ ๊ตฌ ๋จ์๋ก ์ ์ถ์ถํด๋ด๋ ๊ฒ์ ์๋ ์ถ๋ ฅ ๊ฒฐ๊ณผ์์ ๋ณผ ์ ์์ต๋๋ค.
[output] the eggs - NP they - NP
ย
๊ฐ์ฒด๋ช
๋ ๋ค๋ฅธ ์ ์ฉํ ๋ถ๋ถ ๊ตฌ๋ฌธ ๋ถ์ ๋จ์๋ ๊ฐ์ฒด๋ช
(named entity)์ ํ์ฉํ๋ ๊ฒ์
๋๋ค. ์์ 2-5 ๋จ์ด ๋ถ๋ฅํ๊ธฐ: ํ์ฌ ํ๊น
์์ ์ธ๊ธํ ๊ฒ ์ฒ๋ผ โCoca Colaโ๋ โDeep Daivโ์ ๊ฐ์ด ๋ฌธ๋ฒ์ ์ผ๋ก๋ ํจ๊ป ์๋๊ฒ ์ด์ํ ์ ์์ผ๋, ๊ณ ์ ๋ช
์ฌ๋ก์จ ํน์ ํ ๊ฐ์ฒด๋ฅผ ์ง์นญํ ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋จ์ด๊ตฌ๋ฅผ ๋ฌธ์ฅ ์ ๋ช
์ฌ๊ตฌ๋ฅผ ๋ถ์ํ๋ ๋จ์๋ก ํ์ฉํ ์ ์์ต๋๋ค.
John was born in Chicken, Alaska and studied at Cranberry Lemon University -> John : ์ฌ๋ ์ด๋ฆ -> Chicken : ์ง๋ช -> Alaska : ์ง๋ช -> Cranberry Lemon University : ํ๊ต๋ช
ย
ย
์ด์ ๊ธ ์ฝ๊ธฐ