(2강) 자연어의 전처리
Last updated
Was this helpful?
Last updated
Was this helpful?
전처리
원시 데이터(rawdata)를 기계 학습 모델이 학습하는데 적합하게 만드는 프로세스
학습에 사용될 데이터를 수집&가공하는 모든 프로세스
전처리가 필요한 이유
Task의 성능을 가장 확실하게 올릴 수 있는 방법! 모델을 아무리 바꾸고, 튜닝하더라도, 데이터 자체가 문제가 있다면 성능이 나올 수 없다. 가장 중요한 것은 데이터이다.
자연어를 어떤 단위로 관찰할 것인지
토큰화(Tokenizing)
주어진 데이터를 토큰(Token)이라 불리는 단위로 나누는 작업
토큰이 되는 기준은 다를 수 있음(어절,단어,형태소,음절,자소 등)
문장 토큰화(SentenceTokenizing)
문장 분리
단어 토큰화(WordTokenizing)
구두점 분리,단어 분리 “Hello, World!”->“Hello”,“,”,“World”,“!”
!pip install newspaper3k
newspaper3k는 url을 입력하면 뉴스기사의 제목과 컨텐츠를 자동으로 분류해서 크롤링 할 수 있다.
import newspaper
newspaper.languages()
Your available languages are:
input code full name
id Indonesian
ko Korean
ja Japanese
zh Chinese
it Italian
ar Arabic
fi Finnish
vi Vietnamese
nb Norwegian (Bokmål)
sl Slovenian
sr Serbian
no Norwegian
sv Swedish
he Hebrew
mk Macedonian
et Estonian
nl Dutch
pl Polish
hi Hindi
uk Ukrainian
ro Romanian
ru Russian
fr French
fa Persian
tr Turkish
hu Hungarian
hr Croatian
bg Bulgarian
el Greek
sw Swahili
de German
es Spanish
be Belarusian
da Danish
pt Portuguese
en English
한국어를 제공하는 것을 알 수 있다.
뉴스기사는 재배포 역시 저작권에 위배되기 때문에 매우 주의해야한다. 그래서 보통 실습에서는 저작권에서 비교적 자유로운 위키트리 뉴스 데이터를 사용한다.
from newspaper import Article
news_url = "https://www.wikitree.co.kr/articles/252931"
article = Article(news_url, language='ko')
article.download()
article.parse()
print('title:', article.title)
print('context:', article.text)
title: 알파고에 첫승 거두고 미소짓는 이세돌 사진
context: 이하 뉴스1&인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단
이하 뉴스1
인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단의 사진이 화제다.
13일 서울 광화문 포시즌스 호텔에서 열린 '구글 딥마인드 챌린지 매치'에서 이세돌 9단은 알파고와의 제4국에서 승리했다. 이날 대국장을 빠져나가는 이세돌 9단의 모습이 사진에 포착됐다.
이세돌 9단은 상의 주머니에 양손을 넣고 옅은 미소를 지었다. 이 사진은 SNS에서 화제를 모았다.
오늘 알파고에게 승리하고 대국장 빠져나가는 이세돌이라는데ㅋㅋㅋㅋㅋㅋㅋ 포토제닉ㅋㅋㅋㅋㅋㅋㅋ 이대로 헐리웃 영화 만들어지고 포스터 소취요 pic.twitter.com/4IRFJu18hx — 조드윅 앓는 서린 (@katharine_stark) 2016년 3월 13일
대국을 마친 뒤, 이세돌 9단은 "한판 이겼는데 이렇게까지 축하를 받아보는 것은 처음"이라고 말했다. 이세돌 9단은 기자회견장에도 함박 웃음을 감추지 못했다.
추가적인 전처리 실습을 위해 뉴스에서 많이 포함되는 예제 텍스트를 추가한다.
context = article.text.split('\n')
context.append("<h1>여기에 태그가 있네요!</h1> <h3>이곳에도 태그가 있구요</h3> html은 <b>태그</b>로 이루어진 문서입니다. 텍스트를 <b>진하게</b> 만들 수도 있고, <u>밑줄</u>을 칠 수도 있습니다. ‘<br>이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…<br>‘")
context.append("(서울=위키트리) 김성현 기자 (seonghkim@smilegate.com) <저작권자(c) 무단전재-재배포 금지> ‘<br>이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…<br>‘")
context.append("(사진=위키트리, 무단 전재-재배포 금지) ‘<br>이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…<br>‘")
context.append("#이세돌 #알파고 #인공지능 #딥러닝 #바둑")
for i, sent in enumerate(context):
print(i, sent)
0 이하 뉴스1&인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단
1
2 이하 뉴스1
3
4 인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단의 사진이 화제다.
5
6 13일 서울 광화문 포시즌스 호텔에서 열린 '구글 딥마인드 챌린지 매치'에서 이세돌 9단은 알파고와의 제4국에서 승리했다. 이날 대국장을 빠져나가는 이세돌 9단의 모습이 사진에 포착됐다.
7
8 이세돌 9단은 상의 주머니에 양손을 넣고 옅은 미소를 지었다. 이 사진은 SNS에서 화제를 모았다.
9
10 오늘 알파고에게 승리하고 대국장 빠져나가는 이세돌이라는데ㅋㅋㅋㅋㅋㅋㅋ 포토제닉ㅋㅋㅋㅋㅋㅋㅋ 이대로 헐리웃 영화 만들어지고 포스터 소취요 pic.twitter.com/4IRFJu18hx — 조드윅 앓는 서린 (@katharine_stark) 2016년 3월 13일
11
12 대국을 마친 뒤, 이세돌 9단은 "한판 이겼는데 이렇게까지 축하를 받아보는 것은 처음"이라고 말했다. 이세돌 9단은 기자회견장에도 함박 웃음을 감추지 못했다.
13 <h1>여기에 태그가 있네요!</h1> <h3>이곳에도 태그가 있구요</h3> html은 <b>태그</b>로 이루어진 문서입니다. 텍스트를 <b>진하게</b> 만들 수도 있고, <u>밑줄</u>을 칠 수도 있습니다. ‘<br>이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…<br>‘
14 (서울=위키트리) 김성현 기자 (seonghkim@smilegate.com) <저작권자(c) 무단전재-재배포 금지> ‘<br>이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…<br>‘
15 (사진=위키트리, 무단 전재-재배포 금지) ‘<br>이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…<br>‘
16 #이세돌 #알파고 #인공지능 #딥러닝 #바둑
보통은 이렇게 HTML 태그가 무분별하게 부착되어 있게된다. 이는 re
라이브러리를 이용해 제거할 수 있다.
import re
def remove_html(texts):
"""
HTML 태그를 제거합니다.
``<p>안녕하세요 ㅎㅎ </p>`` -> ``안녕하세요 ㅎㅎ ``
"""
preprcessed_text = []
for text in texts:
text = re.sub(r"<[^>]+>\s+(?=<)|<[^>]+>", "", text).strip()
if text:
preprcessed_text.append(text)
return preprcessed_text
context = remove_html(context)
for i, sent in enumerate(context):
print(i, sent)
0 이하 뉴스1&인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단
1 이하 뉴스1
2 인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단의 사진이 화제다.
3 13일 서울 광화문 포시즌스 호텔에서 열린 '구글 딥마인드 챌린지 매치'에서 이세돌 9단은 알파고와의 제4국에서 승리했다. 이날 대국장을 빠져나가는 이세돌 9단의 모습이 사진에 포착됐다.
4 이세돌 9단은 상의 주머니에 양손을 넣고 옅은 미소를 지었다. 이 사진은 SNS에서 화제를 모았다.
5 오늘 알파고에게 승리하고 대국장 빠져나가는 이세돌이라는데ㅋㅋㅋㅋㅋㅋㅋ 포토제닉ㅋㅋㅋㅋㅋㅋㅋ 이대로 헐리웃 영화 만들어지고 포스터 소취요 pic.twitter.com/4IRFJu18hx — 조드윅 앓는 서린 (@katharine_stark) 2016년 3월 13일
6 대국을 마친 뒤, 이세돌 9단은 "한판 이겼는데 이렇게까지 축하를 받아보는 것은 처음"이라고 말했다. 이세돌 9단은 기자회견장에도 함박 웃음을 감추지 못했다.
7 여기에 태그가 있네요!이곳에도 태그가 있구요 html은 태그로 이루어진 문서입니다. 텍스트를 진하게 만들 수도 있고, 밑줄을 칠 수도 있습니다. ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
8 (서울=위키트리) 김성현 기자 (seonghkim@smilegate.com) ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
9 (사진=위키트리, 무단 전재-재배포 금지) ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
10 #이세돌 #알파고 #인공지능 #딥러닝 #바둑
html 태그가 사라진 모습
한국어 문장분리기에서 가장 성능이 우수한 것으로 알려진 kss
라이브러리를 사용해서 문장 단위로 모델이 학습할 수 있도록 해준다.
!pip install kss
import kss
sents = []
for sent in context:
sent = sent.strip()
if sent:
splited_sent = kss.split_sentences(sent)
sents.extend(splited_sent)
for i, sent in enumerate(sents):
print(i, sent)
0 이하 뉴스1&인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단
1 이하 뉴스1
2 인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단의 사진이 화제다.
3 13일 서울 광화문 포시즌스 호텔에서 열린 '구글 딥마인드 챌린지 매치'에서 이세돌 9단은 알파고와의 제4국에서 승리했다.
4 이날 대국장을 빠져나가는 이세돌 9단의 모습이 사진에 포착됐다.
5 이세돌 9단은 상의 주머니에 양손을 넣고 옅은 미소를 지었다.
6 이 사진은 SNS에서 화제를 모았다.
7 오늘 알파고에게 승리하고 대국장 빠져나가는 이세돌이라는데ㅋㅋㅋㅋㅋㅋㅋ 포토제닉ㅋㅋㅋㅋㅋㅋㅋ 이대로 헐리웃 영화 만들어지고 포스터 소취요 pic.twitter.com/4IRFJu18hx — 조드윅 앓는 서린 (@katharine_stark) 2016년 3월 13일
8 대국을 마친 뒤, 이세돌 9단은 "한판 이겼는데 이렇게까지 축하를 받아보는 것은 처음"이라고 말했다.
9 이세돌 9단은 기자회견장에도 함박 웃음을 감추지 못했다.
10 여기에 태그가 있네요!
11 이곳에도 태그가 있구요
12 html은 태그로 이루어진 문서입니다.
13 텍스트를 진하게 만들 수도 있고, 밑줄을 칠 수도 있습니다. ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
14 (서울=위키트리) 김성현 기자 (seonghkim@smilegate.com) ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
15 (사진=위키트리, 무단 전재-재배포 금지) ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
16 #이세돌 #알파고 #인공지능 #딥러닝 #바둑
잘 보면 이전의 10문장에서 16문장으로 그 수가 증가했지만 완벽하게 문장분리가 이루어지지 않았다.
7번 문장을 보면 사람도 문장 분리하기 애매한 문장이있다.
또, 특정 링크가 포함되어 있거나 0번과 1번처럼 중복적인 데이터도 존재한다.
기자 이름이나 ㅋㅋㅋ 같은 어구도 불필요한 정보이다. 또 이메일 같은 개인정보를 제거해야한다.
def remove_email(texts):
"""
이메일을 제거합니다.
``홍길동 abc@gmail.com 연락주세요!`` -> ``홍길동 연락주세요!``
"""
preprocessed_text = []
for text in texts:
text = re.sub(r"[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+", "", text).strip()
if text:
preprocessed_text.append(text)
return preprocessed_text
sents = remove_email(sents)
for i, sent in enumerate(sents):
print(i, sent)
0 이하 뉴스1&인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단
1 이하 뉴스1
2 인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단의 사진이 화제다.
3 13일 서울 광화문 포시즌스 호텔에서 열린 '구글 딥마인드 챌린지 매치'에서 이세돌 9단은 알파고와의 제4국에서 승리했다.
4 이날 대국장을 빠져나가는 이세돌 9단의 모습이 사진에 포착됐다.
5 이세돌 9단은 상의 주머니에 양손을 넣고 옅은 미소를 지었다.
6 이 사진은 SNS에서 화제를 모았다.
7 오늘 알파고에게 승리하고 대국장 빠져나가는 이세돌이라는데ㅋㅋㅋㅋㅋㅋㅋ 포토제닉ㅋㅋㅋㅋㅋㅋㅋ 이대로 헐리웃 영화 만들어지고 포스터 소취요 pic.twitter.com/4IRFJu18hx — 조드윅 앓는 서린 (@katharine_stark) 2016년 3월 13일
8 대국을 마친 뒤, 이세돌 9단은 "한판 이겼는데 이렇게까지 축하를 받아보는 것은 처음"이라고 말했다.
9 이세돌 9단은 기자회견장에도 함박 웃음을 감추지 못했다.
10 여기에 태그가 있네요!
11 이곳에도 태그가 있구요
12 html은 태그로 이루어진 문서입니다.
13 텍스트를 진하게 만들 수도 있고, 밑줄을 칠 수도 있습니다. ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
14 (서울=위키트리) 김성현 기자 () ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
15 (사진=위키트리, 무단 전재-재배포 금지) ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
16 #이세돌 #알파고 #인공지능 #딥러닝 #바둑
이메일이 사라진 모습
def remove_hashtag(texts):
"""
해쉬태그(#)를 제거합니다.
``대박! #맛집 #JMT`` -> ``대박! ``
"""
preprocessed_text = []
for text in texts:
text = re.sub(r"#\S+", "", text).strip()
if text:
preprocessed_text.append(text)
return preprocessed_text
sents = remove_hashtag(sents)
for i, sent in enumerate(sents):
print(i, sent)
0 이하 뉴스1&인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단
1 이하 뉴스1
2 인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단의 사진이 화제다.
3 13일 서울 광화문 포시즌스 호텔에서 열린 '구글 딥마인드 챌린지 매치'에서 이세돌 9단은 알파고와의 제4국에서 승리했다.
4 이날 대국장을 빠져나가는 이세돌 9단의 모습이 사진에 포착됐다.
5 이세돌 9단은 상의 주머니에 양손을 넣고 옅은 미소를 지었다.
6 이 사진은 SNS에서 화제를 모았다.
7 오늘 알파고에게 승리하고 대국장 빠져나가는 이세돌이라는데ㅋㅋㅋㅋㅋㅋㅋ 포토제닉ㅋㅋㅋㅋㅋㅋㅋ 이대로 헐리웃 영화 만들어지고 포스터 소취요 pic.twitter.com/4IRFJu18hx — 조드윅 앓는 서린 (@katharine_stark) 2016년 3월 13일
8 대국을 마친 뒤, 이세돌 9단은 "한판 이겼는데 이렇게까지 축하를 받아보는 것은 처음"이라고 말했다.
9 이세돌 9단은 기자회견장에도 함박 웃음을 감추지 못했다.
10 여기에 태그가 있네요!
11 이곳에도 태그가 있구요
12 html은 태그로 이루어진 문서입니다.
13 텍스트를 진하게 만들 수도 있고, 밑줄을 칠 수도 있습니다. ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
14 (서울=위키트리) 김성현 기자 () ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
15 (사진=위키트리, 무단 전재-재배포 금지) ‘이 줄은 실제 뉴스(news,)에 포함되지 않은 임시 데이터임을 알립니다…‘
해시태그로 구성된 부분이 사라졌다.
또, @로 이루어진 부분도 인스타그램이나 이메일등을 태그할 수 있는 부분이라서 이 부분도 제거한다. url 역시 제거한다.
문제를 일으킬 수 있는 문자들도 제거한다. 한국어를 크롤링하게되면 이상한 문자들이 같이 크롤링하게 되기 때문에 이러한 문자를 제거한다.
그리고, 기자정보와 언론사정보를 제거한다.
그 외에도 다음을 제거한다.
뉴스 내 포함된 이미제 정보
위키피디아 전처리를 위한 함수
수학(math,) => 수학(math)
수학() => 수학
def remove_user_mention(texts):
"""
유저에 대한 멘션(@) 태그를 제거합니다.
``@홍길동 감사합니다!`` -> `` 감사합니다!``
"""
preprocessed_text = []
for text in texts:
text = re.sub(r"@\w+", "", text).strip()
if text:
preprocessed_text.append(text)
return preprocessed_text
def remove_url(texts):
"""
URL을 제거합니다.
``주소: www.naver.com`` -> ``주소: ``
"""
preprocessed_text = []
for text in texts:
text = re.sub(r"(http|https)?:\/\/\S+\b|www\.(\w+\.)+\S*", "", text).strip()
text = re.sub(r"pic\.(\w+\.)+\S*", "", text).strip()
if text:
preprocessed_text.append(text)
return preprocessed_text
def remove_bad_char(texts):
"""
문제를 일으킬 수 있는 문자들을 제거합니다.
"""
bad_chars = {"\u200b": "", "…": " ... ", "\ufeff": ""}
preprcessed_text = []
for text in texts:
for bad_char in bad_chars:
text = text.replace(bad_char, bad_chars[bad_char])
text = re.sub(r"[\+á?\xc3\xa1]", "", text)
if text:
preprcessed_text.append(text)
return preprcessed_text
def remove_press(texts):
"""
언론 정보를 제거합니다.
``홍길동 기자 (연합뉴스)`` -> ````
``(이스탄불=연합뉴스) 하채림 특파원 -> ````
"""
re_patterns = [
r"\([^(]*?(뉴스|경제|일보|미디어|데일리|한겨례|타임즈|위키트리)\)",
r"[가-힣]{0,4} (기자|선임기자|수습기자|특파원|객원기자|논설고문|통신원|연구소장) ", # 이름 + 기자
r"[가-힣]{1,}(뉴스|경제|일보|미디어|데일리|한겨례|타임|위키트리)", # (... 연합뉴스) ..
r"\(\s+\)", # ( )
r"\(=\s+\)", # (= )
r"\(\s+=\)", # ( =)
]
preprocessed_text = []
for text in texts:
for re_pattern in re_patterns:
text = re.sub(re_pattern, "", text).strip()
if text:
preprocessed_text.append(text)
return preprocessed_text
def remove_copyright(texts):
"""
뉴스 내 포함된 저작권 관련 텍스트를 제거합니다.
``(사진=저작권자(c) 연합뉴스, 무단 전재-재배포 금지)`` -> ``(사진= 연합뉴스, 무단 전재-재배포 금지)`` TODO 수정할 것
"""
re_patterns = [
r"\<저작권자(\(c\)|ⓒ|©|\(Copyright\)|(\(c\))|(\(C\))).+?\>",
r"저작권자\(c\)|ⓒ|©|(Copyright)|(\(c\))|(\(C\))"
]
preprocessed_text = []
for text in texts:
for re_pattern in re_patterns:
text = re.sub(re_pattern, "", text).strip()
if text:
preprocessed_text.append(text)
return preprocessed_text
def remove_photo_info(texts):
"""
뉴스 내 포함된 이미지에 대한 label을 제거합니다.
``(사진= 연합뉴스, 무단 전재-재배포 금지)`` -> ````
``(출처=청주시)`` -> ````
"""
preprocessed_text = []
for text in texts:
text = re.sub(r"\(출처 ?= ?.+\) |\(사진 ?= ?.+\) |\(자료 ?= ?.+\)| \(자료사진\) |사진=.+기자 ", "", text).strip()
if text:
preprocessed_text.append(text)
return preprocessed_text
def remove_useless_breacket(texts):
"""
위키피디아 전처리를 위한 함수입니다.
괄호 내부에 의미가 없는 정보를 제거합니다.
아무런 정보를 포함하고 있지 않다면, 괄호를 통채로 제거합니다.
``수학(,)`` -> ``수학``
``수학(數學,) -> ``수학(數學)``
"""
bracket_pattern = re.compile(r"\((.*?)\)")
preprocessed_text = []
for text in texts:
modi_text = ""
text = text.replace("()", "") # 수학() -> 수학
brackets = bracket_pattern.search(text)
if not brackets:
if text:
preprocessed_text.append(text)
continue
replace_brackets = {}
# key: 원본 문장에서 고쳐야하는 index, value: 고쳐져야 하는 값
# e.g. {'2,8': '(數學)','34,37': ''}
while brackets:
index_key = str(brackets.start()) + "," + str(brackets.end())
bracket = text[brackets.start() + 1 : brackets.end() - 1]
infos = bracket.split(",")
modi_infos = []
for info in infos:
info = info.strip()
if len(info) > 0:
modi_infos.append(info)
if len(modi_infos) > 0:
replace_brackets[index_key] = "(" + ", ".join(modi_infos) + ")"
else:
replace_brackets[index_key] = ""
brackets = bracket_pattern.search(text, brackets.start() + 1)
end_index = 0
for index_key in replace_brackets.keys():
start_index = int(index_key.split(",")[0])
modi_text += text[end_index:start_index]
modi_text += replace_brackets[index_key]
end_index = int(index_key.split(",")[1])
modi_text += text[end_index:]
modi_text = modi_text.strip()
if modi_text:
preprocessed_text.append(modi_text)
return preprocessed_text
sents = remove_useless_breacket(sents)
for i, sent in enumerate(sents):
print(i, sent)
0 이하 뉴스1&인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단
1 이하 뉴스1
2 인공지능 알파고(AlphaGo)를 상대로 첫 승리를 거둔 이세돌 9단의 사진이 화제다.
3 13일 서울 광화문 포시즌스 호텔에서 열린 '구글 딥마인드 챌린지 매치'에서 이세돌 9단은 알파고와의 제4국에서 승리했다.
4 이날 대국장을 빠져나가는 이세돌 9단의 모습이 사진에 포착됐다.
5 이세돌 9단은 상의 주머니에 양손을 넣고 옅은 미소를 지었다.
6 이 사진은 SNS에서 화제를 모았다.
7 오늘 알파고에게 승리하고 대국장 빠져나가는 이세돌이라는데ㅋㅋㅋㅋㅋㅋㅋ 포토제닉ㅋㅋㅋㅋㅋㅋㅋ 이대로 헐리웃 영화 만들어지고 포스터 소취요 — 조드윅 앓는 서린 2016년 3월 13일
8 대국을 마친 뒤, 이세돌 9단은 "한판 이겼는데 이렇게까지 축하를 받아보는 것은 처음"이라고 말했다.
9 이세돌 9단은 기자회견장에도 함박 웃음을 감추지 못했다.
10 여기에 태그가 있네요!
11 이곳에도 태그가 있구요
12 html은 태그로 이루어진 문서입니다.
13 텍스트를 진하게 만들 수도 있고, 밑줄을 칠 수도 있습니다. ‘이 줄은 실제 뉴스(news)에 포함되지 않은 임시 데이터임을 알립니다 ... ‘
14 ‘이 줄은 실제 뉴스(news)에 포함되지 않은 임시 데이터임을 알립니다 ... ‘
15 ‘이 줄은 실제 뉴스(news)에 포함되지 않은 임시 데이터임을 알립니다 ... ‘
어느 정도 따라하면서 공부하려고 했는데, 방대한 양의 여기까지만 작성합니다...