import matplotlib as mpl mpl.use('Agg') import gradio as gr from utils.modules_sesgo_en_palabras import WEBiasExplorer2d, WEBiasExplorer4d, Embedding from examples.examples import fem_words, masc_words, old_words, young_words, diagnose_words from tool_info import TOOL_INFO word_vectors_path = 'fasttext-sbwc.100k.vec' we = Embedding(word_vectors_path) we.load_we_as_keyed_vectors(word_vectors_path) we.wv.init_sims(replace=True) LABEL_WORD_LIST_1 = 'Lista de palabras 1' LABEL_WORD_LIST_2 = 'Lista de palabras 2' LABEL_WORD_LIST_3 = 'Lista de palabras 3' LABEL_WORD_LIST_4 = 'Lista de palabras 4' LABEL_WORD_LIST_DIAGNOSE = 'Lista de palabras a diagnosticar' we_bias = WEBiasExplorer2d(we.wv) we_bias_2d = WEBiasExplorer4d(we.wv) explorar_sesgo_en_palabras_interface = gr.Blocks() with explorar_sesgo_en_palabras_interface: gr.Markdown("1. Escribi palabras para diagnosticar separadas por comas") with gr.Row(): with gr.Column(): with gr.Row(): diagnose_list = gr.Textbox(lines=2, label=LABEL_WORD_LIST_DIAGNOSE) with gr.Row(): gr.Markdown("2. Para graficar 2 espacios, completa las siguientes listas:") with gr.Row(): wordlist_1 = gr.Textbox(lines=2, label=LABEL_WORD_LIST_1) wordlist_2 = gr.Textbox(lines=2, label=LABEL_WORD_LIST_2) with gr.Row(): gr.Markdown("2. Para graficar 4 espacios, completa las siguientes listas:") with gr.Row(): wordlist_3 = gr.Textbox(lines=2, label=LABEL_WORD_LIST_3) wordlist_4 = gr.Textbox(lines=2, label=LABEL_WORD_LIST_4) with gr.Column(): with gr.Row(): bias2d = gr.Button('¡Graficar 2 estereotipos!') with gr.Row(): bias4d = gr.Button('¡Graficar 4 estereotipos!') with gr.Row(): err_msg = gr.Markdown(label='',visible=True) with gr.Row(): bias_plot = gr.Image(shape=(15, 15)) with gr.Row(): examples = gr.Examples( fn=we_bias.calculate_bias, inputs=[wordlist_1,wordlist_2,diagnose_list], outputs=[bias_plot,err_msg], examples=[ [fem_words,masc_words,diagnose_words], [young_words,old_words,diagnose_words] ] ) with gr.Row(): examples = gr.Examples( fn=we_bias_2d.calculate_bias, inputs=[wordlist_1,wordlist_2,wordlist_3,wordlist_4,diagnose_list], outputs=[bias_plot,err_msg], examples=[[fem_words,masc_words,young_words,old_words,diagnose_words]] ) with gr.Row(): gr.Markdown(TOOL_INFO) bias2d.click( fn=we_bias.calculate_bias, inputs=[wordlist_1,wordlist_2,diagnose_list], outputs=[bias_plot,err_msg]) bias4d.click( fn=we_bias_2d.calculate_bias, inputs=[wordlist_1,wordlist_2,wordlist_3,wordlist_4,diagnose_list], outputs=[bias_plot,err_msg]) explorar_sesgo_en_palabras_interface.queue(concurrency_count=10) explorar_sesgo_en_palabras_interface.launch()