Spacy란? 파이썬의 자연어 처리를 위한 오픈 소스 기반 라이브러리다.
Tokenization과 품사 태깅, 개체 인식 등 기본적인 전처리 기능을 지원하고 있다.
Spacy Tokenezation 예시
text = nlp('Naver Connect and Upstage Boostcamp')
print ([token.text for token in text])
결과
['Naver', 'Connect', 'and', 'Upstage', 'Boostcamp']
Stopword(불용어) 언어를 분석할 때, 의미가 있는 단어와, 의미가 없는 단어나 조사 등이 있다.
Spacy는 불용어를 문장, 문단에서 불용어를 검출해 내는 기능을 가지고있다.
Spacy Stopword 예시
spacy_stopwords = spacy.lang.en.stop_words.STOP_WORDS
for stop_word in list(spacy_stopwords)[:30]:
print(stop_word)
표제어(Lemma)는 한글로는 '표제어' 또는 '기본 사전형 단어' 정도의 의미를 갖는다.
예를 들어 am, are, is는 서로 다른 스펠링이지만 그 뿌리 단어는 be라고 볼 수 있다.
Spacy Lemmatization
for token in text[:20]:
print (token, "-", token.lemma_)
Sapcy is_stop,is_punct 활용 함수
def is_token_allowed(token):
if token.is_stop or token.is_punct:
return False
return True
한국어를 지원하는 자연어처리 라이브러리 이다.
konlpy는 경제분석을 위한 라이브러리로 특화되어있다.
Mecab 사용법
from konlpy.tag import Mecab
import operator
tokenizer = Mecab()
놀랍도록 간단하게 Mecab을 사용할 수 있다.
Macab 예시
text="최강의 슈퍼히어로들이 모였다! 지구의 운명을 건 거대한 전쟁이 시작된다! 지구의 안보가 위협당하는 위기의 상황에서 슈퍼히어로들을 불러모아 세상을 구하는, 일명 어벤져스 작전. 에너지원 테서랙트를 이용한 적의 등장으로 인류가 위험에 처하자 국제평화유지기구인 쉴드의 국장 닉 퓨리는 어벤져스 작전을 위해 전 세계에 흩어져 있던 슈퍼히어로들을 찾아나선다. 아이언맨부터 토르, 헐크, 캡틴 아메리카는 물론, 쉴드의 요원인 블랙 위도우, 호크아이까지, 최고의 슈퍼히어로들이 어벤져스의 멤버로 모이게 되지만, 각기 개성이 강한 이들의 만남은 예상치 못한 방향으로 흘러가는데… 지구의 운명을 건 거대한 전쟁 앞에 어벤져스 작전은 성공할 수 있을까?"
print(tokenizer.morphs(text))
이와 같이 tokenizer.morphs() 파라미터에 문장을 넣으면 Token화 되어나오게 된다.
Macab을 이용하여, 빈도수 별로 dict에 저장하기
vocab_dict={}
for token in tokens:
if token in vocab_dict:
vocab_dict[token]+=1
else:
vocab_dict[token]=1
Macab을 이용하여 Tokens에 Token을 생성한 후, 빈도수 별로 저장해주면 간단하게 빈도수 별로 dict를 생성 할 수 있다.