본문 바로가기
python

Python을 사용한 텍스트 데이터 Elasticsearch 업로드 방법 (Elasticsearch 5.5.3 기준)

by 타닥타닥 토다토닥 부부 2023. 6. 27.
반응형

Python을 사용한 텍스트 데이터 Elasticsearch 업로드 방법 (Elasticsearch 5.5.3 기준)

이 글에서는 Python을 활용하여 텍스트 데이터를 Elasticsearch에 업로드하는 방법을 설명합니다. 특히, 머신러닝에서 자주 사용되는 sklearn.datasets의 20 Newsgroups 데이터셋을 예제로 활용하며, Elasticsearch 5.5.3 버전 환경에서 작업을 진행합니다.

 

1. Elasticsearch 5.5.3 설치 및 환경 설정

먼저, Python에서 Elasticsearch 클라이언트를 설치해야 합니다. 아래 명령어를 사용해 elasticsearch 패키지의 5.5.3 버전을 설치합니다.

pip install elasticsearch==5.5.3

참고: Elasticsearch 서버는 localhost:9200에 실행되어 있어야 합니다.

 

2. 텍스트 데이터 로딩: 20 Newsgroups 데이터셋

scikit-learn에서 제공하는 20 Newsgroups 뉴스 데이터셋을 로드합니다.

from sklearn.datasets import fetch_20newsgroups

# 데이터셋 불러오기
data = fetch_20newsgroups()

 

3. Elasticsearch 연결 및 텍스트 데이터 업로드

elasticsearch 클라이언트를 사용하여 Elasticsearch 인스턴스에 접속한 후, 뉴스 데이터와 카테고리를 문서 단위로 업로드합니다.

import numpy as np
from elasticsearch import Elasticsearch

# Elasticsearch 연결
es = Elasticsearch(["localhost:9200"])

# 데이터 업로드 루프
for document, category_num in zip(data.data, data.target):
    doc = {
        "document": document,
        "category": data.target_names[category_num]
    }
    # Elasticsearch에 인덱싱
    es.index(index="naver_news", doc_type="_doc", body=doc)

각 뉴스 기사(document)는 해당 카테고리 이름과 함께 naver_news라는 인덱스에 저장됩니다.

 

4. 업로드된 데이터 확인 방법

업로드된 Elasticsearch 데이터를 확인하려면 터미널에서 다음 curl 명령어를 실행하세요:

curl -XGET http://localhost:9200/naver_news/_search?pretty

이 명령어는 naver_news 인덱스에 저장된 문서를 JSON 형식으로 확인할 수 있게 해줍니다.

 

이 튜토리얼에서는 Python과 Elasticsearch를 사용하여 뉴스 텍스트 데이터를 업로드하는 방법을 단계별로 알아보았습니다. 본 예제는 뉴스 분류, 검색, 자연어 처리 기반 분석 등을 위한 기본 데이터 파이프라인 설계에 유용하게 활용될 수 있습니다.

반응형

댓글