ํค์๋
- ์์ฐ์ด ์ฒ๋ฆฌ
- ํ ์คํธ ์ ์ฒ๋ฆฌ
- ๋ฑ์ฅ ํ์(๋น๋์) ๊ธฐ๋ฐ ๋จ์ด ํํ(๋ฒกํฐํ)
์์ฐ์ด ์ฒ๋ฆฌ
- ์์ฐ์ด : ์ฌ๋๋ค์ด ์ผ์์ ์ผ๋ก ์ฐ๋ ์ธ์ด, ์์ฐ์ ์ผ๋ก ๋ฐ์๋ ์ธ์ด <-> ์ธ๊ณต์ด : ์ธ๊ณต์ ์ผ๋ก ๋ง๋ค์ด์ง ์ธ์ด
์์ฐ์ด ์ฒ๋ฆฌ๋ก ํ ์ ์๋ ์ผ๋ค
- ์์ฐ์ด ์ดํด(Natural Language Understanding ; NLU)
- ๋ถ๋ฅ : ๋ด์ค ๊ธฐ์ฌ ๋ถ๋ฅ, ๊ฐ์ฑ ๋ถ์
- ์์ฐ์ด ์ถ๋ก : ์ ์ ์ ๋ํ ๊ฐ์ค์ ์ฐธ/๊ฑฐ์ง ํ๋ณ
- ๊ธฐ๊ณ ๋ ํด : ํน์ ์ง๋ฌธ์ ๋ํ ์ง๋ฌธ์ ๋ต์ ํ๋ ๊ฒ(๋น๋ฌธํ ์ง๋ฌธ ํ๋ฏ)
- ํ์ฌ ํ๊น , ๊ฐ์ฒด๋ช ์ธ์ ๋ฑ
- ์์ฐ์ด ์์ฑ(Natural Language Generation ; NLG)
- ํ ์คํธ ์์ฑ : ex) ๋ด์ค ๊ธฐ์ฌ ์์ฑ, ๊ฐ์ฌ ์์ฑ ๋ฑ
- ์ดํด์ ์์ฑ ๋์(NLU/NLG)
- ๊ธฐ๊ณ ๋ฒ์ญ
- ์์ฝ : ์ถ์ถ ์์ฝ(๋ฌธ์ ๋ด์์ ํด๋น ๋ฌธ์๋ฅผ ์์ฝํ๋ ๋ถ๋ถ์ ์ฐพ์๋ด๊ธฐ), ์์ฑ ์์ฝ(๋ฌธ์๋ฅผ ์ ํํํ๋ ์์ฝ๋ฌธ ์์ฑ)
- ์ฑ๋ด : TOD(Task Oriented Dialog, ํน์ ํ ์คํฌ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ฑ ๋ด -> NLU์ ์ข๋ ๊ฐ๊น์), ODD(Open Domain Dialog, ๋ํํ)
- ๊ธฐํ
- TTS(Text to Speech), STT(Speach to Text), Image Captioning ๋ฑ
ํ ์คํธ ์ ์ฒ๋ฆฌ(Text Prprocessing)
- ๋ด์ฅ๋ฉ์๋ ํ์ฉ ex) lower(), replace()
- ์ ๊ท ํํ์(Regular expression ; Regex) -> import re
- ๋ถ์ฉ์ด(Stop words) ์ฒ๋ฆฌ
- ํต๊ณ์ ํธ๋ฆฌ๋ฐ(Trimming)
- ์ด๊ฐ ์ถ์ถ(Stemming) : ๋จ์ด์ ์๋ฏธ๊ฐ ํฌํจ๋ ๋ถ๋ถ(์ด๊ฐ)๋ง ์ถ์ถ -> from nltk.stem import PorterStemmer
- ํ์ ์ด ์ถ์ถ(Lemmatization) : ๊ธฐ๋ณธ ์ฌ์ ํ ๋จ์ด ํํ๋ฅผ ์ถ์ถ -> spacy์์ ์ ๊ณต๋จ
์ ์ฒ๋ฆฌ ํ์ ์ด์
- ํ ํฐ์ด ๋ฑ์ฅํ ํ์ ๊ธฐ๋ฐ์ ๋ฒกํฐ ํํ์์ ์ ์ฒด ๋ง๋ญ์น์ ์กด์ฌํ๋ ๋จ์ด์ ์ข ๋ฅ๊ฐ ๋ฐ์ดํฐ์ ์ ์ปฌ๋ผ์ด ๋จ
- ์ฆ, ๋จ์ด๋ฅผ ์ต๋ํ ์ค์ฌ์ค์ผ ์ปฌ๋ผ์ ๊ฐฏ์๋ฅผ ์ค์ผ ์ ์๊ณ ์ด๋ ๊ณง ์ฐจ์์ ์ ์ฃผ๋ฅผ ๋ฐฉ์งํ ์ ์๋ ํจ๊ณผ
spacy๋ฅผ ์ด์ฉํ ๋์ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋
import spacy
from spacy.tokenizer import Tokenizer
nlp = spacy.load("en_core_web_sm")
tokenizer = Tokenizer(nlp.vocab)
์ ๊ทํํ์
- ๊ตฌ๋์ , ํน์๋ฌธ์ ๋ฑ ํ์์๋ ๋ฌธ์๊ฐ ๋ง๋ญ์น ๋ด์ ์์ ๋, ํ ํฐํ๊ฐ ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์
- ์ด๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ์ฌ์ฉ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ด ์ ๊ทํํ์(regex)
import re
regex = r"[^a-zA-Z0-9 ]" # a~z, A~Z, 0~9 ๊ฐ ์๋ ๊ฒฝ์ฐ(^)๋ฅผ ์๋ฏธ
# ์ ๊ท์์ ์ ์ฉํ ์คํธ๋ง
test_str = ("(Natural Language Processing) is easy!, AI!\n")
# ์นํํ ๋ฌธ์
subst = ""
result = re.sub(regex, subst, test_str)
result
Natural Language Processing is easy AI
์ฆ, ์์ regex์ ํด๋นํ๋ ๋ฌธ์๋ค์ ์ ๋ถ '' ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊ฟ์ค
๋ฒกํฐํ
- ์์ฐ์ด๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋๋ก ๋ฒกํฐ ํํ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ณผ์
- ๋ฑ์ฅ ํ์ ๊ธฐ๋ฐ ๋จ์ด ํํ(Count-based Representation) : ๋จ์ด๊ฐ ๋ฌธ์์ ๋ฑ์ฅํ๋ ํ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฒกํฐํ
- TF(Bag-of-Words) : CounterVerctorizer
- TF-IDF : TfidfVectorizer
- ๋ถํฌ ๊ธฐ๋ฐ์ ๋จ์ด ํํ(Distributed Representation) : ํ๊ฒ ๋จ์ด ์ฃผ๋ณ์ ์๋ ๋จ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฒกํฐํ
- Word2Vec
- GloVe
- fastText
๊ฐ๋ ์ ๋ํ ์ ๋ฆฌ
'๐ฟ Data > ๋ถํธ์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL]78. ์ํ ์ ๊ฒฝ๋ง(RNN) (0) | 2022.03.04 |
---|---|
[TIL]77. ๋จ์ด ๋ถ์ฐ ํํ(Distributed Representation) (0) | 2022.03.03 |
[TIL]75. ์ ๊ฒฝ๋ง ๊ฐ๋ ์ ๋ฆฌ (0) | 2022.03.01 |
[TIL]74. ์ ๊ฒฝ๋ง - Hyper parameter (0) | 2022.02.25 |
[TIL]73. ๋ ๋์ ์ ๊ฒฝ๋ง ํ์ต์ ์ํ ๋ฐฉ๋ฒ (0) | 2022.02.24 |