티스토리 뷰

 

제품 리뷰 텍스트 분석 시 장점과 단점, 정보를 각각 자동적으로 분류하기 위해

ChatGPT를 Fine Tuning 하기 위해서는 JSONL 파일이 필요함.

레퍼런스 파일(FineTuning01.xlsx)을 읽어서 각각의 데이터를 JSONL 형식으로 변경 후 파일로 저장함.

 

def Test_FineTuning_EN():
    file1 = "./BDSData/FineTuning01.xlsx"
    outFile = "./BDSData/FineTuning02.jsonl"
    sheet1 = "EN01"
    dataDF1 = bExcel.ReadFile(file1, sheet1)
    dataList1 = dataDF1.to_dict('records')
    str01 = "{\"messages\": [{\"role\": \"system\", \"content\": \"You are a competent text analyst.\"}, {\"role\": \"user\", \"content\": \"The following statement is a product review, so summarize it very briefly by separating the advantages, disadvantages, and information of the product.###"
    str02 = "\"}, {\"role\": \"assistant\", \"content\": \" 1.Advantage:"
    str03 = " 2.Disadvantage:"
    str04 = " 3.Information:"
    str05 = "\"}]}"
    jsonText = ""
    reviewCount = 0
    for data1 in dataList1:
        reviewCount += 1
#        if reviewCount>17: break;
        review1 = data1.get('ReviewText')
        if not review1: continue;
        review1 = review1.strip()
        positive1 = data1.get('Positive')
        if not positive1: positive1 = "없음."
        else: positive1 = positive1.strip()
        negative1 = data1.get('Negative')
        if not negative1: negative1 = "없음."
        else: negative1 = negative1.strip()
        info1 = data1.get('Neutral')
        if not info1: info1 = "없음."
        else: info1 = info1.strip()
        str1 = str01 + review1 + str02 + positive1 + str03 + negative1 + str04 + info1 + str05
        jsonText += "\n" + str1
        print(str1)

    with open(outFile, 'w', encoding='utf-8') as file2:
        file2.write(jsonText)
    print("텍스트가 성공적으로 파일로 저장되었습니다.")

 

 

반응형

'SWDesk' 카테고리의 다른 글

주요 알고리즘  (0) 2024.08.28
API 아키텍처 종류  (0) 2024.08.21
[Python] OpenAI 예제  (0) 2023.12.22
[Python] Gemini and Bard  (3) 2023.12.22
[Python] Methods for 'List'  (0) 2023.12.16