본문 바로가기

머신러닝/딥러닝

spaCy를 이용한 자연어처리(1)

먼저 spacy의 english를 import 한다.

spacy에서 한국어는 아직 지원되지 않으므로 영어로 자연어 처리를 한다. English()객체를 nlp로 만들어준 다음 nlp안에 Hello world!!를 넣는다. for문으로 돌려보면 token.text안에는 각각의 내용들이 들어있다.

from spacy.lang.en import English

nlp = English()
doc  = nlp("Hello world!!")

for token in doc:
    print(token.text)

span = doc[1:3]
print(span.text)

doc2 = nlp("It is 5coins...")
print("Index : ", [token.i for token in doc])
print("Text : ", [token.text for token in doc])
print("is alpha : ", [token.is_alpha for token in doc])
print("is punct : ", [token.is_punct for token in doc])
print("like_num : , ", [token.like_num for token in doc])
    
    
>>Hello
>>world
>>!
>>!
>>world!
>>Index :  [0, 1, 2, 3]
>>Text :  ['Hello', 'world', '!', '!']
>>is alpha :  [True, True, False, False]
>>is punct :  [False, False, True, True]
>>like_num : ,  [False, False, False, False]

 

spacy의 en_core_web_sm을 이용하면 자연어 토큰 처리를 할 때 쉽게 이용할 수 있다.

import spacy
nlp3 = spacy.load("en_core_web_sm")
doc = nlp3("He opened a windows")
for token in doc:
    print(token.text, token.pos_)
    
 >>He PRON
>>opened VERB
>>a DET
>>windows NOUN