[python] 자연어 처리를 위한 파이썬 패키지
자연어 처리는 인간이 사용하는 언어를 컴퓨터가 이해하고 처리하는 분야입니다. 파이썬은 자연어 처리를 위한 다양한 패키지와 라이브러리를 제공하여 이 분야의 개발을 지원합니다. 이번 글에서는 주요 자연어 처리 패키지에 대해 알아보겠습니다.
NLTK (Natural Language Toolkit)
NLTK는 자연어 처리를 위한 가장 유명한 패키지 중 하나입니다. 이 패키지는 토큰화, 형태소 분석, 품사 태깅, 구문 분석, 의미 분석 등 다양한 자연어 처리 기능을 제공합니다.
import nltk
# 토큰화
text = "NLTK는 자연어 처리를 위한 패키지입니다."
tokens = nltk.word_tokenize(text)
print(tokens)
# 형태소 분석
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize("running", pos="v")) # run
SpaCy
SpaCy는 뛰어난 성능과 처리 속도로 유명한 자연어 처리 라이브러리입니다. 문장의 토큰화, 구문 분석, 개체명 인식, 단어 임베딩 등의 기능을 제공합니다.
import spacy
# 토큰화
nlp = spacy.load("en_core_web_sm")
doc = nlp("SpaCy is a powerful library for natural language processing.")
for token in doc:
print(token.text, token.pos_, token.dep_)
# 개체명 인식
for ent in doc.ents:
print(ent.text, ent.label_)
Gensim
Gensim은 자연어 처리 및 토픽 모델링을 위한 라이브러리로, 문서 유사도 측정, 토픽 모델링, 단어 임베딩 등 다양한 기능을 제공합니다.
from gensim import corpora, models
# 토픽 모델링
documents = ["The quick brown fox jumps over the lazy dog",
"A quick brown dog outpaces a quick fox"]
texts = [[word for word in document.lower().split()] for document in documents]
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]
lda_model = models.LdaModel(corpus, num_topics=2, id2word=dictionary)
for topic in lda_model.print_topics():
print(topic)
이렇게 다양한 자연어 처리를 위한 패키지와 라이브러리를 사용하여 텍스트 데이터를 효과적으로 처리하고 분석할 수 있습니다.
참고 문헌:
NLTK: https://www.nltk.org/
SpaCy: https://spacy.io/
Gensim: https://radimrehurek.com/gensim/