# ! pip3 install nltk
# import nltk
# nltk.download('punkt')
text = """오늘 금요일, 오후.
오늘 조금만 버티면 주말입니다. 조금만 힘내세요"""
from nltk import sent_tokenize
sent_tokenize(text)
['오늘 금요일, 오후.', '오늘 조금만 버티면 주말입니다.', '조금만 힘내세요']
from nltk import word_tokenize
text = word_tokenize(text)
text
['오늘', '금요일', ',', '오후', '.', '오늘', '조금만', '버티면', '주말입니다', '.', '조금만', '힘내세요']
from nltk import FreqDist
dict(FreqDist(text))
{'오늘': 2, '금요일': 1, ',': 1, '오후': 1, '.': 2, '조금만': 2, '버티면': 1, '주말입니다': 1, '힘내세요': 1}
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)
['010', '1234', '1234', '010', '8888', '9999', '010', '2123', '1299', '010', '222', '9999', '010', '555', '2345']
from nltk.tokenize import RegexpTokenizer
re_capt = RegexpTokenizer(r'[A-z]\w+')
re_capt.tokenize(text)
['Park', 'Kim', 'Lee']
from nltk.tokenize import RegexpTokenizer
re_capt = RegexpTokenizer(r'[가-힣]\w+')
re_capt.tokenize(text)
['홍길동', '신사임당']
# 한글/영문 이름만 추출하기
# 아이디어 1 : 숫자가 아닌 내용만 추출한다
# 아이디어 2 : 한글과 영어만 추출한다
# 숫자가 아닌 나머지 추출하기 : 결과가 지저분한 단점
re_capt = RegexpTokenizer(r'[^ 0-9]+')
re_capt.tokenize(text)
['Park', '-', '-', 'Kim', '-', '-', '\nLee', '-', '-', '홍길동', '-', '-', '신사임당', '-', '-']
# 한글/영문이름 추출하기
from nltk.tokenize import RegexpTokenizer
re_capt = RegexpTokenizer(r'[A-z가-힣]\w+')
re_capt.tokenize(text)
['Park', 'Kim', 'Lee', '홍길동', '신사임당']
# cf) 전화번호만 추출해보기
re_capt = RegexpTokenizer('\d{3}-\d{3,4}-\d{3,4}')
re_capt.tokenize(text)
['010-1234-1234', '010-8888-9999', '010-2123-1299', '010-222-9999', '010-555-2345']
text = "갤럭시(GalaxyNote9)노트9은 2018년 08월 폭발적인 인기를 이끌고 있습니다"
import re
tokenizer = re.compile(r'[가-힣]+')
tokenizer.findall(text)
['갤럭시', '노트', '은', '년', '월', '폭발적인', '인기를', '이끌고', '있습니다']
# 한글과 공백을 제외한 나머지 선택후 제거
tokenizer = re.compile(r'[^ 가-힣]+')
tokenizer.sub("", text)
'갤럭시노트은 년 월 폭발적인 인기를 이끌고 있습니다'