LMartinezEXEX commited on
Commit
832c074
1 Parent(s): 226cbb5

Initial commit

Browse files
README.md CHANGED
@@ -1,11 +1,10 @@
1
  ---
2
- title: Edia 2
3
- emoji: 🌖
4
- colorFrom: green
5
- colorTo: gray
6
  sdk: static
7
  pinned: false
8
- license: mit
9
  ---
10
 
11
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: Prueba
3
+ emoji: 🏢
4
+ colorFrom: blue
5
+ colorTo: blue
6
  sdk: static
7
  pinned: false
 
8
  ---
9
 
10
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
images/background.png ADDED
images/spain.png ADDED
images/united-states.png ADDED
index.html CHANGED
@@ -3,17 +3,83 @@
3
  <head>
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
 
 
7
  <link rel="stylesheet" href="style.css" />
 
 
 
 
 
8
  </head>
9
  <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  </body>
19
  </html>
 
3
  <head>
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width" />
6
+
7
+ <title>EDIA</title>
8
+
9
  <link rel="stylesheet" href="style.css" />
10
+ <script src="languages/es.js"></script>
11
+ <script src="languages/en.js"></script>
12
+ <script src="links/es.js"></script>
13
+ <script src="links/en.js"></script>
14
+ <script type="text/javascript" src="javascript/index.js"></script>
15
  </head>
16
  <body>
17
+ <div id="head-flex-container">
18
+ <div id="title-container">
19
+ <h1 id="name">EDIA</h1>
20
+ <h2 id="subname">Estereotipos y Discriminación en Inteligencia Artificial</h2>
21
+ </div>
22
+ <button id="translate" onclick="translatePage()"><img id="flag-translate" src="images/united-states.png" alt=""> English</button>
 
23
  </div>
24
+ <div id="description-container">
25
+ <p id="intro_1">Los modelos de lenguaje y las representaciones de palabras obtenidas con aprendizaje automatizado contienen estereotipos discriminatorios. Aquí presentamos el proyecto EDIA (Estereotipos y Discriminación en Inteligencia Artificial). El objetivo de este proyecto es diseñar y evaluar una metodología que permita a comunidades de ciencias sociales y personas expertas de dominio en Latinoamérica, explorar sesgos y estereotipos discriminatorios presentes en word embeddings y modelos de lenguaje. También les permite definir el tipo de sesgo a explorar y acercarse a un enfoque interseccional desde dos dimensiones binarias de análisis (por ejemplo, <i>mujer-hombre</i> vs <i>gordo-flaco</i>).</p>
26
+ <p id="intro_2">EDIA contiene diversas funciones que sirven para detectar e inspeccionar sesgos en sistemas de procesamiento de lenguaje natural basados en modelos de lenguaje o word embeddings. Contamos con modelos en español e inglés para trabajar y explorar los sesgos en diferentes idiomas a requerimiento de las personas usuarias. Cada una de las siguientes pestañas son funciones distintas que nos acercan a un aspecto particular de la problemática del sesgo y a la vez, nos permiten entender partes diferentes pero complementarias del mismo.</p>
27
+ </div>
28
+ <div id="main-buttons-flex-container">
29
+ <a class="button" id="hf" target="_blank" href="https://huggingface.co/spaces/vialibre/bias_tool_serv1">Pruebalo en HuggingFace🤗!</a>
30
+ <a class="button" id="ccad" target="_blank" href="#">Pruebalo en CCAD!</a>
31
+ <a class="button" id="tutorial" target="_blank" href="#">Tutorial de la herramienta</a>
32
+ </div>
33
+ <div id="cards-container">
34
+
35
+ <div class="card" id="word-bias-card">
36
+ <h3 id="word-bias-title">Sesgos en listas de palabras</h3>
37
+ <div class="card-description-flex-container">
38
+ <p id="word-bias-description">Basada en una técnica para detectar sesgos en WE, esta función nos permite visualizar la distribución de palabras en un espacio 2D y con ello observar la distancia entre ellas. Entre más contextos de ocurrencia compartan, estarán más cerca, y entre menos contextos de ocurrencia compartan, estarán más lejos. Esto, generalmente, hace que las palabras con un significado parecido aparezcan cercanas. A partir de la creación de listas de palabras que nos sirven para definir campos semánticos, podremos observar sesgos y explorar palabras vecinas entre esos significados.</p>
39
+ <div class="buttons-flex-container">
40
+ <a class="button demo" id="word-bias-demo" target="_blank" href="https://huggingface.co/spaces/vialibre/edia_we_es">Demo</a>
41
+ <a class="button tuto" target="_blank" id="word-bias-tutorial" href="#">Tutorial: Explorar palabras y sus sesgos</a>
42
+ <div class="divided-buttons-flex-container">
43
+ <a class="button manual" id="word-bias-manual-1" target="_blank" href="https://shorturl.at/cgwxJ">Manual:<br>Explorar palabras</a>
44
+ <a class="button manual" id="word-bias-manual-2" target="_blank" href="https://shorturl.at/htuEI">Manual:<br>Explorar sesgos</a>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+
50
+ <div class="card" id="phrase-bias-card">
51
+ <h3 id="phrase-bias-title">Sesgos en frases</h3>
52
+ <div class="card-description-flex-container">
53
+ <p id="phrase-bias-description">Aquí desplegamos una herramienta que utiliza modelos de lenguaje para evidenciar sesgos en frases, lo que nos permite trabajar con sesgos no binarios (como mujer - hombre, femenino - masculino) y eliminar ambigüedades (producto de polisemias). A partir de oraciones en donde una contenga <i>a) estereotipo</i> y la otra <i>b) antiestereotipo</i> (ejemplo: <i>a)</i> Las parejas de <i>homosexuales</i> no deberían tener permitido casarse, <i>b)</i> Las parejas de <i>heterosexuales</i> no deberían tener permitido casarse.), buscamos definir las preferencias de un modelo de lenguaje pre-entrenado a la hora de producir lenguaje. Si el modelo no tuviera sesgo ambas tendrían el mismo nivel de preferencia, pero si el modelo estuviera sesgado, una va a tener mayor preferencia.</p>
54
+ <div class="buttons-flex-container">
55
+ <a class="button demo" id="phrase-bias-demo" target="_blank" href="https://huggingface.co/spaces/vialibre/edia_lmodels_es">Demo</a>
56
+ <div class="divided-buttons-flex-container">
57
+ <a class="button tuto" id="phrase-bias-tutorial-1" target="_blank" href="#">Tutorial:<br>Sesgos en frases</a>
58
+ <a class="button tuto" id="phrase-bias-tutorial-2" target="_blank" href="#">Tutorial:<br>Crows-Pairs</a>
59
+ </div>
60
+ <div class="divided-buttons-flex-container">
61
+ <a class="button manual" id="phrase-bias-manual-1" target="_blank" href="https://shorturl.at/fkBL3">Manual:<br>Sesgos en frase</a>
62
+ <a class="button manual" id="phrase-bias-manual-2" target="_blank" href="https://shorturl.at/gJLTU">Manual:<br>Crows-Pairs</a>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </div>
67
+
68
+ <div class="card" id="data-bias-card">
69
+ <h3 id="data-bias-title">Datos de las palabras</h3>
70
+ <div class="card-description-flex-container">
71
+ <p id="data-bias-description">Esta herramienta muestra información adicional de la palabra, como la frecuencia y el contexto de aparición dentro del corpus de entrenamiento. Sirve para explicar e interpretar comportamientos inesperados en otras pestañas producto de la polisemia o la poca frecuencia de las palabras, y a partir de esta exploración, poder realizar modificaciones pertinentes en nuestras listas de palabras y frases.</p>
72
+ <div class="buttons-flex-container">
73
+ <a class="button demo" id="data-bias-demo" target="_blank" href="https://huggingface.co/spaces/vialibre/edia_datos_es">Demo</a>
74
+ <a class="button tuto" target="_blank" id="data-bias-tutorial" href="#">Tutorial: Sesgo en datos</a>
75
+ <a class="button manual" target="_blank" id="data-bias-manual" href="https://shorturl.at/CIVY6">Manual</a>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </div>
80
+
81
+ <footer>
82
+ <p id="footer-description">ACLARACIONES IMPORTANTES: Las consultas realizadas al usar este software quedan registradas automáticamente en nuestro sistema. Declaramos que la información recabada es anónima, confidencial y que el uso de la misma sólo será para fines de investigación. Para realizar las exploraciones de las dimensiones de análisis, como género, necesitamos simplificarlo a un fenómeno binario; entendemos que es una sobresimplificación, se trata de una primera aproximación a la familia de soluciones de mitigación que sabemos requiere de una mayor complejidad para tratar los fenómenos de sesgo dentro de los constructos sociales.</p>
83
+ </footer>
84
  </body>
85
  </html>
javascript/index.js ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var language = "spanish"
2
+ function translatePage() {
3
+ var data
4
+ var links
5
+ if (language === "spanish") {
6
+ data = english_data
7
+ links = english_links
8
+
9
+ document.getElementById("translate").innerHTML = "<img id=\"flag-translate\" src=\"images/spain.png\" alt=\"\"> Español"
10
+ language = "english"
11
+ } else {
12
+ data = spanish_data
13
+ links = spanish_links
14
+
15
+ document.getElementById("translate").innerHTML = "<img id=\"flag-translate\" src=\"images/united-states.png\" alt=\"\"> English"
16
+ language = "spanish"
17
+ }
18
+
19
+ displayElements(language)
20
+
21
+
22
+ // Head
23
+ document.getElementById("subname").innerHTML = data['toolSubname']
24
+ document.getElementById("intro_1").innerHTML = data['introduction_1']
25
+ document.getElementById("intro_2").innerHTML = data['introduction_2']
26
+
27
+ // Main buttons
28
+ document.getElementById("hf").innerHTML = data['hf_btn']
29
+ document.getElementById("ccad").innerHTML = data['ccad_btn']
30
+ document.getElementById("tutorial").innerHTML = data['tutorial_btn']
31
+
32
+ // Cards
33
+
34
+ // Word bias
35
+
36
+ // Labels
37
+ document.getElementById("word-bias-title").innerHTML = data['wordBias']['title']
38
+ document.getElementById("word-bias-description").innerHTML = data['wordBias']['description']
39
+ document.getElementById("word-bias-tutorial").innerHTML = data['wordBias']['tutorial']
40
+ document.getElementById("word-bias-manual-1").innerHTML = data['wordBias']['manual-1']
41
+ document.getElementById("word-bias-manual-2").innerHTML = data['wordBias']['manual-2']
42
+
43
+ // Buttons href
44
+ document.getElementById('word-bias-demo').href = links['wordBias']['demo']
45
+ document.getElementById("word-bias-tutorial").href = links['wordBias']['tutorial']
46
+ document.getElementById("word-bias-manual-1").href = links['wordBias']['manual-1']
47
+ document.getElementById("word-bias-manual-2").href = links['wordBias']['manual-2']
48
+
49
+ // Phrase bias
50
+
51
+ // Labels
52
+ document.getElementById("phrase-bias-title").innerHTML = data['phraseBias']['title']
53
+ document.getElementById("phrase-bias-description").innerHTML = data['phraseBias']['description']
54
+ document.getElementById("phrase-bias-tutorial-1").innerHTML = data['phraseBias']['tutorial-1']
55
+ document.getElementById("phrase-bias-tutorial-2").innerHTML = data['phraseBias']['tutorial-2']
56
+ document.getElementById("phrase-bias-manual-1").innerHTML = data['phraseBias']['manual-1']
57
+ document.getElementById("phrase-bias-manual-2").innerHTML = data['phraseBias']['manual-2']
58
+
59
+ // Buttons href
60
+ document.getElementById('phrase-bias-demo').href = links['phraseBias']['demo']
61
+ document.getElementById("phrase-bias-tutorial-1").href = links['phraseBias']['tutorial-1']
62
+ document.getElementById("phrase-bias-tutorial-2").href = links['phraseBias']['tutorial-2']
63
+ document.getElementById("phrase-bias-manual-1").href = links['phraseBias']['manual-1']
64
+ document.getElementById("phrase-bias-manual-2").href = links['phraseBias']['manual-2']
65
+
66
+ // Data bias
67
+
68
+ //Labels
69
+ document.getElementById("data-bias-title").innerHTML = data['dataBias']['title']
70
+ document.getElementById("data-bias-description").innerHTML = data['dataBias']['description']
71
+ document.getElementById("data-bias-tutorial").innerHTML = data['dataBias']['tutorial']
72
+ document.getElementById("data-bias-manual").innerHTML = data['dataBias']['manual']
73
+
74
+ document.getElementById("data-bias-demo").href = links['dataBias']['demo']
75
+ document.getElementById("data-bias-tutorial").href = links['dataBias']['tutorial']
76
+ document.getElementById("data-bias-manual").href = links['dataBias']['manual']
77
+
78
+ // Footer
79
+ document.getElementById("footer-description").innerHTML = data['footer']
80
+ }
81
+
82
+ function displayElements(language) {
83
+ // Hide elements when in English version
84
+ if (language === "english") {
85
+
86
+ // HugginfFace button
87
+ document.getElementById("hf").style.display = 'none'
88
+
89
+ // Word bias manuals
90
+ document.getElementById("word-bias-manual-1").style.visibility = 'hidden'
91
+ document.getElementById("word-bias-manual-2").style.visibility = 'hidden'
92
+
93
+ // Phrase bias manuals
94
+ document.getElementById("phrase-bias-manual-1").style.visibility = 'hidden'
95
+ document.getElementById("phrase-bias-manual-2").style.visibility = 'hidden'
96
+
97
+ // Data bias card
98
+ document.getElementById("data-bias-card").style.display = 'none'
99
+ } else {
100
+
101
+ // HugginfFace button
102
+ document.getElementById("hf").style.display = 'block'
103
+
104
+ // Word bias manuals
105
+ document.getElementById("word-bias-manual-1").style.visibility = 'visible'
106
+ document.getElementById("word-bias-manual-2").style.visibility = 'visible'
107
+
108
+ // Phrase bias manuals
109
+ document.getElementById("phrase-bias-manual-1").style.visibility = 'visible'
110
+ document.getElementById("phrase-bias-manual-2").style.visibility = 'visible'
111
+
112
+ // Data bias card
113
+ document.getElementById("data-bias-card").style.display = 'block'
114
+ }
115
+ }
languages/en.js ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const english_data = {
2
+ "toolName": "EDIA: Stereotypes and Discrimination in Artificial Intelligence",
3
+ "toolSubname": "Stereotypes and Discrimination in Artificial Intelligence",
4
+ "introduction_1": "Language models and word representations obtained with machine learning contain discriminatory stereotypes. Here we present the EDIA project (Stereotypes and Discrimination in Artificial Intelligence). This project aimed to design and evaluate a methodology that allows social scientists and domain experts in Latin America to explore biases and discriminatory stereotypes present in word embeddings (WE) and language models (LM). It also allowed them to define the type of bias to explore and do an intersectional analysis using two binary dimensions (for example, <i>female-male</i> intersected with <i>fat-skinny</i>).",
5
+ "introduction_2": "EDIA contains several functions that serve to detect and inspect biases in natural language processing systems based on language models or word embeddings. We have models in Spanish and English to work with and explore biases in different languages ​​at the user's request. Each of the following spaces contains different functions that bring us closer to a particular aspect of the problem of bias and they allow us to understand different but complementary parts of it.",
6
+ "wordBias": {
7
+ "title": "Biases in words",
8
+ "description": "Based on a technique to detect biases in WE, this function allows us to visualize the distribution of words in 2D space and thus observe the distance between them. The more occurrence contexts they share, the closer they will be, and the fewer occurrence contexts they share, the further they will be. This usually makes words with a similar meaning appear close. From the creation of word lists to define semantic fields, we will be able to observe biases and explore neighboring words between those meanings.",
9
+ "tutorial": "Tutorial: Word exploration and bias",
10
+ "manual-1": "Handbook:<br>Word exploration",
11
+ "manual-2":"Handbook:<br>Word bias"
12
+ },
13
+ "phraseBias": {
14
+ "title": "Sentence biases",
15
+ "description": "Here we deploy a tool that uses language models to reveal sentence biases, allowing us to work with non-binary biases (such as female-male) and avoid ambiguities (product of polysemy). From sentences where one of them contains <i>a) stereotype</i> and the other <i>b) anti-stereotype</i> (example: <i>a)</i> <i>Homosexual</i> couples should not be allowed to get married, <i>b)</i> <i>Heterosexual</i> couples should not be allowed to get married). We seek to define the preferences of a pre-trained language model when producing language. If the model were unbiased, both would have the same level of preference, but if the model were biased, one would have a higher preference.",
16
+ "tutorial-1": "Tutorial:<br>Phrase bias",
17
+ "manual-1": "Handbook:<br>Phrase bias",
18
+ "tutorial-2": "Tutorial:<br>Crows - Pairs",
19
+ "manual-2": "Handbook:<br>Crows - Pairs"
20
+ },
21
+ "dataBias": {
22
+ "title": "Data",
23
+ "description": "This tool shows additional information about the word, such as frequency and context of occurrence within the training corpus used to explain and interpret unexpected behaviors in other tabs as a result of polysemy or the infrequency of words, and from this exploration, to be able to make pertinent modifications in our lists of words and phrases.",
24
+ "tutorial": "Tutorial: Bias in data",
25
+ "manual": "Handbook"
26
+ },
27
+ "footer": "IMPORTANT CLARIFICATIONS: Queries made when using this software are automatically registered in our system. We declare that the information collected is anonymous, confidential and that it will only be used for research purposes. <i>To perform the explorations of the dimensions of analysis, such as gender, we need to simplify it to a binary phenomenon; We understand that it is an oversimplification, it is a first approximation and we are aware of this limitation while representing complex phenomena within social constructs.</i>",
28
+ "hf_btn": "Try it out in HuggingFace🤗!",
29
+ "ccad_btn": "Try it out in CCAD!",
30
+ "tutorial_btn": "EDIA video presentation"
31
+ }
languages/es.js ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const spanish_data = {
2
+ "toolName": "EDIA: Estereotipos y Discriminación en Inteligencia Artificial",
3
+ "toolSubname": "Estereotipos y Discriminación en Inteligencia Artificial",
4
+ "introduction_1": "Los modelos de lenguaje y las representaciones de palabras obtenidas con aprendizaje automatizado contienen estereotipos discriminatorios. Aquí presentamos el proyecto EDIA (Estereotipos y Discriminación en Inteligencia Artificial). El objetivo de este proyecto es diseñar y evaluar una metodología que permita a comunidades de ciencias sociales y personas expertas de dominio en Latinoamérica, explorar sesgos y estereotipos discriminatorios presentes en word embeddings y modelos de lenguaje. También les permite definir el tipo de sesgo a explorar y acercarse a un enfoque interseccional desde dos dimensiones binarias de análisis (por ejemplo, <i>mujer-hombre</i> vs <i>gordo-flaco</i>).",
5
+ "introduction_2": "EDIA contiene diversas funciones que sirven para detectar e inspeccionar sesgos en sistemas de procesamiento de lenguaje natural basados en modelos de lenguaje o word embeddings. Contamos con modelos en español e inglés para trabajar y explorar los sesgos en diferentes idiomas a requerimiento de las personas usuarias. Cada una de las siguientes pestañas son funciones distintas que nos acercan a un aspecto particular de la problemática del sesgo y a la vez, nos permiten entender partes diferentes pero complementarias del mismo.",
6
+ "wordBias": {
7
+ "title": "Sesgos en listas de palabras",
8
+ "description": "Basada en una técnica para detectar sesgos en WE, esta función nos permite visualizar la distribución de palabras en un espacio 2D y con ello observar la distancia entre ellas. Entre más contextos de ocurrencia compartan, estarán más cerca, y entre menos contextos de ocurrencia compartan, estarán más lejos. Esto, generalmente, hace que las palabras con un significado parecido aparezcan cercanas. A partir de la creación de listas de palabras que nos sirven para definir campos semánticos, podremos observar sesgos y explorar palabras vecinas entre esos significados.",
9
+ "tutorial": "Tutorial: Explorar palabras y sus sesgos",
10
+ "manual-1": "Manual:<br>Explorar palabras",
11
+ "manual-2":"Manual:<br>Explorar sesgos"
12
+ },
13
+ "phraseBias": {
14
+ "title": "Sesgos en frases",
15
+ "description": "Aquí desplegamos una herramienta que utiliza modelos de lenguaje para evidenciar sesgos en frases, lo que nos permite trabajar con sesgos no binarios (como mujer - hombre, femenino - masculino) y eliminar ambigüedades (producto de polisemias). A partir de oraciones en donde una contenga <i>a) estereotipo</i> y la otra <i>b) antiestereotipo</i> (ejemplo: <i>a)</i> Las parejas de <i>homosexuales</i> no deberían tener permitido casarse, <i>b)</i> Las parejas de <i>heterosexuales</i> no deberían tener permitido casarse.), buscamos definir las preferencias de un modelo de lenguaje pre-entrenado a la hora de producir lenguaje. Si el modelo no tuviera sesgo ambas tendrían el mismo nivel de preferencia, pero si el modelo estuviera sesgado, una va a tener mayor preferencia.",
16
+ "tutorial-1": "Tutorial:<br>Sesgos en frases",
17
+ "manual-1": "Manual:<br>Sesgos en frases",
18
+ "tutorial-2": "Tutorial:<br>Crows - Pairs",
19
+ "manual-2": "Manual:<br>Crows - Pairs"
20
+ },
21
+ "dataBias": {
22
+ "title": "Datos de las palabras",
23
+ "description": "Esta herramienta muestra información adicional de la palabra, como la frecuencia y el contexto de aparición dentro del corpus de entrenamiento. Sirve para explicar e interpretar comportamientos inesperados en otras pestañas producto de la polisemia o la poca frecuencia de las palabras, y a partir de esta exploración, poder realizar modificaciones pertinentes en nuestras listas de palabras y frases.",
24
+ "tutorial": "Tutorial: Sesgo en datos",
25
+ "manual": "Manual"
26
+ },
27
+ "footer": "ACLARACIONES IMPORTANTES: Las consultas realizadas al usar este software quedan registradas automáticamente en nuestro sistema. Declaramos que la información recabada es anónima, confidencial y que el uso de la misma sólo será para fines de investigación. <i>Para realizar las exploraciones de las dimensiones de análisis, como género, necesitamos simplificarlo a un fenómeno binario; entendemos que es una sobresimplificación, se trata de una primera aproximación a la familia de soluciones de mitigación que sabemos requiere de una mayor complejidad para tratar los fenómenos de sesgo dentro de los constructos sociales.</i>",
28
+ "hf_btn": "Pruebalo en HuggingFace🤗!",
29
+ "ccad_btn": "Pruebalo en CCAD!",
30
+ "tutorial_btn": "Video presentación de EDIA"
31
+ }
links/en.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const english_links = {
2
+ "hf_stable": "#",
3
+ "ccad_stable": "#",
4
+ "main_tutorial": "#",
5
+ "wordBias": {
6
+ "demo": "https://huggingface.co/spaces/vialibre/edia_we_en",
7
+ "tutorial": "#",
8
+ "manual-1": "#",
9
+ "manual-2": "#"
10
+ },
11
+ "phraseBias": {
12
+ "demo": "https://huggingface.co/spaces/vialibre/edia_lmodels_en",
13
+ "tutorial-1": "#",
14
+ "tutorial-2": "#",
15
+ "manual-1": "#",
16
+ "manual-2": "#"
17
+ },
18
+ "dataBias": {
19
+ "demo": "#",
20
+ "tutorial": "#",
21
+ "manual": "#"
22
+ }
23
+ }
links/es.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const spanish_links = {
2
+ "hf_stable": "https://huggingface.co/spaces/vialibre/bias_tool_serv1",
3
+ "ccad_stable": "#",
4
+ "main_tutorial": "#",
5
+ "wordBias": {
6
+ "demo": "https://huggingface.co/spaces/vialibre/edia_we_es",
7
+ "tutorial": "#",
8
+ "manual-1": "https://shorturl.at/cgwxJ",
9
+ "manual-2": "https://shorturl.at/htuEI"
10
+ },
11
+ "phraseBias": {
12
+ "demo": "https://huggingface.co/spaces/vialibre/edia_lmodels_es",
13
+ "tutorial-1": "#",
14
+ "tutorial-2": "#",
15
+ "manual-1": "https://shorturl.at/fkBL3",
16
+ "manual-2": "https://shorturl.at/gJLTU"
17
+ },
18
+ "dataBias": {
19
+ "demo": "https://huggingface.co/spaces/vialibre/edia_datos_es",
20
+ "tutorial": "#",
21
+ "manual": "https://shorturl.at/CIVY6"
22
+ }
23
+ }
style.css CHANGED
@@ -1,28 +1,264 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
 
9
  }
10
 
11
  p {
12
- color: rgb(107, 114, 128);
13
  font-size: 15px;
14
  margin-bottom: 10px;
15
  margin-top: 5px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  }
17
 
18
  .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
  padding: 16px;
22
- border: 1px solid lightgray;
23
  border-radius: 16px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ --card-bg: white;
3
+ --main-btn-primary: black;
4
+ --main-btn-secundary: white;
5
  }
6
 
7
+ body {
8
+ padding: 1rem;
9
+ font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
10
+ background-image: url("images/background.png");
11
  }
12
 
13
  p {
14
+ color: rgb(24, 24, 24);
15
  font-size: 15px;
16
  margin-bottom: 10px;
17
  margin-top: 5px;
18
+ text-align: justify;
19
+ line-height: 1.7;
20
+ }
21
+
22
+ button {
23
+ border: 0;
24
+ border-radius: 0.25rem;
25
+ font-size: 1rem;
26
+ line-height: 1.2;
27
+ padding: 0.25rem 0.5rem;
28
+ margin: 0.25rem;
29
+ cursor: pointer;
30
+ }
31
+
32
+ a.button {
33
+ display: block;
34
+ border: 0;
35
+ border-radius: 0.25rem;
36
+ font-size: 1rem;
37
+ line-height: 1.2;
38
+ padding: 0.25rem 0.5rem;
39
+ margin: 0.25rem;
40
+ cursor: pointer;
41
+ text-decoration: none;
42
+ text-align: center;
43
+ color: black;
44
+ }
45
+
46
+ #head-flex-container {
47
+ margin-bottom: 2rem;
48
+ display: flex;
49
+ flex-direction: row;
50
+ flex-wrap: wrap-reverse;
51
+ justify-content: space-between;
52
+ align-items: flex-end;
53
+ gap: 1rem;
54
+ }
55
+
56
+ #head-flex-container > #title-container {
57
+ flex-grow: 3;
58
+ }
59
+
60
+ #title-container > #name {
61
+ margin: 0;
62
+ font-size: 42px;
63
+ }
64
+
65
+ #title-container > #subname {
66
+ margin: 0;
67
+ color: white;
68
+ font-size: 18px;
69
+ }
70
+
71
+ #main-buttons-flex-container {
72
+ margin-top: 1.5rem;
73
+ display: flex;
74
+ flex-direction: row;
75
+ flex-wrap: wrap;
76
+ justify-content: space-evenly;
77
+ align-items: baseline;
78
+ }
79
+
80
+ #main-buttons-flex-container > .button {
81
+ flex: 1;
82
+ white-space: nowrap;
83
+ min-width: 230px;
84
+ }
85
+
86
+ #cards-container {
87
+ padding: 0.5rem 0;
88
  }
89
 
90
  .card {
91
+ min-width: 230px;
92
+ margin: 1rem auto;
93
  padding: 16px;
94
+ border: 1px solid var(--card-bg);
95
  border-radius: 16px;
96
+ background-color: var(--card-bg);
97
+ transition: transform .5s, box-shadow 1s;
98
+ }
99
+
100
+ .card:hover {
101
+ transform: scale(1.02) perspective(0px);
102
+ box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);
103
+ }
104
+
105
+ .card > h3 {
106
+ margin: 0.25rem;
107
+ }
108
+
109
+ .card p {
110
+ color: rgb(92, 93, 97);
111
+ }
112
+
113
+ .card-description-flex-container {
114
+ display: flex;
115
+ flex-direction: row;
116
+ flex-wrap: wrap;
117
+ justify-content: space-between;
118
+ align-items: flex-start;
119
+ column-gap: 20px;
120
+ min-width: 100%;
121
+ }
122
+
123
+ .card-description-flex-container p:first-child {
124
+ flex: 2 1 780px;
125
+ }
126
+
127
+ .card-description-flex-container div:nth-child(2) {
128
+ flex: 55 1 0;
129
+ }
130
+
131
+ .card-description-flex-container > p {
132
+ display: block;
133
+ text-align: justify;
134
+ }
135
+
136
+ .buttons-flex-container {
137
+ display: flex;
138
+ flex-direction: column;
139
+ gap: 7px 5px;
140
+ flex: 1;
141
+ max-width: 500px;
142
  }
143
 
144
+ .divided-buttons-flex-container {
145
+ display: flex;
146
+ flex-direction: row;
147
+ gap: 0 5px;
148
  }
149
+
150
+ .divided-buttons-flex-container > .button {
151
+ flex: 1;
152
+ }
153
+
154
+ footer > p {
155
+ color: rgb(136, 138, 142);
156
+ font-size: 10px;
157
+ }
158
+
159
+ /* Buttons Styling */
160
+
161
+ button#translate {
162
+ padding: 0.5rem 0.75rem;
163
+ margin: 5px 0 0 0;
164
+ background-color: #58A6FF;
165
+ color: white;
166
+ transition: background-color 0.6s;
167
+ }
168
+
169
+ button#translate:hover {
170
+ background-color: #4080c9;
171
+ }
172
+
173
+ button#translate > img {
174
+ vertical-align:bottom;
175
+ width: 20px;
176
+ }
177
+
178
+ #main-buttons-flex-container > .button {
179
+ padding: 0.5rem 0.75rem;
180
+ }
181
+
182
+ #main-buttons-flex-container > .button:hover {
183
+ box-shadow: -7px -7px 20px 0px #fff9,
184
+ -4px -4px 5px 0px #fff9,
185
+ 7px 7px 20px 0px #0002,
186
+ 4px 4px 5px 0px #0001;
187
+ }
188
+
189
+ #main-buttons-flex-container > .button#hf {
190
+ border-radius: 0;
191
+ background-color: var(--main-btn-primary);
192
+ border: 1px solid var(--main-btn-primary);
193
+ color: var(--main-btn-secundary);
194
+ transition: 0.4s;
195
+ }
196
+
197
+ #main-buttons-flex-container > .button#ccad {
198
+ border-radius: 0;
199
+ background-color: var(--main-btn-primary);
200
+ border: 1px solid var(--main-btn-primary);
201
+ color: var(--main-btn-secundary);
202
+ transition: 0.4s;
203
+ }
204
+
205
+ #main-buttons-flex-container > .button#hf:hover,
206
+ #main-buttons-flex-container > .button#ccad:hover {
207
+ background: var(--main-btn-secundary);
208
+ color: var(--main-btn-primary);
209
+ border: none;
210
+ }
211
+
212
+ #main-buttons-flex-container > .button#tutorial {
213
+ border-radius: 0;
214
+ background-color: var(--main-btn-secundary);
215
+ border: 1px solid var(--main-btn-primary);
216
+ transition: 0.4s;
217
+ }
218
+
219
+ .buttons-flex-container .button.demo {
220
+ border-radius: 0;
221
+ background: linear-gradient(45deg, purple 0%, rgb(242, 202, 242) 60%, white 100%);
222
+ background-size: 200% 200%;
223
+ background-position: right bottom;
224
+ transition: 0.5s;
225
+ }
226
+
227
+ .buttons-flex-container .button.demo:hover {
228
+ background-position: left bottom;
229
+ color: white;
230
+ }
231
+
232
+ .buttons-flex-container .button.tuto {
233
+ border-radius: 0;
234
+ background: linear-gradient(45deg, green 0%, rgb(189, 223, 189) 60%, white 100%);
235
+ background-size: 200% 200%;
236
+ background-position: right bottom;
237
+ transition: 0.5s;
238
+ }
239
+
240
+ .buttons-flex-container .button.tuto:hover {
241
+ background-position: left bottom;
242
+ color: white;
243
+ }
244
+
245
+ .buttons-flex-container .button.manual {
246
+ border-radius: 0;
247
+ background: linear-gradient(45deg, orange 0%,rgb(225, 219, 208) 60%, white 100%);
248
+ background-size: 200% 200%;
249
+ background-position: right bottom;
250
+ transition: 0.5s;
251
+ }
252
+
253
+ .buttons-flex-container .button.manual:hover {
254
+ background-position: left bottom;
255
+ color: white;
256
+ }
257
+
258
+ /* Media queries */
259
+
260
+ @media only screen and (max-width: 769px) {
261
+ button#translate {
262
+ width: 100%;
263
+ }
264
+ }