このようなWebサイトの問題の1つは、男性と話しているのか女性なのかわからないことがよくあることです。ただし、テキストの作者の性別を判別するために使用できる簡単なNLP手法を考え出しました。
理論
英語で使用されている文字の約38.1%が母音[a、e、i、o、u]です(以下の参考文献を参照してくださいy
。この場合は母音ではありません)。したがって、母音が40%以上の単語は女性の単語として定義し、母音が40%未満の単語は男性の単語として定義します。
この定義の他に、単語の男らしさや女性らしさを見つけることもできます。してみましょうCは言葉で子音の数であり、Vは母音の数であります:
- 単語が女性である場合、それは女性らしさです
1.5*V/(C+1)
。 - 単語が男性的である場合、それは男性らしさです
C/(1.5*V+1)
。
たとえば、単語catch
は男性です。その男らしさは4/(1.5*1+1) = 1.6
。言葉phone
は女性的です。その女性らしさは1.5*2/(3+1) = .75
。
アルゴリズム
テキストの一部の作家の性別を把握する、我々はすべての男性的な単語(Σの男らしさの合計取るM)、およびすべての女性のワード(Σの女性らしさの合計Fを)。Σ場合はM >Σ F、私たちは、作家が男性であることを決定しました。それ以外の場合、著者は女性であると判断しました。
信頼レベル
最後に、信頼水準が必要です。ライターが女性であると判断した場合、信頼度はです。ライターが男性であると判断した場合、信頼度はです。2*ΣF/(ΣF+ΣM)-1
2*ΣM/(ΣF+ΣM)-1
入力
入力は句読点を含む英語のテキストです。単語はすべてスペースで区切られます(改行や余分なスペースを気にする必要はありません)。一部の単語には文字以外の文字が含まれているため、無視する必要があります(「You're」など)。文字以外の単語(「5」や「!!!」など)に遭遇した場合は、無視してください。すべての入力には、少なくとも1つの使用可能な単語が含まれます。
出力
ライターの性別に応じてMまたはFを出力し、その後に信頼度を出力する必要があります。
例
There's a snake in my boot.
- 性別+各単語の男性性/女性性:
[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 - 出力:
F .143
- 性別+各単語の男性性/女性性:
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、出力: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、出力:M .435
参考文献
- 英語の辞書の単語における母音の割合(38.1%)
- 英語テキストにおける母音の割合(38.15%)