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를 사용하여 뉴스 텍스트 데이터를 업로드하는 방법을 단계별로 알아보았습니다. 본 예제는 뉴스 분류, 검색, 자연어 처리 기반 분석 등을 위한 기본 데이터 파이프라인 설계에 유용하게 활용될 수 있습니다.
'python' 카테고리의 다른 글
파이썬 리스트 차원 축소 (0) | 2023.06.29 |
---|---|
nsmc 다운로드 네이버 영화 리뷰 댓글 샘플데이터 다운로드 (0) | 2023.06.29 |
파이썬 한번이라도 같이 등장한 값 끼리 모으기 (0) | 2023.06.27 |
파이썬 자연어 처리 샘플 문서 받아오기 nltk news (0) | 2023.06.27 |
파이썬 딕셔너리 min / max 적용 (0) | 2023.06.25 |
댓글