Un problema en un sitio web como este es que a menudo no sabes si estás hablando con un hombre o una mujer. Sin embargo, se le ocurrió una técnica simple de PNL que puede utilizar para determinar el género del escritor de un texto.
Teoría
Alrededor del 38.1% de las letras usadas en inglés son vocales [a, e, i, o, u] (ver Referencias a continuación, y
NO es una vocal en este caso). Por lo tanto, definiremos cualquier palabra que tenga al menos 40% de vocales como palabra femenina , y cualquier palabra que tenga menos de 40% de vocales como palabra masculina .
Más allá de esta definición, también podemos encontrar la masculinidad o feminidad de una palabra. Sea C el número de consonantes en la palabra y V sea el número de vocales:
- Si una palabra es femenina, es feminidad
1.5*V/(C+1)
. - Si una palabra es masculina, es masculinidad
C/(1.5*V+1)
.
Por ejemplo, la palabra catch
es masculina. Su masculinidad es 4/(1.5*1+1) = 1.6
. La palabra phone
es femenina. Su feminidad es 1.5*2/(3+1) = .75
.
Algoritmo
Para determinar el género del escritor de un texto, tomamos la suma de la masculinidad de todas las palabras masculinas (Σ M ) y la suma de la feminidad de todas las palabras femeninas (Σ F ). Si Σ M > Σ F , hemos determinado que el escritor es un hombre. De lo contrario, hemos determinado que el escritor es una mujer.
Nivel de confianza
Finalmente, necesitamos un nivel de confianza. Si ha determinado que el escritor es mujer, su nivel de confianza es . Si ha determinado que el escritor es hombre, el nivel de confianza es .2*ΣF/(ΣF+ΣM)-1
2*ΣM/(ΣF+ΣM)-1
Entrada
La entrada es un texto en inglés que incluye puntuación. Todas las palabras están separadas por espacios (no tiene que preocuparse por nuevas líneas o espacios adicionales). Algunas palabras tienen caracteres que no son letras, que debes ignorar (como "Eres"). Si encuentra una palabra que no contiene letras (como "5" o "!!!") simplemente ignórela. Cada entrada contendrá al menos una palabra utilizable.
Salida
Debe generar una M o una F según el género que crea que es el escritor, seguido de su nivel de confianza.
Ejemplos
There's a snake in my boot.
- Género + masculinidad / feminidad de cada palabra:
[M1.0,F1.5,F.75,F.75,M2.0,F1.0]
- Σ M = 3.0, Σ F = 4.0
- CL:
2*4.0/(4.0+3.0)-1
= .143 - Salida:
F .143
- Género + masculinidad / feminidad de cada palabra:
Frankly, I don't give a ^$*.
[M2.4,F1.5,M1.2,F1.0,F1.5]
, Σ M = 3.6, Σ F = 4.0, CL:2*4.0/(4.0+3.6)-1
= .053, Salida:F .053
I'm 50 dollars from my goal!
[F.75,M1.25,M1.2,M2.0,F1.0]
, Σ M = 4.45, Σ F = 1.75, CL:2*4.45/(4.45+1.75)-1
= .435, Salida:M .435