Python/NLP Code

파이썬 품사 태깅(POS Tagging) 방법 정리(nltk, spacy)

jimmy_AI 2022. 10. 29. 19:50
반응형

파이썬에서 각 단어 토큰의 품사 종류를 찾는 pos tagging을

nltk와 spacy 모듈을 통하여 진행하는 방법에 대하여 정리해보도록 하겠습니다.

 

 

nltk를 활용한 POS Tagging 방법

먼저, nltk 모듈 설치가 진행되지 않았다면 아래 명령어로 설치해줍니다.

!pip install nltk

 

품사 태깅을 위해서는 영어 기준으로 아래의 내부 라이브러리를 설치하는 과정이 필요합니다.

import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')

 

위 과정들을 마쳤다면 문장 토큰화 후 pos tagging을 다음과 같이 진행해주시면 됩니다.

from nltk import word_tokenize, pos_tag

sentences = "Tom was born in Toronto, 2020"
result = pos_tag(word_tokenize(sentences))

print(result)
# [('Tom', 'NNP'), ('was', 'VBD'), ('born', 'VBN'), ('in', 'IN'), ('Toronto', 'NNP'), (',', ','), ('2020', 'CD')]

 

참고로, 각 품사 태그가 의미하는 실제 품사 종류는 아래의 사이트를 참고해주시면 됩니다.

 

품사와 품사 태그셋 소개

 

happygrammer.github.io

 

반응형

 

spacy를 활용한 POS Tagging 방법

자연어처리 모듈인 spacy를 통해서도 품사 태깅을 쉽게 진행할 수 있습니다.

모듈 미설치 시에는 아래의 코드를 우선 실행하여 spacy를 설치해주시면 됩니다.

!pip install spacy

 

영어 기준으로 spcay 모듈을 불러와 pos tagging을 진행하는 예시 코드 및

결과는 다음과 같습니다.

import spacy

sentences = "Tom was born in Toronto, 2020"

nlp = spacy.load("en_core_web_sm")
doc = nlp(sentences)

for token in doc:
    print(f'token : {token.text}, pos : {token.tag_}')