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() |