JavaScript library that converts a string to gender-neutral language?

2 points by butler952 ↗ HN
I'm working on a project that anonymises resumes to reduce bias and discrimination of things like location, gender and age.

One of the options I'd like to provide is the ability to ensure that the content is gender-neutral to avoid bias.

For example, a summary that includes the text: "She is an esteemed archaeologist and writer based in Greece. Her primary residence is in Athens, but she spends much of her time in Marrakech."

Should be converted to: "They are an esteemed archaeologist and writer based in Greece. Their primary residence is in Athens, but they spend much of their time in Marrakech."

I started by just creating a function with a bunch of .replaceAll() statements, but quickly realised that changing from "he"/"she" to "they" changes pretty much every verb that follows the word (e.g. he runs > they run, she does > they do, etc...).

Just wandering if anyone has heard of a library to tackle this or has any other ideas on how to tackle the task.

Thanks!

12 comments

[ 2.5 ms ] story [ 18.2 ms ] thread
Why don't you just change it all to she?
I mean, yeah, could do. Kinda defeats the gender-neutral part though?
If everyone is presented as the same gender, it stops becoming a variable, no? I get that it's probably not applicable for whatever you're doing, but it would be the easiest solution. Or equivalently just put s/he?
In an ideal world it would be okay to name everyone "she", but in our world that candidate would still carry any biases associated with "she".

Replacing with "s/he" could be a viable option, however. It doesn't read particularly well but it does seem to do the job—I will definitely consider this option!

(comment deleted)
Would it work if you replaced “he” or “she” with “candidate” and “his” or “her” with “candidate’s” or with “their”?

That will prevent errors of concord (everything remains singular so you don’t have to change the verbs) and the sentences will mostly flow fine.

Your example would become: “Candidate is an esteemed archaeologist and writer based in Greece. Candidates’s (or “their”) primary residence is Athens, but they spend much of their time in Marrakech.

Hmm this could work. I would prefer "they"/"their", but I quite like the "the candidate"/"their" option!

That seems to work. I will have a play around with this to see if it reads well with a few more examples.

I’m not sure how much my suggestions answer your original question, but in the pursuit of proper grammatical structure when trying to rewrite speech, compromise [0] might be of use to you. I’ve only played around with it for a few hours at most, but from my limited experience it is a very effective (if verbose and/or a little bloated in it’s API) tool for language analysis. With some tomfoolery I’m confident you could combine it with the GP’s recommendation of alexjs to replace strings slightly-less-naively.

[0] https://github.com/spencermountain/compromise

https://alexjs.com/

You can either integrate it with external tooling (common use is in a build pipeline for docs), or use the JS API directly: https://github.com/get-alex/alex#api.

Thanks for sharing this!

I've had a quick look and it looks great for identifying where improvements can be made to content in your codebase.

I don't think it's suitable for my use case as the content will be in a database or localStorage, and it seems to only be able to recommend changes rather than dynamically make them. Unless I have misinterpreted things.