y-seo
y-seo의 딩코 기록들
y-seo
  • 분류 전체보기 (174)
    • Computer Science (49)
      • Database Design & Query Lan.. (10)
      • Network Security (16)
      • Software Engineering (6)
      • Computer Network (17)
    • Spring (50)
      • Spring-Basic (11)
      • SpringBoot-AWS (7)
      • SpringBoot&JPA (22)
      • 토비의 스프링 (3)
      • + α (7)
    • Cloud (22)
      • AWS (4)
      • GCP (1)
      • ElasticSearch (17)
    • Test (3)
    • Project (4)
    • Algorithm (24)
      • 개념 (9)
      • 문제풀이 (15)
    • AI (3)
      • About (2)
      • AIDU ez (1)
    • Error (4)
    • ETC (1)
    • Review (8)
    • IT (5)
      • SQLD (4)
      • ADsP (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

태그

  • 컴퓨터 네트워킹 하향식 접근
  • 김영한
  • 인프런
  • algorithm
  • 백준
  • 자바
  • Python
  • springboot
  • baekjoon
  • 보안
  • 네트워크
  • java
  • 스프링부트
  • 알고리즘
  • 네트워크보안
  • 스프링
  • Spring
  • 파이썬
  • JPA
  • 알기 쉬운 정보보호개론 3판

티스토리

hELLO · Designed By 정상우.
y-seo

y-seo의 딩코 기록들

Cloud/ElasticSearch

[실습] Elasticsearch NLP - Sentiment Analysis 하기

2024. 1. 2. 14:43

1. 데이터 올리기 

2. Eland와 Elasticsearch 연동하기

3. Huggingface에서 모델 선택해 탑재하기

4. 확인하기

[실습] Elasticsearch NLP - Text Embedding과 KNN search 하기 — y-seo의 딩코 기록들 (tistory.com)

 

[실습] Elasticsearch NLP - Text Embedding과 KNN search 하기

개요 목표 : ElasticSearch에서 NLP를 적용할 수 있다. 순서 Elastic에 데이터를 올린다. Eland와 Elastic을 연동한다. Huggingface에서 모델을 선택해 탑재한다. 1. Elastic에 데이터 올리기 (1) Machine Learning > Data V

y-seo.tistory.com

위 블로그의 4번과정까지는 동일하다.

 

5. Sentiment Analysis 하기

(1) text_field로 predicted_value 찾는 Query 실행하기

POST _ml/trained_models/distilbert-base-uncased-finetuned-sst-2-english/deployment/_infer
{
  "docs": [
    {
      "text_field": "The movie was awesome!"
    }
  ]
}

(2) Sentiment Analysis를 위한 파이프라인 생성하기

모든 각각의 리뷰에 대해 predicted_value를 달기 위해 감정 분석 파이프라인을 한 번 더 생성한다.

PUT _ingest/pipeline/sentiment_demo
{
  "processors": [
    {
      "inference": {
        "model_id": "distilbert-base-uncased-finetuned-sst-2-english",
        "field_map": {
          "document": "text_field"
        }
      }
    }
  ],
  "on_failure": [
    {
      "set": {
        "description": "Index document to 'failed-<index>'",
        "field": "_index",
        "value": "failed-{{{_index}}}"
      }
    },
    {
      "set": {
        "description": "Set error message",
        "field": "ingest.failure",
        "value": "{{_ingest.on_failure_message}}"
      }
    }
  ]
}

inference에는 model_id와 document 같은 source들이 있다.

set으로 error index를 남기는 설정을 할 수도 있다.

(3) 대상 인덱스를 리인덱싱하기

POST _reindex
{
  "source": {
    "index": "movie_ratings_vector"
  },
  "dest": {
    "index": "movie_ratings_vector_sentiment",
    "pipeline": "sentiment_demo"
  }
}

이전에 생성한 파이프라인을 통해 할 수 있도록 한다.

(4) 인덱싱을 확인, 비교하기

GET movie_ratings_vector_sentiment/_search
저작자표시 (새창열림)

'Cloud > ElasticSearch' 카테고리의 다른 글

[실습] ChatGPT로 Elastic Docs Chatbot 만들기  (0) 2024.01.02
[실습] Elasticsearch NLP - Vector Image Search 하기  (0) 2024.01.02
[실습] Elasticsearch NLP - Text Embedding과 KNN search 하기  (0) 2024.01.02
[개념] Elastic NLP  (0) 2024.01.02
[실습] Elasticsearch에서 Machine Learning 사용하기  (0) 2023.12.29
    'Cloud/ElasticSearch' 카테고리의 다른 글
    • [실습] ChatGPT로 Elastic Docs Chatbot 만들기
    • [실습] Elasticsearch NLP - Vector Image Search 하기
    • [실습] Elasticsearch NLP - Text Embedding과 KNN search 하기
    • [개념] Elastic NLP
    y-seo
    y-seo

    티스토리툴바