Um problema em um site como esse é que muitas vezes você não sabe se está falando com um homem ou uma mulher. No entanto, você criou uma técnica simples de PNL que pode ser usada para determinar o sexo do escritor de um pedaço de texto.
Teoria
Aproximadamente 38,1% das letras usadas em inglês são vogais [a, e, i, o, u] (consulte as referências abaixo, y
NÃO é uma vogal neste caso). Portanto, definiremos qualquer palavra que tenha pelo menos 40% de vogais como uma palavra feminina e qualquer palavra que tenha menos de 40% de vogais como uma palavra masculina .
Além dessa definição, também podemos encontrar a masculinidade ou feminilidade de uma palavra. Seja C o número de consoantes na palavra e V o número de vogais:
- Se uma palavra é feminina, é feminilidade
1.5*V/(C+1)
. - Se uma palavra é masculina, é masculinidade
C/(1.5*V+1)
.
Por exemplo, a palavra catch
é masculina. Sua masculinidade é 4/(1.5*1+1) = 1.6
. A palavra phone
é feminina. Sua feminilidade é 1.5*2/(3+1) = .75
.
Algoritmo
Para descobrir o gênero do escritor de um pedaço de texto, tomamos a soma da masculinidade de todas as palavras masculinas (Σ M ) e a soma da feminilidade de todas as palavras femininas (Σ F ). Se Σ M > Σ F , determinamos que o escritor é um homem. Caso contrário, determinamos que o escritor é uma mulher.
Nível de confiança
Finalmente, precisamos de um nível de confiança. Se você determinou que o escritor é do sexo feminino, seu nível de confiança é . Se você determinou que o escritor é homem, o nível de confiança é .2*ΣF/(ΣF+ΣM)-1
2*ΣM/(ΣF+ΣM)-1
Entrada
Entrada é um pedaço de texto em inglês, incluindo pontuação. As palavras são todas separadas por espaços (você não precisa se preocupar com novas linhas ou espaços extras). Algumas palavras têm caracteres que não são da letra, que você precisa ignorar (como "Você é"). Se você encontrar uma palavra que não seja letras (como "5" ou "!!!"), ignore-a. Cada entrada conterá pelo menos uma palavra utilizável.
Resultado
Você precisa gerar um M ou F, dependendo do sexo que você acha que o escritor é, seguido pelo seu nível de confiança.
Exemplos
There's a snake in my boot.
- Gênero + masculinidade / feminilidade de cada palavra:
[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
= 0,143 - Resultado:
F .143
- Gênero + masculinidade / feminilidade de cada palavra:
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
= 0,053, Saída: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
= 0,435, Saída:M .435