Parser(ํ์)๋?
1. Parser(ํ์) ์ ์
ํ์(Parser)๋ ๋ฌธ์์ด ๋ฐ์ดํฐ(์ฝ๋, ๋ฌธ์, JSON ๋ฑ)๋ฅผ ํด์ํ๊ณ ๊ตฌ์กฐํํ๋ ์ญํ ์ ํ๋ ํ๋ก๊ทธ๋จ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
์ฃผ์ด์ง ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ๋ฒ์ ๋ง๊ฒ ๋ถ์ํ์ฌ ์๋ฏธ ์๋ ๊ตฌ์กฐ(ํธ๋ฆฌ, ๊ฐ์ฒด ๋ฑ)๋ก ๋ณํํ๋ ๊ฒ์ด ํต์ฌ ์ญํ ์ด๋ค.
2. ํ์์ ํ์์ฑ
- ๋ฐ์ดํฐ ๋ณํ – ์
๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ดํดํ ์ ์๋๋ก ๋ณํ
- ๋ฌธ๋ฒ ๊ฒ์ฆ – ์ฝ๋๋ ๋ฐ์ดํฐ๊ฐ ๋ฌธ๋ฒ์ ์ผ๋ก ์ฌ๋ฐ๋ฅธ์ง ๊ฒ์ฌ
- ๊ตฌ์กฐํ๋ ์ ๋ณด ์ ๊ณต – ์์ ๋ฐ์ดํฐ๋ฅผ ํธ๋ฆฌ, ๊ฐ์ฒด ๋ฑ์ผ๋ก ๋ณํํ์ฌ ์ฝ๊ฒ ํ์ฉํ ์ ์๋๋ก ํจ
3. ํ์์ ์ฃผ์ ์ ํ
ํ์๋ ํฌ๊ฒ ๊ตฌ๋ฌธ ๋ถ์ ๋์๊ณผ ๋ถ์ ๋ฐฉ์์ ๋ฐ๋ผ ๋ถ๋ฅํ ์ ์๋ค.
1๏ธโฃ ๋ฐ์ดํฐ ํฌ๋งท ๊ธฐ๋ฐ
์ ํ |
์ค๋ช
|
์์ |
JSON ํ์ |
JSON ๋ฐ์ดํฐ๋ฅผ ํ์ด์ฌ ๊ฐ์ฒด๋ก ๋ณํ |
`json.loads()` |
XML ํ์ |
XML ๋ฐ์ดํฐ๋ฅผ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ณํ |
`xml.etree.ElementTree` |
HTML ํ์ |
HTML ๋ฌธ์๋ฅผ ๊ตฌ์กฐํํ์ฌ ์ฒ๋ฆฌ |
`BeautifulSoup` |
2๏ธโฃ ๋ถ์ ๋ฐฉ์ ๊ธฐ๋ฐ
์ ํ |
์ค๋ช
|
์์ |
๊ตฌ๋ฌธ ๋ถ์(Syntactic Parsing) |
๋ฌธ๋ฒ์ ๊ฒ์ฌํ๊ณ ํธ๋ฆฌ ๊ตฌ์กฐ ์์ฑ |
์ปดํ์ผ๋ฌ, SQL ํ์ |
์๋ฏธ ๋ถ์(Semantic Parsing) |
์๋ฏธ๋ฅผ ๋ถ์ํ์ฌ ์คํ ๊ฐ๋ฅํ ์ฝ๋ ๋ณํ |
์์ฐ์ด ์ฒ๋ฆฌ(NLP) |
ํ ํฐ ํ์ฑ(Token Parsing) |
์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํ ํฐํํ์ฌ ๊ตฌ์กฐํ |
`re`(์ ๊ท์), Lex & Yacc |
4. ํ์ ์ฌ์ฉ ์์
1๏ธโฃ JSON ๋ฐ์ดํฐ ํ์ฑ
import json
data = '{"name": "Alice", "age": 25}'
parsed_data = json.loads(data) # JSON ๋ฌธ์์ด → Python ๋์
๋๋ฆฌ ๋ณํ
print(parsed_data["name"]) # "Alice"
2๏ธโฃ HTML ํ์ฑ (BeautifulSoup)
from bs4 import BeautifulSoup
html = "<html><body><h1>Hello, World!</h1></body></html>"
soup = BeautifulSoup(html, "html.parser")
print(soup.h1.text) # "Hello, World!"
3๏ธโฃ ์์ฐ์ด ์ฒ๋ฆฌ(NLP)์์์ ํ์
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("I love programming.")
for token in doc:
print(token.text, token.dep_) # ๋จ์ด ๋ฐ ๋ฌธ๋ฒ ๊ตฌ์กฐ ์ถ๋ ฅ
5. ํ์์ ํ์ฉ ์ฌ๋ก
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ปดํ์ผ๋ฌ – ์์ค ์ฝ๋๋ฅผ AST(Abstract Syntax Tree)๋ก ๋ณํ
- HTML ๋ฐ์ดํฐ ํฌ๋กค๋ง – ์นํ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ์ฌ ๋ถ์
- ์์ฐ์ด ์ฒ๋ฆฌ(NLP) – ๋ฌธ์ฅ์ ๊ตฌ๋ฌธ ๋ถ์ํ์ฌ ์๋ฏธ ๋ถ์
- JSON/XML API ์ฒ๋ฆฌ – API ์๋ต ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ์ฌ ํ์ฉ
Parser ์ ๋ฆฌ:
โ๏ธ ํ์(Parser)๋ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ๊ตฌ์กฐํํ๋ ๋๊ตฌ์ด๋ค~!
โ๏ธ JSON, XML, HTML ๋ฑ ๋ค์ํ ํ์์ ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ ์ ์๋ค~!
โ๏ธ ์ปดํ์ผ๋ฌ, ์น ํฌ๋กค๋ง, NLP ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ํ์ฉ๋๋ค~!
โ๏ธ ํ์๋ฅผ ํ์ฉํ๋ฉด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ณํ์ ํจ์จ์ ์ผ๋ก ํ ์ ์๋ค~!