我需要将美国英语的性别特定文本从一种性别转换为另一种或使性别中立

时间:2018-11-19 14:41:05

标签: c#

我需要将美国英语句子从一种性别转换为另一种,使性别中立,或者接受对性别不相关的句子,并使其针对性别。

目前,我使用的是类似"He opened the door".Replace("He","She")的东西,但这并不能完全起作用,因为类似"she has a sheep".Replace("he","she")的东西会返回类似“ sshe has ssheep”的东西,并在其前面或后面添加空格这些单词也不起作用。

这样做有什么好方法,谁能指出我一个很好的性别专用单词列表,其中包括性别中立单词,如:

Husband, Wife, Spouse
Husbands, Wives, Spouses

我在想,我可以将句子之间用空格分开,将其分成一个数组,检查并转换数组中的每个单词,然后从数组中重建句子,但似乎比这要容易得多。

如果有人有什么想法,我更喜欢c#代码。

2 个答案:

答案 0 :(得分:1)

您应该考虑使用https://sergey-tihon.github.io/Stanford.NLP.NET/StanfordCoreNLP.htmlhttps://www.nrecosite.com/nlp_ner_net.aspx这样的NLP库

通过这种方式,您可以将句子分解为标记,然后识别并替换该句子的主题。

var tokens = new Tokenizer().Parse("John closed tasks");
var searchQuery = new TokenSequence(tokens.ToArray());
recognizer.Recognize(searchQuery, matchesCombinationHandler);

答案 1 :(得分:0)

我将替换为“ .She”,“ She”,“。she”,“ she”,“ she”,“ She”,“ she;”,“ She;”。作为讲英语的人,我们使用空格和标点符号来确定字母是自己的词还是其他词的一部分。因此,这确实是唯一的方法。当然,您可以使用相同的方法进行正则表达式。