Spaces:
Runtime error
Runtime error
| #os.system('pip install openpyxl') #works for huggingface-spaces | |
| #score of each latent variable ranges in [10, 50] | |
| def correct_score(score, big_5_indicator): | |
| big_5_sign = big_5_indicator[0] | |
| big_5_num = int(big_5_indicator[1]) | |
| dict1 = { | |
| 1 : 'Extraversion', | |
| 2 : 'Agreeableness', | |
| 3 : 'Conscientiousness', | |
| 4 : 'Neuroticism', | |
| 5 : 'Openness' | |
| } | |
| if big_5_sign=='+': | |
| return [dict1[big_5_num], score] | |
| elif big_5_sign =='-': | |
| return [dict1[big_5_num], 6-score] | |
| # correct_score(3, big_5_indicator='-2') | |
| def make_question(q): | |
| q = gr.Radio(choices=[1, 2, 3, 4, 5], label=q) #, value=5 | |
| return q | |
| def calculate_personality_score(questions, list_questions): | |
| personality = { | |
| 'Extraversion': 0, | |
| 'Agreeableness': 0, | |
| 'Conscientiousness': 0, | |
| 'Neuroticism': 0, | |
| 'Openness': 0 | |
| } | |
| for question in list_questions: | |
| big_5_indicator = questions[question[0]] | |
| score = correct_score(question[1], big_5_indicator=big_5_indicator) | |
| personality[score[0]] += score[1] | |
| return personality | |
| import gradio as gr | |
| import pandas as pd | |
| import numpy as np | |
| import os | |
| # | |
| df_big5_test = pd.read_csv('Big5.csv', sep=';', header=None) | |
| df_big5_test = df_big5_test[[0, 6]] | |
| df_big5_test.columns = ['question', 'score'] | |
| df_big5_test['score'] = df_big5_test['score'].apply(lambda x : x.replace('(', '').replace(')', '')[::-1]) | |
| # df.index = df.pop('question') | |
| questions = dict() | |
| for el in df_big5_test.values.tolist(): | |
| questions[el[0]] = el[1] | |
| questions | |
| #the first module becomes text1, the second module file1 | |
| def greet(*args): | |
| args_list = [item for item in args] | |
| #extract big5 | |
| q_list = list(questions) | |
| a_list = args_list[:] | |
| list_total = [[q_list[x], a_list[x]] for x in range(len(a_list))] | |
| personality = calculate_personality_score(questions, list_total) | |
| personality = { x : personality[x]/50 for x in personality} | |
| # personality = [personality['Openness'], personality['Conscientiousness'], personality['Extraversion'], personality['Agreeableness'], personality['Neuroticism']] | |
| # personality = [x/50 for x in personality] | |
| #to return a file: | |
| #return 'new.xlsx' | |
| return personality | |
| iface = gr.Interface( | |
| fn=greet, | |
| inputs=[make_question(q) for q in list(questions)], | |
| outputs=["text"] | |
| ) | |
| iface.launch() |