我需要将美式英语中特定性别的文本从一种性别转换为另一种性别,或者使其不分性别



我需要将美式英语句子从一种性别转换为另一种性别,使其不分性别,或者使用一个不分性别的句子并使其特定于性别。

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

做这件事的好方法是什么?有人能给我一份针对性别的单词清单吗?其中包括中性单词,比如:

Husband, Wife, Spouse
Husbands, Wives, Spouses

我想我可以把句子按空格分隔成一个数组,检查并转换数组中的每个单词,然后从数组中重建句子,但这似乎比这更容易。

如果有人有任何想法,我更喜欢c代码。

您应该考虑一个NLP库,例如https://sergey-tihon.github.io/Stanford.NLP.NET/StanfordCoreNLP.html或https://www.nrecosite.com/nlp_ner_net.aspx

这样你就可以把句子分解成记号,然后识别并替换句子的主语。

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

我会替换".Hee"、"She"、".hee"、"She"、"她"、"She"、"She;"。作为讲英语的人,我们在写作中使用空格和标点符号来确定字母是自己的单词还是另一个单词的一部分。所以这确实是唯一的方法。当然,你可以用同样的方法制作一个正则表达式。

最新更新