#!/usr/bin/env python
# coding: utf-8
#
# # **Token의 활용**
#
# ## **1 Token**
# 어휘분석
# In[ ]:
# ! pip3 install nltk
# In[ ]:
# import nltk
# nltk.download('punkt')
# In[ ]:
text = """오늘 금요일, 오후.
오늘 조금만 버티면 주말입니다. 조금만 힘내세요"""
# In[ ]:
from nltk import sent_tokenize
sent_tokenize(text)
# In[ ]:
from nltk import word_tokenize
text = word_tokenize(text)
text
# In[ ]:
from nltk import FreqDist
dict(FreqDist(text))
#
# ## **2 Re 를 사용한 Regex 정규식**
# In[ ]:
text = """Park 010-1234-1234 Kim 010-8888-9999
Lee 010-2123-1299 홍길동 010-222-9999 신사임당 010-555-2345"""
from nltk.tokenize import RegexpTokenizer
re_capt = RegexpTokenizer(r'\d+')
re_capt.tokenize(text)
# In[ ]:
from nltk.tokenize import RegexpTokenizer
re_capt = RegexpTokenizer(r'[A-z]\w+')
re_capt.tokenize(text)
# In[ ]:
from nltk.tokenize import RegexpTokenizer
re_capt = RegexpTokenizer(r'[가-힣]\w+')
re_capt.tokenize(text)
#
# ## **| Quiz : Regex 의 활용**
# In[ ]:
# 한글/영문 이름만 추출하기
# Quiz1 : 한글과 영어를 함께 추출한다
# QUiz2 : 전화번호만 추출한다
#
# ## **| Answer : Quiz 풀기**
# In[ ]:
# 한글/영문이름 추출하기
from nltk.tokenize import RegexpTokenizer
re_capt = RegexpTokenizer(r'[ =Quiz!= ]\w+')
re_capt.tokenize(text)
# In[ ]:
# cf) 전화번호만 추출해보기
re_capt = RegexpTokenizer('\d{ =Quiz!= }-\d{ =Quiz!= }-\d{ =Quiz!= }')
re_capt.tokenize(text)
#
# ## **| Import re**
# In[ ]:
text = "갤럭시(GalaxyNote9)노트9은 2018년 08월 폭발적인 인기를 이끌고 있습니다"
# In[ ]:
import re
tokenizer = re.compile(r'[가-힣]+')
tokenizer.findall(text)
# In[ ]:
# 한글과 공백을 제외한 나머지 선택후 제거
tokenizer = re.compile(r'[^ 가-힣]+')
tokenizer.sub("", text)