본문 바로가기

공부방

프롬프트 엔지니어링 | gpt3.5로 감정 분석 데이터 만들기

gpt3.5를 사용해서 데이터 생성하는 실습을 하는 중에 발견한 시행착오

 

1. 작업 지시를 할 때 떠올릴 수 있는 포맷과 출력 포맷을 같은 구조로 지정해줘야 한다. 

먼저 제로샷으로 해결하려고 하는데, 포맷을 JSON으로 출력하도록 하고 "문장1":"sentiment" 형식을 줬는데 답변이 제대로 안나왔다. 

# 목표
Sentiment analysis

# 작업
생성: 긍정 문장 8개, 부정 문장 2개
문장 형식: 반말

# Response Format:
JSON
{
"문장1" : "sentiment",
"문장2" : "sentiment",
"문장3" : "sentiment",
...
"문장10" : "sentiment",
}


답변:
{"오늘 하늘 너무 예쁘다" : "positive","너무 신나는 노래야" : "positive","오늘 날씨 진짜 좋다" : "positive","이 옷 참 예쁘다" : "positive","밥이 맛이 없다" : "negative","지금 정말 힘들어" : "negative",}

프롬프트 안에 #작업 이랑 Response Format이 맞던가, 아니면 작업을 저렇게 구조화하지 않던가. 

#작업 이 부분을 "문장 10개를 생성해."로 바꾸자 JSON안에 문장만 생성하고 감정 분석이 안나옴. 작업 안에 <문장>:<감정> 구조를 명시해주고 출력을 동일하게 지정했을 때 제대로 나옴. 

아니면 아래처럼 작업을 설명하고 긍정: 8개, 부정 2개의 형식 그대로 JSON 구조도 "positive": , "negative" 로 잡으면 제대로 나옴. 

Sentiment analysis를 위해 예시 문장 10개를 생성해.
# 개수:
- 긍정: 8개
- 부정: 2개

## 문장 형식: 반말
# Response Format: JSON
{ "positive": ["문장1", "문장2", ... "문장 8"],
"negative": ["문장9", "문장10"] }

 

참고로 온도값이 높았을 때 부정문 개수를 못맞추거나 분류가 애매한 문장을 이상하게 분류해놓기도 했다. 

정답지를 만들고자 하는 작업에서는 온도값을 낮추는 것이 좋음.