Python은 그 간편함과 강력한 라이브러리들 덕분에 데이터 과학, 웹 개발, 인공지능 등 다양한 분야에서 널리 사용되고 있습니다. 그 중에서도 NLTK(Natural Language Toolkit)는 자연어 처리를 위해 가장 많이 사용되는 라이브러리 중 하나입니다. 이번 글에서는 Python과 NLTK를 이용해 간단한 챗봇을 만들어보며 자연어 처리의 기초를 배워보겠습니다.

자연어 처리란?

자연어 처리는 인간이 사용하는 언어를 컴퓨터가 이해하고 분석할 수 있도록 하는 기술입니다. 이는 텍스트 분석, 음성 인식, 번역, 감정 분석 등 다양한 분야에 응용될 수 있습니다. NLTK는 이러한 자연어 처리를 쉽게 할 수 있도록 도와주는 도구로, 토큰화, 형태소 분석, 품사 태깅, 문장 파싱 등 다양한 기능을 제공합니다.

NLTK 설치하기

먼저 NLTK를 설치해야 합니다. 다음 명령어를 사용해 NLTK를 설치할 수 있습니다:

pip install nltk

설치가 완료되면, NLTK 데이터를 다운로드해야 합니다. Python 인터프리터를 실행하고 다음 코드를 입력하세요:

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

이제 NLTK를 사용할 준비가 되었습니다.

간단한 챗봇 만들기

이제 간단한 챗봇을 만들어보겠습니다. 이 챗봇은 사용자의 입력을 받아 간단한 응답을 돌려주는 역할을 합니다. 먼저 필요한 라이브러리를 임포트합니다:

import nltk
from nltk.chat.util import Chat, reflections

다음으로 챗봇의 응답 패턴을 정의합니다. 이 패턴은 정규 표현식과 응답 문장으로 이루어져 있습니다:

pairs = [
    [
        r"hi|hello",
        ["Hello", "Hi there"]
    ],
    [
        r"how are you ?",
        ["I'm fine, thank you"]
    ],
    [
        r"what is your name ?",
        ["My name is Chatbot"]
    ],
    [
        r"bye|goodbye",
        ["Goodbye", "See you later"]
    ]
]

이제 챗봇을 생성하고, 사용자와 대화를 시작할 수 있습니다:

chatbot = Chat(pairs, reflections)

def chatbot_response(user_input):
    return chatbot.respond(user_input)

while True:
    user_input = input("You: ")
    if user_input.lower() in ["bye", "goodbye"]:
        print("Chatbot: Goodbye!")
        break
    response = chatbot_response(user_input)
    print(f"Chatbot: {response}")

위 코드를 실행하면 간단한 챗봇이 동작하는 것을 볼 수 있습니다. 사용자의 입력에 따라 미리 정의된 패턴에 맞는 응답을 돌려줍니다.

마무리

이번 글에서는 Python과 NLTK를 이용해 간단한 챗봇을 만들어보았습니다. 자연어 처리의 기초 개념과 함께, NLTK를 사용한 기본적인 텍스트 처리 방법을 이해해 보셨길 바래봅니다. 다음으로는 Pandas를 이용해서 데이터 전처리와 시각화에 대해서 얘기해 보도록 하겠습니다. 다음글도 기대해주세요~