← 노드 한 장 전체#33 · Sentiment Analysis

Sentiment Analysis

리뷰를 긍정·중립·부정으로 바로 나누기

이 글은 이런 분께리뷰·댓글을 긍정·중립·부정으로 바로 나누고 싶은 분
Sentiment Analysis 영상 표지

1분 영상은 @workflow.hanjang 에 순서대로 공개돼요

JSON 받기

리뷰 13개, 좋다는 거야 싫다는 거야? 하나하나 읽기엔 길어요.

Sentiment Analysis 노드는 글의 기분을 읽고 긍정·중립·부정 출구로 바로 나눠요.

먼저 결과부터

Sentiment Analysis는 글을 긍정·중립·부정 출구로 나눈다. CoD 리뷰 13개 → 긍정 5·중립 3·부정 5, 중립을 뺀 10개 중 8개가 Steam 추천 여부와 일치(AI 판단은 틀릴 수 있음).
우리가 실제로 돌린 기록 · 실행 #74093 · 2026-10-29
Sentiment Analysis 실제 n8n 화면 1
우리가 실제로 돌린 n8n 화면 (실행 #74093, 2026-10-29)
Sentiment Analysis 실제 n8n 화면 2
우리가 실제로 돌린 n8n 화면 (실행 #74093, 2026-10-29)

따라 하기

아래 설정값은 이 영상에 나온 워크플로우 JSON에서 그대로 가져왔어요. n8n 캔버스에서 +를 눌러 노드를 순서대로 추가하고 같은 값을 넣으면 돼요. 빨간 제목이 이번 편의 주인공 노드예요. 표 왼쪽은 n8n 편집기에 보이는 칸 이름, 오른쪽은 실제로 넣은 값이에요. 직접 입력하기 번거로우면 JSON을 받아 ⋯ → Import from File로 가져오세요.

Step 1. Manual Trigger 노드 추가이름: Run manually

설정 없이 그대로 추가해요.

Step 2. HTTP Request 노드 추가이름: Get recent reviews

URLhttps://store.steampowered.com/ajaxappreviews/4435490?json=1&l=english&language=english&num_per_page=20&filter=recent&purchase_type=all

Step 3. Code 노드 추가이름: One review per item

JavaScript
// 40자 이상 리뷰만, 욕설·가림(♥) 들어간 리뷰는 제외
const bad = /♥|shit|fuck|molest|bitch|damn/i;
const r = $input.first().json.reviews || [];
return r
  .filter(x => x.review.trim().length >= 40 && !bad.test(x.review))
  .map((x, i) => ({ json: {
    no: i + 1,
    steam_recommended: x.voted_up,
    review: x.review.replace(/\s+/g, ' ').trim().slice(0, 400)
  }}));

Step 4. Sentiment Analysis 노드 추가이름: Sentiment Analysis

Text to Analyze{{ $json.review }}
Options › Sentiment CategoriesPositive, Neutral, Negative
Options › Include Detailed Results켜짐

Step 5. OpenAI Chat Model 노드 추가이름: OpenAI Chat Model

Modelgpt-4.1-mini
Options › Sampling Temperature0

Step 6. Edit Fields (Set) 노드 추가이름: Label: positive

필드 1no · number · {{ $json.no }}
필드 2ai_sentiment · string · 긍정
필드 3steam_recommended · boolean · {{ $json.steam_recommended }}
필드 4strength · number · {{ $json.sentimentAnalysis.strength }}
필드 5confidence · number · {{ $json.sentimentAnalysis.confidence }}

Step 7. Edit Fields (Set) 노드 추가이름: Label: neutral

필드 1no · number · {{ $json.no }}
필드 2ai_sentiment · string · 중립
필드 3steam_recommended · boolean · {{ $json.steam_recommended }}
필드 4strength · number · {{ $json.sentimentAnalysis.strength }}
필드 5confidence · number · {{ $json.sentimentAnalysis.confidence }}

Step 8. Edit Fields (Set) 노드 추가이름: Label: negative

필드 1no · number · {{ $json.no }}
필드 2ai_sentiment · string · 부정
필드 3steam_recommended · boolean · {{ $json.steam_recommended }}
필드 4strength · number · {{ $json.sentimentAnalysis.strength }}
필드 5confidence · number · {{ $json.sentimentAnalysis.confidence }}

가져와서 쓸 때 확인할 것

노드의 모든 옵션은 n8n 공식 문서에서 볼 수 있어요.