Satu masalah di situs web seperti ini adalah Anda sering tidak tahu apakah Anda berbicara dengan pria atau wanita. Namun, Anda telah menemukan teknik NLP sederhana yang dapat Anda gunakan untuk menentukan jenis kelamin penulis sebuah teks.
Teori
Sekitar 38,1% huruf yang digunakan dalam bahasa Inggris adalah vokal [a, e, i, o, u] (lihat Referensi di bawah ini, y
BUKAN vokal dalam hal ini). Oleh karena itu, kami akan mendefinisikan kata apa saja yang setidaknya 40% vokal sebagai kata feminin , dan kata apa pun yang kurang dari 40% vokal sebagai kata maskulin .
Di luar definisi ini kita juga dapat menemukan maskulinitas atau feminitas suatu kata. Biarkan C menjadi jumlah konsonan dalam kata, dan V menjadi jumlah vokal:
- Jika sebuah kata itu feminin, itu feminininya
1.5*V/(C+1)
. - Jika sebuah kata adalah maskulin, itu adalah maskulinitas
C/(1.5*V+1)
.
Misalnya, kata catch
itu maskulin. Maskulinitasnya adalah 4/(1.5*1+1) = 1.6
. Kata phone
itu feminin. Kewanitaannya adalah 1.5*2/(3+1) = .75
.
Algoritma
Untuk mengetahui jenis kelamin penulis dari sebuah teks, kita mengambil jumlah maskulinitas dari semua kata maskulin (Σ M ), dan jumlah feminitas dari semua kata feminin (Σ F ). Jika Σ M > Σ F , kami telah menentukan bahwa penulisnya adalah laki-laki. Kalau tidak, kami telah menentukan bahwa penulisnya adalah perempuan.
Tingkat kepercayaan diri
Akhirnya, kita membutuhkan tingkat kepercayaan. Jika Anda telah menentukan bahwa penulisnya adalah wanita, tingkat kepercayaan diri Anda adalah . Jika Anda telah menentukan bahwa penulisnya adalah laki-laki, tingkat kepercayaannya adalah .2*ΣF/(ΣF+ΣM)-1
2*ΣM/(ΣF+ΣM)-1
Memasukkan
Input adalah bagian dari teks bahasa Inggris termasuk tanda baca. Semua kata dipisahkan oleh spasi (Anda tidak perlu khawatir tentang baris baru atau spasi tambahan). Beberapa kata memiliki karakter non-huruf di dalamnya, yang perlu Anda abaikan (seperti "Anda"). Jika Anda menemukan kata yang semuanya non-huruf (seperti "5" atau "!!!") abaikan saja. Setiap input akan mengandung setidaknya satu kata yang dapat digunakan.
Keluaran
Anda perlu menghasilkan M atau F tergantung pada jenis kelamin yang Anda pikir penulis, diikuti oleh tingkat kepercayaan diri Anda.
Contohnya
There's a snake in my boot.
- Jenis kelamin + maskulinitas / feminitas setiap kata:
[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 - Keluaran:
F .143
- Jenis kelamin + maskulinitas / feminitas setiap kata:
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, Output: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, Output:M .435