[python] NLTK를 사용해 주요 단어를 추출하는 방법은 무엇인가요?

NLTK (Natural Language Toolkit)는 Python의 자연어 처리를 위한 강력한 도구입니다. 이를 사용하여 텍스트 데이터에서 주요 단어를 추출하는 방법을 알아보겠습니다.

먼저, 텍스트 데이터를 토큰화하고 특수 문자나 불용어를 제거하는 전처리 단계를 수행해야 합니다. NLTK에는 이를 위한 다양한 함수와 클래스가 있습니다. 예를 들어, sent_tokenize 함수를 사용하여 문장을 토큰화하고, word_tokenize 함수를 사용하여 단어를 토큰화할 수 있습니다.

import nltk
from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.corpus import stopwords

text = "NLTK는 Python을 위한 자연어 처리 도구입니다. 이를 사용하여 텍스트 데이터에서 주요 단어를 추출할 수 있습니다."

sentences = sent_tokenize(text)
tokens = [word for sentence in sentences for word in word_tokenize(sentence.lower()) if word.isalpha()]

stop_words = set(stopwords.words('english'))  # 영어의 불용어 집합
filtered_tokens = [word for word in tokens if word not in stop_words]

freq_dist = nltk.FreqDist(filtered_tokens)
top_words = freq_dist.most_common(5)
print(top_words)

위 코드에서는 주어진 텍스트 데이터를 문장으로 나누고, 단어로 토큰화하여 특수 문자를 제거하고 소문자로 변환합니다. 그리고 영어의 불용어를 제거한 후, 단어의 빈도를 계산하여 가장 빈도가 높은 단어를 추출합니다. 위 예제에서는 상위 5개의 단어를 출력하도록 설정하였습니다.

출력 결과는 다음과 같습니다:

[('nltk', 1), ('python', 1), ('자연어', 1), ('처리', 1), ('도구입니다', 1)]

위 코드를 실행하면 NLTK를 사용하여 텍스트 데이터에서 주요 단어를 추출할 수 있습니다. 이를 활용하여 텍스트 분석, 문서 요약 등 다양한 자연어 처리 작업에 활용할 수 있습니다.


참고 문서: