100 크레딧 무료, 카드 등록 없이지금 시작하기
Logo
Back to blog

질문·구매의도까지 잡는 텍스트 감정분석 API

·20 min read

틱톡·인스타그램·유튜브·X 댓글 API가 감성·질문·구매의도·불만 라벨을 같은 요금으로 돌려줘요. 텍스트 감정분석 API를 따로 붙이지 않아도 되는지 한국어 댓글로 직접 확인했어요.

질문·구매의도까지 잡는 텍스트 감정분석 API

지금 호출하고 있는 틱톡·인스타그램·유튜브·X 댓글 리스트 API가 추가 요금 없이 감성·질문·구매의도·불만 라벨을 함께 돌려줘요. 분석할 텍스트가 이 플랫폼들의 댓글이라면 텍스트 감정분석 API를 따로 붙일 필요가 없다는 뜻이에요. 이 글에서는 실제로 호출해서 받은 응답을 줄여서 보여드려요. 영어 댓글뿐 아니라 한국어 댓글로 직접 테스트한 결과까지 포함했어요.

댓글이 API 파이프라인을 지나가며 감성, 질문, 구매의도, 불만 라벨이 자동으로 찍히는 모습으로, 텍스트 감정분석 API가 기존 댓글 호출에 그대로 얹혀 오는 과정을 보여줘요.

댓글 API 호출 하나로 텍스트 감정분석까지 되나요?

틱톡·인스타그램·유튜브·레딧·X·페이스북 댓글 리스트 엔드포인트는 이제 각 댓글의 computed 블록에 언어와 함께 네 가지 라벨을 기본으로 담아 돌려줘요. 실제로 받은 틱톡 댓글 응답이에요(일부 필드 생략).

json
{
  "comment": { "text": "Where’s Miss Peaches" },
  "computed": {
    "language": "en",
    "labels": {
      "sentiment": { "level": 2, "score_0_1": 0.5, "confidence": 0.94 },
      "question": { "p": 0.75 },
      "purchase_intent": { "p": 0.03 },
      "complaint": { "p": 0.02 }
    }
  }
}

별도 호출이 필요 없어요. 모니터링 파이프라인을 돌리려고 어차피 받아야 하는 댓글 리스트에 라벨이 그냥 얹혀 와요.

범용 AI 감정 분석 도구나 텍스트 감정 분석 AI 서비스에 댓글을 넘기려면, 댓글을 먼저 모아서 하나씩 따로 보내야 해요. Google Cloud Natural Language도 문서 하나에 요청 하나를 보내라고 안내해요(sentiment analysis, 즉 감성분석을 문서 단위로 처리하는 구조라서요). SocialCrawl은 그 단계 자체가 없어요. 이미 호출하는 댓글 리스트 응답 안에 computed.labels가 함께 와요.

한국어 댓글에도 라벨이 똑같이 붙을까요?

솔직하게 말할게요. 위 예시를 포함해서 이번에 라이브로 확인한 샘플 대부분은 영어 댓글이었어요. 그래서 2026년 10월 1일에 한국어 댓글이 달린 영상을 두 개 더 골라 직접 호출해 봤어요.

유튜브: 임영웅 무대 영상. GET /v1/youtube/video/comments로 받은 댓글 20개 전부 computed.language가 ko였어요. data.label_share.presets.sentiment.positive는 { n: 20, counted: 20, share: 1, low: 0.8808, high: 1, too_few: false }예요. 20개 전부 긍정으로 판정됐어요.

댓글sentimentquestion.p
"임영웅 얼씨구 어깨가 들썩들썩 너무 신나고 좋아요 대박나세요"level 4, score 1.00.03
"너무좋아요 얼씨구 최고예요 역시 임영웅 최고의가수 응원합니다 ~~"level 4, score 1.00.02
"볼수록 보고싶고 들을수록 듣고싶은 임영웅 춤 노래 대박이다"level 4, score 1.00.02

다만 이 20개는 전부 팬 댓글이라 "항상 다 긍정으로 찍는 거 아니야?"라는 의심을 풀어주진 못해요. 아래 틱톡 샘플이 그 반례예요.

틱톡: 먹방 해시태그로 찾은 영상. 참고로 한국어 해시태그(#먹방)로 찾은 첫 번째 영상은 댓글 49개 중 한국어가 0개였어요(댓글 언어는 포르투갈어·영어·스페인어·인도네시아어 순으로 많았어요). 한국어 해시태그가 한국어 댓글을 보장하진 않는다는 걸 이 과정에서 바로 확인한 셈이에요. 두 번째로 시도한 영상에서 댓글 47개 중 20개가 한국어였어요.

댓글sentimentquestion.p
"명란 짜요 안짜요?"level 2, score 0.520.75
"걍 명란이랑 후라이를 와구와구 먹는 것 부터 미침"level 4, score 0.990.06
"반찬 먹는 비율이 너무 많아서 내가 다 짠 느낌"level 1, score 0.330.05
"진짜 먹는거 맞음?"level 1, score 0.270.62
"관리 어캐하세여..운동하시나요"level 2, score 0.560.89

"진짜 먹는거 맞음?"은 의심 섞인 반응인데, 모델이 negative(level 1)와 question(0.62)으로 동시에 잡았어요. 다만 두 영상, 두 플랫폼을 합쳐 한국어 댓글 40개뿐인 작은 표본이에요. 한국어에서 라벨이 얼마나 정확한지 말할 수 있는 숫자는 아니고, 한국어 댓글에도 영어와 같은 필드로 라벨이 붙어 온다는 걸 확인한 정도로 봐 주세요.

라벨이 붙어도 요금은 그대로인가요?

네. judgments=off를 붙이면 computed.labels와 data.label_share, data.comment_language가 빠지지만 크레딧은 똑같아요. 댓글마다 붙는 computed.language는 그대로 남아요.

bash
curl -s "https://www.socialcrawl.dev/v1/tiktok/post/comments?url=https://www.tiktok.com/@stoolpresidente/video/7623818255903329566" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY"

curl -s "https://www.socialcrawl.dev/v1/tiktok/post/comments?url=https://www.tiktok.com/@stoolpresidente/video/7623818255903329566&judgments=off" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY"
플랫폼엔드포인트기본 크레딧judgments=off 크레딧
틱톡tiktok/post/comments11
인스타그램instagram/post/comments55
유튜브youtube/video/comments11
Xtwitter/tweet/replies11

가격은 그대로예요. 추가 크레딧 없이 라벨만 끄고 켤 수 있어요.

댓글 90%가 부정적이라는 걸 어떻게 숫자로 보여주나요?

data.label_share는 댓글 페이지를 바로 통계로 바꿔줘요. 비율뿐 아니라 표본 수, 판정 제외 수, 90% 신뢰구간, 검증용 원문 댓글까지 한 번에 와요.

bash
curl -s "https://www.socialcrawl.dev/v1/twitter/tweet/replies?url=https://x.com/News24/status/2093257170653483101" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY"

유가 인상 관련 게시물에 달린 답글 36개 중 6개는 판정 불가로 빠졌고, 판정된 30개 중 27개가 부정이었어요. data.label_share.presets.sentiment.negative는 { n: 36, counted: 27, abstained: 6, share: 0.9, low: 0.7745, high: 0.9593, too_few: false }예요. 여기서 counted는 판정된 개수가 아니라 부정 버킷에 들어간 개수라서, 27을 30으로 나눈 0.9가 share가 돼요. 검증용 원문 댓글도 같이 와요. 예를 들면 "@News24 News24 wants us to pay to read an article about how we will pay more for stuff" 같은 답글이에요.

이건 이 게시물 하나의 스냅샷이에요. "X 댓글은 보통 90% 부정적이다"처럼 일반화하면 안 돼요.

폭이 넓어 불확실한 신뢰구간 게이지와 폭이 좁아 확실한 신뢰구간 게이지를 나란히 비교한 모습으로, 표본이 적을 때 감정분석 API가 대표 비율을 숨기는 이유를 보여줘요.

댓글이 적으면 숫자를 숨기는 이유

too_few: true는 일부러 넣은 설계예요. 신뢰구간 폭이 0.25를 넘으면 대표 비율을 아예 돌려주지 않아요.

bash
curl -s "https://www.socialcrawl.dev/v1/instagram/post/comments?url=https://www.instagram.com/p/DXidPIVDU6M/" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY"

인스타그램 게시물의 댓글 첫 페이지(15개)에서 data.label_share.presets.sentiment.positive는 { n: 15, counted: 2, abstained: 6, share: null, low: 0.0765, high: 0.4964, too_few: true }였어요. 구간이 0.08~0.50, 폭이 0.42라 기준 0.25를 훌쩍 넘으니 share는 null, too_few는 true로 와요. scan_pages=2로 댓글을 30개까지 늘려도 모든 감성 버킷이 여전히 too_few: true였어요(30개 중 13개가 판정 불가였거든요).

판정 못 한 댓글 6개를 '아니오'로 세면 15개 중 2개, 13%라는 숫자가 나와요. SocialCrawl은 판정 못 한 댓글을 빼고, 남은 9개로는 구간이 너무 넓어서 숫자를 아예 내놓지 않아요.

댓글 언어와 지역을 혼동하면 안 되는 이유

data.comment_language는 댓글의 언어 구성이에요. 오디언스가 어느 나라 사람인지는 알려주지 않아요. 이번에 라이브로 확인한 영어 게시물 4건은 전부 en 100%였고, 위 한국어 샘플 2건은 computed.language 기준으로 각각 ko 20/20과 ko 20/47이었어요. 전부 "이 게시물에 달린 댓글의 언어" 얘기지, "이 채널 오디언스는 어느 나라에 많다"는 얘기가 아니에요. 오디언스 지역이 궁금하다면 prism/audience-language를 보세요. 댓글 언어 구성을 크리에이터 단위로 모아 주고, 틱톡에서는 팔로워 지역 한 페이지도 함께 돌려줘요.

최신순 정렬과 추가 페이지 스캔은 어떻게 과금되나요?

틱톡은 sort=recent로 읽은 댓글을 날짜순으로 재정렬해줘요. 다만 틱톡 자체에 최신순 댓글 순서가 없어서, SocialCrawl이 읽은 범위 안에서만 정렬한 뒤 data.scan.complete로 스레드 전체를 다 읽었는지 알려줘요. 다 못 읽었으면 data._warnings에 "TikTok has no newest-first comment order..." 경고가 붙고, data.comment_recency.recent_share_is_floor가 true로 와요. 더 많이 읽고 싶으면 scan_pages(최대 3)를 올리면 돼요.

인스타그램 scan_pages도 비슷해요. 이번 라이브 호출에서 scan_pages=2를 주니 두 페이지 모두 새 댓글을 추가해서 둘 다 과금됐어요(5+5=10크레딧, stopped: "pages"). 반복되는 페이지는 과금되지 않고 읽지 않은 페이지의 보류 크레딧은 같은 호출에서 환불되는 게 규칙이지만, 이번 호출에서는 반복 페이지 자체가 없어서 환불이 발생하지 않았어요. "환불될 수도 있다"는 조건부 규칙으로 이해하면 돼요.

어떻게 시작하나요?

  1. socialcrawl.dev에서 가입하면 API 키가 바로 나와요.
  2. 첫 호출은 이것 하나면 돼요.
bash
curl -s "https://www.socialcrawl.dev/v1/tiktok/post/comments?url=<틱톡 영상 URL>" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY"
  1. computed.labels와 data.label_share가 바로 보일 거예요. 한국어 댓글이 많은 영상을 고르고 싶다면 computed.language 분포부터 확인한 뒤 좁혀가는 걸 추천해요.

댓글 수집 자체가 처음이라면 유튜브 댓글 크롤링 글에서 페이지네이션과 답글 체인부터 보고 오세요. 그 글 마지막에서 다음 단계로 짚었던 게 바로 이 텍스트 감정분석 API예요. 엔드포인트별 파라미터는 틱톡 댓글 문서, 인스타그램 문서, 유튜브 문서에서 확인할 수 있어요.

자주 묻는 질문

SocialCrawl의 댓글 감성 분석은 추가 요금이 붙나요?

아니요. 이미 호출하는 댓글 리스트 요금 그대로이고, judgments=off로 끌 수도 있어요.

label_share는 정확히 뭘 보여주나요?

비율, 표본 수, 판정 제외 수, 90% 신뢰구간, 검증용 원문 댓글 최대 3개를 같이 줘요. 구간 폭이 0.25를 넘으면 too_few: true로 오고 대표 비율은 null이에요.

comment_language로 오디언스가 어느 나라 사람인지 알 수 있나요?

아니요. 언어 구성이지 국가 정보가 아니에요. 오디언스 지역이 필요하면 prism/audience-language를 보세요(팔로워 지역은 틱톡만 지원해요).

틱톡이나 인스타그램 댓글을 최신순으로 정렬할 수 있나요?

네. 틱톡은 sort=recent로 최신순 정렬이 되지만, 틱톡에 최신순 순서 자체가 없어서 읽은 범위(최대 3페이지) 안에서만 정렬돼요. 인스타그램은 scan_pages와 sort=recent를 함께 쓰면 돼요. 반복되는 페이지는 과금되지 않아요.

지금 댓글 라벨을 지원하는 플랫폼은 어디인가요?

틱톡, 인스타그램, 유튜브, 레딧, X(답글), 페이스북이에요. 이번 글에서 라이브로 직접 확인한 건 틱톡·인스타그램·유튜브·X 네 곳이고, 레딧·페이스북은 이번 글에서 직접 호출해 보진 않았지만 같은 필드가 붙는 플랫폼이에요.

구글 등 범용 감정분석 API와 뭐가 다른가요?

구글 감정 분석 API는 텍스트를 문서 하나씩 따로 보내면 문서와 문장 단위로 감정 점수(score)와 강도(magnitude)를 돌려줘요. 댓글을 모으는 일도, 질문·구매의도·불만을 가르는 일도 따로 해야 해요. SocialCrawl은 이미 호출하는 댓글 리스트에 댓글마다 이 네 가지 라벨을 같은 크레딧으로 얹어줘요. 한국어 감정분석 API를 찾고 계셨다면, 한국어 댓글도 같은 엔드포인트, 같은 크레딧으로 라벨이 붙어 와요(위 유튜브·틱톡 캡처 모두 1크레딧). 다만 직접 가진 텍스트를 보내 분석하는 API는 아니고, 확인한 한국어 표본도 댓글 40개뿐이에요.

Topics
#텍스트-감정분석-api#ai-감정-분석#텍스트-감정-분석-ai#sentiment-analysis-감성분석#구글-감정-분석-api#한국어-감정분석-api

함께 읽으면 좋은 글

🤖 AI agent or LLM? Read this page as markdown