Clasificación básica de las emociones

Resumen

En este documento se puede observar la manera en la que podemos declarar funciones en R y también la forma en la que se pueden pasar argumentos a las funciones.

Objetivo de las funciones

Lo que se declara son cuatro funciones cuyo objetivo es el de encontrar en una lista cerrada de palabras, el lugar al que corresponde la emoción.

  1. El parámetro de entrada es una cadena de texto con una emoción del tercer nivel.

  2. El parámetro de salida es el número identificador de la emoción central:

Tabla de equivalencias de las emociones
Emoción Valor asignado
Enojo 1
Miedo 2
Tristeza 3
Alegría 4

Declaración de las funciones


v_alegria <- function(x){
  variantes <- list("optimismo", "serenidad", "amor")
  emocionCentral <- 0
  if( x %in% variantes ) {
    print("Se encontró en alegría")
    emocionCentral <- 4
  }
  return(emocionCentral)
}

v_enojo <- function(emocion){
  variantes <- list("Herido","Amenazado","Odioso","Enojado","Agresivo","Frustado","Distante", "crítico")
  resultadoE <- 0
  if ( emocion %in% variantes){
    print("Se encontró en enojo")
    resultadoE <- 1
  }
  else{ 
    print("No se encontró en enojo")
    resultadoE <- v_miedo(emocion)
  }
  return(resultadoE)
}


v_miedo <- function(emocion){
  variantes <- list("Humillado", "Rechazado", "Sumiso", "Inseguro", "Ansioso", "Asustado", "Ridiculizado", "Despreciado", "Alienado", "Inadecuado", "Insignificante", "Inútil", "Inferior", "Deficiente", "Preocupado", "Abrumado", "Temeroso", "Aterrorizado")
  resultado <- 0
  if(emocion %in% variantes){
    print("Se encontró en miedo")
    resultado <- 2
  }else{
    print("No se encontró en miedo")
    resultado <- v_tristeza(emocion)
  }
  return(resultado)
}

v_tristeza <- function (emotion) {
  variantes <- list("culpables", "abandonado", "desesperado", "deprimido", "solitario", "aburrido")
  resultadoT <- 0
  if (emotion %in% variantes){
    print("Se encontró en tristeza")
    resultadoT <- 3
  }
  else{
    print("No se encontró en tristeza")
    resultadoT <- v_alegria(emotion)
  }
  return (resultadoT)
}

Función de unión

La siguiente función tiene como objetivo el de ser el disparador principal para el resto de las funciones.

  paste("Emoción a clasificar: ", respuesta)
Error in paste("Emoción a clasificar: ", respuesta) : 
  object 'respuesta' not found

Aplicación

Para llamar a la función principal, ejecutamos la función v_emociones

v_emociones("amor")
Emoción a clasificar:  amor 
[1] "No se encontró en enojo"
[1] "No se encontró en miedo"
[1] "No se encontró en tristeza"
[1] "Se encontró en alegría"
[1] 4
[1] "Se logró"
LS0tDQp0aXRsZTogIk5vdGFzIGRlIGNsYXNlIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyBDbGFzaWZpY2FjacOzbiBiw6FzaWNhIGRlIGxhcyBlbW9jaW9uZXMNCg0KIyMgUmVzdW1lbg0KDQpFbiBlc3RlIGRvY3VtZW50byBzZSBwdWVkZSBvYnNlcnZhciBsYSBtYW5lcmEgZW4gbGEgcXVlIHBvZGVtb3MgZGVjbGFyYXIgZnVuY2lvbmVzIGVuIFIgeSB0YW1iacOpbiBsYSBmb3JtYSBlbiBsYSBxdWUgc2UgcHVlZGVuIHBhc2FyIGFyZ3VtZW50b3MgYSBsYXMgZnVuY2lvbmVzLg0KDQojIyBPYmpldGl2byBkZSBsYXMgZnVuY2lvbmVzDQoNCkxvIHF1ZSBzZSBkZWNsYXJhIHNvbiBjdWF0cm8gZnVuY2lvbmVzIGN1eW8gb2JqZXRpdm8gZXMgZWwgZGUgZW5jb250cmFyIGVuIHVuYSBsaXN0YSBjZXJyYWRhIGRlIHBhbGFicmFzLCBlbCBsdWdhciBhbCBxdWUgY29ycmVzcG9uZGUgbGEgZW1vY2nDs24uDQoNCjEuICBFbCBwYXLDoW1ldHJvIGRlIGVudHJhZGEgZXMgdW5hIGNhZGVuYSBkZSB0ZXh0byBjb24gdW5hIGVtb2Npw7NuIGRlbCB0ZXJjZXIgbml2ZWwuDQoNCjIuICBFbCBwYXLDoW1ldHJvIGRlIHNhbGlkYSBlcyBlbCBuw7ptZXJvIGlkZW50aWZpY2Fkb3IgZGUgbGEgZW1vY2nDs24gY2VudHJhbDoNCg0KfCBFbW9jacOzbiAgfCBWYWxvciBhc2lnbmFkbyB8DQp8LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tfA0KfCBFbm9qbyAgICB8IDEgICAgICAgICAgICAgIHwNCnwgTWllZG8gICAgfCAyICAgICAgICAgICAgICB8DQp8IFRyaXN0ZXphIHwgMyAgICAgICAgICAgICAgfA0KfCBBbGVncsOtYSAgfCA0ICAgICAgICAgICAgICB8DQo6IFRhYmxhIGRlIGVxdWl2YWxlbmNpYXMgZGUgbGFzIGVtb2Npb25lcw0KDQojIyBEZWNsYXJhY2nDs24gZGUgbGFzIGZ1bmNpb25lcw0KDQpgYGB7cn0NCg0Kdl9hbGVncmlhIDwtIGZ1bmN0aW9uKHgpew0KICB2YXJpYW50ZXMgPC0gbGlzdCgib3B0aW1pc21vIiwgInNlcmVuaWRhZCIsICJhbW9yIikNCiAgZW1vY2lvbkNlbnRyYWwgPC0gMA0KICBpZiggeCAlaW4lIHZhcmlhbnRlcyApIHsNCiAgICBwcmludCgiU2UgZW5jb250csOzIGVuIGFsZWdyw61hIikNCiAgICBlbW9jaW9uQ2VudHJhbCA8LSA0DQogIH0NCiAgcmV0dXJuKGVtb2Npb25DZW50cmFsKQ0KfQ0KDQp2X2Vub2pvIDwtIGZ1bmN0aW9uKGVtb2Npb24pew0KICB2YXJpYW50ZXMgPC0gbGlzdCgiSGVyaWRvIiwiQW1lbmF6YWRvIiwiT2Rpb3NvIiwiRW5vamFkbyIsIkFncmVzaXZvIiwiRnJ1c3RhZG8iLCJEaXN0YW50ZSIsICJjcsOtdGljbyIpDQogIHJlc3VsdGFkb0UgPC0gMA0KICBpZiAoIGVtb2Npb24gJWluJSB2YXJpYW50ZXMpew0KICAgIHByaW50KCJTZSBlbmNvbnRyw7MgZW4gZW5vam8iKQ0KICAgIHJlc3VsdGFkb0UgPC0gMQ0KICB9DQogIGVsc2V7IA0KICAgIHByaW50KCJObyBzZSBlbmNvbnRyw7MgZW4gZW5vam8iKQ0KICAgIHJlc3VsdGFkb0UgPC0gdl9taWVkbyhlbW9jaW9uKQ0KICB9DQogIHJldHVybihyZXN1bHRhZG9FKQ0KfQ0KDQoNCnZfbWllZG8gPC0gZnVuY3Rpb24oZW1vY2lvbil7DQogIHZhcmlhbnRlcyA8LSBsaXN0KCJIdW1pbGxhZG8iLCAiUmVjaGF6YWRvIiwgIlN1bWlzbyIsICJJbnNlZ3VybyIsICJBbnNpb3NvIiwgIkFzdXN0YWRvIiwgIlJpZGljdWxpemFkbyIsICJEZXNwcmVjaWFkbyIsICJBbGllbmFkbyIsICJJbmFkZWN1YWRvIiwgIkluc2lnbmlmaWNhbnRlIiwgIkluw7p0aWwiLCAiSW5mZXJpb3IiLCAiRGVmaWNpZW50ZSIsICJQcmVvY3VwYWRvIiwgIkFicnVtYWRvIiwgIlRlbWVyb3NvIiwgIkF0ZXJyb3JpemFkbyIpDQogIHJlc3VsdGFkbyA8LSAwDQogIGlmKGVtb2Npb24gJWluJSB2YXJpYW50ZXMpew0KICAgIHByaW50KCJTZSBlbmNvbnRyw7MgZW4gbWllZG8iKQ0KICAgIHJlc3VsdGFkbyA8LSAyDQogIH1lbHNlew0KICAgIHByaW50KCJObyBzZSBlbmNvbnRyw7MgZW4gbWllZG8iKQ0KICAgIHJlc3VsdGFkbyA8LSB2X3RyaXN0ZXphKGVtb2Npb24pDQogIH0NCiAgcmV0dXJuKHJlc3VsdGFkbykNCn0NCg0Kdl90cmlzdGV6YSA8LSBmdW5jdGlvbiAoZW1vdGlvbikgew0KICB2YXJpYW50ZXMgPC0gbGlzdCgiY3VscGFibGVzIiwgImFiYW5kb25hZG8iLCAiZGVzZXNwZXJhZG8iLCAiZGVwcmltaWRvIiwgInNvbGl0YXJpbyIsICJhYnVycmlkbyIpDQogIHJlc3VsdGFkb1QgPC0gMA0KICBpZiAoZW1vdGlvbiAlaW4lIHZhcmlhbnRlcyl7DQogICAgcHJpbnQoIlNlIGVuY29udHLDsyBlbiB0cmlzdGV6YSIpDQogICAgcmVzdWx0YWRvVCA8LSAzDQogIH0NCiAgZWxzZXsNCiAgICBwcmludCgiTm8gc2UgZW5jb250csOzIGVuIHRyaXN0ZXphIikNCiAgICByZXN1bHRhZG9UIDwtIHZfYWxlZ3JpYShlbW90aW9uKQ0KICB9DQogIHJldHVybiAocmVzdWx0YWRvVCkNCn0NCg0KYGBgDQoNCiMjIEZ1bmNpw7NuIGRlIHVuacOzbg0KDQpMYSBzaWd1aWVudGUgZnVuY2nDs24gdGllbmUgY29tbyBvYmpldGl2byBlbCBkZSBzZXIgZWwgZGlzcGFyYWRvciBwcmluY2lwYWwgcGFyYSBlbCByZXN0byBkZSBsYXMgZnVuY2lvbmVzLg0KDQpgYGB7cn0NCg0Kdl9lbW9jaW9uZXMgPC0gZnVuY3Rpb24ocmVzcHVlc3RhKXsNCiAgZW1vY2lvbkVuY29udHJhZGEgPC0gMA0KICBjYXQoIkVtb2Npw7NuIGEgY2xhc2lmaWNhcjogIiwgcmVzcHVlc3RhLCAiXG4iKQ0KICAgIGVtb2Npb25FbmNvbnRyYWRhIDwtIHZfZW5vam8ocmVzcHVlc3RhKQ0KICAgIGlmKCBlbW9jaW9uRW5jb250cmFkYSA9PSAwICl7DQogICAgICBwcmludCgiRW1vY2nDs24gbm8gZW5jb250cmFkYSIpDQogICAgICBwcmludChlbW9jaW9uRW5jb250cmFkYSkNCiAgICB9ZWxzZXsNCiAgICAgIHByaW50KGVtb2Npb25FbmNvbnRyYWRhKQ0KICAgICAgcHJpbnQoIlNlIGxvZ3LDsyIpDQogICAgfQ0KICANCn0NCg0KYGBgDQoNCiMjIEFwbGljYWNpw7NuIA0KDQpQYXJhIGxsYW1hciBhIGxhIGZ1bmNpw7NuIHByaW5jaXBhbCwgZWplY3V0YW1vcyBsYSBmdW5jacOzbiB2X2Vtb2Npb25lcw0KDQpgYGB7cn0NCg0Kdl9lbW9jaW9uZXMoImFtb3IiKQ0KDQp2X2Vtb2Npb25lcygiSGVyaWRvIikNCg0KYGBgDQoNCg==