공부 정리 블로그

0129 진행상황 본문

proyector en Chile

0129 진행상황

따옹 2025. 1. 30. 04:56

학습 데이터를 만들기 위해서 2023년도 캔버스 + 카테고리 정보가 포함된 데이터 만들기

 

1) txt 파일로 된 모든 캔버스 불러오기(2018~2024)

import pandas as pd
# file_path = '/content/drive/MyDrive/data_canvas_crece_emprende.txt'

data_canvas = pd.read_csv(
    "/content/drive/MyDrive/data_canvas_crece_emprende.txt",
    sep=";",
    comment="#"
)

print(data_canvas)

 

2) 그 중 2023년도 캔버스만 활용할 것으로 filter 시키기

filtered_data = data_canvas[data_canvas['Año'] == 2023]

print(filtered_data)

 

3) 카테고리 정보가 포함되어 있는 파일에서 2023년도 정보만 가져오기

 

 

4) 캔버스 파일에서 동일한 proyectoID, RutPostulante 를 공유하는 카테고리 정보를 캔버스 파일에 추가하기

re_2023_for_similarity_train_data.ipynb의 사본

# Step 4: 파일 2의 칼럼 이름 맞추기
df2.rename(columns={
    'Proyecto ID': 'ProyectoId',
    'Postulante_Beneficiario RUT-DV': 'RutPostulante',
    'Actividad_Economica_Postulación DESC': 'ActividadEconomicaDesc'
}, inplace=True)

# Step 5: 병합하여 파일 2의 칼럼 'c'를 파일 1에 추가
# Step 5: 병합하여 파일 2의 'ActividadEconomicaDesc'를 파일 1에 추가
df1 = pd.merge(df1, df2[['ProyectoId', 'RutPostulante', 'ActividadEconomicaDesc']],
               on=['ProyectoId', 'RutPostulante'], how='left')

# Step 6: 결과 확인
print("Updated DataFrame:")
print(df1.head())

# Step 7: 결과 저장 (선택 사항)
output_path = '/content/drive/MyDrive/통합용/re_final_2023_updated_file.xlsx'
df1.to_excel(output_path, index=False)
print(f"Updated file saved to: {output_path}")

 

 

5) 특정한 칼럼 정보만 남기고 모두 삭제

0129_지원자의 차별성 검토 기준 적용한_파일 생성 및 테스트.ipynb의 사본

# 남기고 싶은 칼럼 리스트 정의
columns_to_keep = ['ProyectoId', 'RutPostulante', 'PreguntaTexto', 'RespuestaTexto', 'ActividadEconomicaDesc']

# 해당 칼럼만 남기기
df3 = df3[columns_to_keep]

 

# 질문과 답변 결합
df['combined_text'] = (
    "Pregunta: " + df['PreguntaTexto'] +
    "\nRespuesta: " + df['RespuestaTexto']
)

# 결합된 텍스트 확인
df[['ProyectoId', 'RutPostulante', 'ActividadEconomicaDesc', 'combined_text']].head()

 

6) 유사성 기준(3가지)에 부합하는 질문만 남기고 모두 삭제

7) 유사성 기준(3가지)에 따라 질문, 답변을 묶어 새로운 데이터 생성

# 새로운 질문들을 기존 기준과 비교하여 매핑
criteria_mapping = {
    "운영 방식의 독창성": [
        "¿Cuáles son las alianzas realizadas o a realizar para mejorar la satisfacción de mis clientes?",
        "¿A través de qué medios realizo las ventas a mis clientes? ¿Cuáles son los medios, para dar a conocer mi producto/servicio, que prefieren mi/s tipo/s de clientes? ¿Cuáles son los medios con los que obtendría mayor venta en mi modelo de negocio?",
        "¿Qué acciones puedo implementar en mi negocio, desde el punto de vista de la eficiencia energética, energías renovables y economía circular? de manera de hacer mi producto o servicio más sustentable. ¿Tenía ya incorporada alguna de esta acciones en el proceso de mi producto o servicio?"
    ],
    "대상 고객의 차별화": [
        "¿Quiénes son los principales clientes? ¿A qué tipo de clientes apunta nuestro negocio?",
        "¿Qué relación tiene o espera tener con cada tipo de cliente descrito? ¿Alguno de los medios por los cuales busca relacionarse con el cliente, tiene algún costo asociado?",
        "¿Por cuál tipo de producto/servicio estarían dispuestos a pagar más nuestros clientes? ¿Por cuál tipo de producto/servicio pagan actualmente los clientes? ¿Qué tipo de medio de pago prefieren utilizar mis clientes?"
    ],
    "제공하는 제품/서비스의 독창성": [
        "¿Por qué los clientes deberían preferirme por sobre los demás?  ¿Por qué los clientes deberían preferir mi producto/servicio por sobre los demás?"
    ]
}

 

# 기준 태그 추가
def assign_criteria(question):
    for criteria, questions in criteria_mapping.items():
        if question in questions:
            return criteria
    return "기타"  # 기준에 없는 질문은 기타로 처리

# 기준 태그를 데이터프레임에 추가
df['criteria'] = df['PreguntaTexto'].apply(assign_criteria)

 

# 기준에 부합하지 않는 질문 제외
df_filtered = df[df['criteria'].notnull() & (df['criteria'] != "기타")]

# 모든 열 유지하면서 그룹화된 데이터 생성
grouped_df = (
    df_filtered.groupby(['ProyectoId', 'RutPostulante', 'ActividadEconomicaDesc', 'criteria'], as_index=False)
    .agg({
        'PreguntaTexto': lambda x: list(x),  # 질문을 리스트로 유지
        'RespuestaTexto': ' '.join  # 응답은 결합
        })
    )

# 결과 확인
grouped_df.head()

 

 

 

이제 할 일

8) GPT로 GTE 모델 학습 데이터 만들기

 

final_2023_grouped_categorized_file (1)
이 파일로 GPT 한테 부탁하기