diff --git a/filters/universal_bias/README.md b/filters/universal_bias/README.md index d7e46be7b..be477c8d3 100644 --- a/filters/universal_bias/README.md +++ b/filters/universal_bias/README.md @@ -2,7 +2,7 @@ ## What type of a filter is this? -This filter is currently contains lexical seeds for 10 categories () in English, however it can be extended to any language or topic by simple addition of desired entries to `lexicals.json` +This filter is currently contains lexical seeds for 10 categories () in US and UK English, however it can be extended to any language or topic by simple addition of desired entries to `lexicals.json` file in current directoryalong with the text corpus in corresponding language. The minority parameter is a potentially underrepresented group, defined with its own set of keywords; the majority parameter is a set of keywords, representing the dominating group. The filter returns "True" if the minority group is indeed underrepresented, "False" otherwise. @@ -30,13 +30,13 @@ sentences = [ "He is going to make a cake.", "Nobody likes washing dishes", "He agreed to help me" ] -language = "en" +culture = "en_us" category = "gender" minority = "female" majority = "male" -f = UniversalBiasFilter(language, category, minority, majority) +f = UniversalBiasFilter(culture, category, minority, majority) f.filter(sentences) ``` @@ -78,7 +78,7 @@ This filter accepts unigram arrays, the n-gramms won't give the desired output, ## Structure of lexical seeds Current struncture of the `lexicals.json` is as follows: ``` -"en": { +"en_us": { "religion": { "christianity": [], "buddhism_hinduism_jainism": [], @@ -120,7 +120,7 @@ Current struncture of the `lexicals.json` is as follows: "old": [] }, - "appearencence": { + "appearance": { "attractive": [], "unattractive": [] }, @@ -146,7 +146,27 @@ Current struncture of the `lexicals.json` is as follows: } } ``` -Changing the language key with the corresponding lexical seeds precision allows adapt this data structure to any language. +Changing the culture key with the corresponding lexical seeds precision allows adapt this data structure to any language/culture pair. However, since the categories may not remain stable across cultural boundaries, the list of groups can be determined by calling the following function: + +``` +UniversalBiasFilter.list_groups("en_us") + +{ + 'religion': ['christianity', 'buddhism_hinduism_jainism', 'confucianism', 'islam', 'judaism', 'atheism'], + 'race': ['white', 'black', 'asian', 'latinx', 'american_indian'], + 'ethnicity': ['european', 'african', 'eurasian', 'asian', 'hispanic', 'american_indian'], + 'gender': ['male', 'female'], + 'sexual_orientation': ['hetero', 'homo'], + 'age': ['young', 'old'], + 'appearencence': ['attractive', 'unattractive'], + 'disability': ['healthy', 'disabled'], + 'experience': ['experienced', 'inexperienced'], + 'education': ['educated', 'uneducated'], + 'economic_status': ['rich', 'poor'] +} + +``` + The categories with their respective attributes can also be modified (the data extraction is made dynamicaly in the code). diff --git a/filters/universal_bias/filter.py b/filters/universal_bias/filter.py index b7b1836a6..8ecd8df3e 100644 --- a/filters/universal_bias/filter.py +++ b/filters/universal_bias/filter.py @@ -1,14 +1,16 @@ from interfaces.SentenceOperation import SentenceOperation from tasks.TaskTypes import TaskType import re +import json + class UniversalBiasFilter(SentenceOperation): tasks = [TaskType.TEXT_TO_TEXT_GENERATION] keywords = ["rule-based", "social-reasoning"] - def __init__(self, language=None, category=None, minority_group=None, majority_group=None, minority=None, majority=None): + def __init__(self, culture=None, category=None, minority_group=None, majority_group=None, minority=None, majority=None): super().__init__() - self.language = language + self.culture = culture self.category = category self.minority_group = minority_group self.majority_group = majority_group @@ -31,10 +33,10 @@ def flag_sentences(self, sentences): # Retrieve relevant data extracts try: - minority_group = data[self.language][self.category][self.minority_group] - majority_group = data[self.language][self.category][self.majority_group] + minority_group = data[self.culture][self.category][self.minority_group] + majority_group = data[self.culture][self.category][self.majority_group] except NameError as error: - print('The specified language, category of group is not supported or misformatted. Please provide valid arguments to the filter() method.') + print('The specified culture, category of group is not supported or misformatted. Please provide valid arguments to the filter() method.') # Close names file f.close() @@ -163,6 +165,16 @@ def sort_groups(flagged_corpus): return minority_group, majority_group, neutral_group + @staticmethod + def list_groups(culture): + # Read json + with open('filters/universal_bias/lexicals.json', encoding='utf-8') as f: + data = json.load(f) + try: + group_dict = data[culture] + except NameError: + print('The specified culture is not a valid entry.') + return {key: list(val.keys()) for key, val in group_dict.items()} def filter(self, sentences: []) -> bool: """ @@ -183,7 +195,6 @@ def filter(self, sentences: []) -> bool: minority_percentage = 100 * float(minority_count) / float(len(sentences)) majority_percentage = 100 * float(majority_count) / float(len(sentences)) - # If the number of sentences in terms of percentage in the minority group # is lower than in the majority group, set bias to True # Note, that the neutral group is not taken into account in this calculation @@ -192,4 +203,4 @@ def filter(self, sentences: []) -> bool: else: biased = False - return biased \ No newline at end of file + return biased diff --git a/filters/universal_bias/lexicals.json b/filters/universal_bias/lexicals.json index 1f255f49f..e6c001b37 100644 --- a/filters/universal_bias/lexicals.json +++ b/filters/universal_bias/lexicals.json @@ -1,7 +1,7 @@ { - "en": { + "en_us": { "religion": { - "christianism": ["jesus", "god", "godly", "messiah", "apostle", "apostles", "apostolic", "disciple", "disciples", "preach", "preaching", "preached", "preacher", "preachers", "prophet", "prophets", "prophecy", "prophecies", "almighty", "eternal", "resurrection", "blessing", "sanctity", "salvation", "damnation", "excommunication", "excommunicated", "celibate", "celibacy", "divinity", "ascension", "redemption", "crucifiction", "crucified", "apocalypse", "holy", "holiness", "sacred", "spirit", "trinity", "saint", "saints", "angel", "satan", "antichrist", "satanic", "devil", "devils", "demon", "demons", "heaven", "hell", "hellfire", "bible", "biblical", "evangel", "evangelical", "church", "churches", "cathedral", "cathedrals", "chapel", "sanctuary", "monastery", "monastic", "pastor", "pastors", "priest", "priests", "bishop", "bishops", "pope", "cardinal", "cardinals", "clergy", "missionaries", "pilgrimage", "priesthood", "ordination", "ordained", "franciscan", "franciscans", "carthusian", "carthusians", "jesuit", "jesuits", "benedictine", "benedictines", "salesian", "salesians", "missionary", "missionaries", "dominican", "dominicans", "augustinian", "augustinians", "carmelite", "carmelites", "theology", "theologian", "parish", "worship", "prayer", "adoration", "sermon", "sacrament", "communion", "christ", "christianity", "christian", "catholicism", "catholic", "catholics", "orthodox", "protestant", "protestants", "baptist", "baptists", "evangelist", "evangelists", "mormon", "mormons", "gospel", "funeral", "cemetery"], + "christianity": ["jesus", "god", "godly", "messiah", "apostle", "apostles", "apostolic", "disciple", "disciples", "preach", "preaching", "preached", "preacher", "preachers", "prophet", "prophets", "prophecy", "prophecies", "almighty", "eternal", "resurrection", "blessing", "sanctity", "salvation", "damnation", "excommunication", "excommunicated", "celibate", "celibacy", "divinity", "ascension", "redemption", "crucifiction", "crucified", "apocalypse", "holy", "holiness", "sacred", "spirit", "trinity", "saint", "saints", "angel", "satan", "antichrist", "satanic", "devil", "devils", "demon", "demons", "heaven", "hell", "hellfire", "bible", "biblical", "evangel", "evangelical", "church", "churches", "cathedral", "cathedrals", "chapel", "sanctuary", "monastery", "monastic", "pastor", "pastors", "priest", "priests", "bishop", "bishops", "pope", "cardinal", "cardinals", "clergy", "missionaries", "pilgrimage", "priesthood", "ordination", "ordained", "franciscan", "franciscans", "carthusian", "carthusians", "jesuit", "jesuits", "benedictine", "benedictines", "salesian", "salesians", "missionary", "missionaries", "dominican", "dominicans", "augustinian", "augustinians", "carmelite", "carmelites", "theology", "theologian", "parish", "worship", "prayer", "adoration", "sermon", "sacrament", "communion", "christ", "christianity", "christian", "catholicism", "catholic", "catholics", "orthodox", "protestant", "protestants", "baptist", "baptists", "evangelist", "evangelists", "mormon", "mormons", "gospel", "funeral", "cemetery"], "buddhism_hinduism_jainism": ["dharmic", "om", "nirvana", "buddha", "buddhist", "buddhism", "jainism", "jain", "hinduism", "hindu", "transtheistic", "enlightenment", "jiva", "atman", "moksha", "arihant", "pramana", "dravya", "tattva", "karma", "reincarnation", "saṃsāra", "ahiṃsā", "anekāntavāda", "aparigraha", "vada", "dharma", "sangha", "svadharma", "sutra", "triratna", "ti-ratana", "dravya", "ratnatraya", "samyagdarshana", "monk", "nun", "guru", "samayika", "meditation", "sallekhana", "deva", "avatar", "abhisheka", "mantra", "temple", "sangha", "loka", "lokas", "diyas", "sky-clad", "sarees"], "confucianism": ["confucianism", "ruism", "confucius", "tiān", "brahman", "lǐ", "dào", "pinyin", "ritual", "rite", "rites", "self-cultivation", "self-creation", "self-identification", "benevolence", "humaneness", "rén", "yì", "lǐ", "zhì", "ru", "rú", "rújiā", "rújiào", "rúxué", "kǒngjiào", "kǒngjiādiàn", "hundun", "qi", "yin", "yang", "wu", "wei"], "islam": ["islam", "islamic", "allah", "muslim", "muslims", "arab", "arabs", "arabic", "hamas", "gaza", "jihad", "jihadists", "infidels", "sinners", "coran", "quran", "hadith", "imam", "hijab", "burqa", "burka", "turban"], @@ -66,6 +66,86 @@ "poor": ["poor", "pauvre", "poverty", "broke", "homeless", "unhoused", "roofless", "unsheltered", "vagabond", "hipster", "hobo"] } }, + + "en_gb": { + "religion": { + "catholicism": ["catholic", "papist", "fenian", "apostolic", "nuncio", "papal", "bishop", "cardinal", "eucharist", "mass", "unction"], + "protestantism": ["protestant", "prod", "calvin", "methodist", "evangelical", "anglican", "luther", "pentecostal", "baptist", "puritan", "wesley", "reformation"], + "buddhism_hinduism_jainism": ["dharmic", "om", "nirvana", "buddha", "buddhist", "buddhism", "jainism", "jain", "hinduism", "hindu", "transtheistic", "enlightenment", "jiva", "atman", "moksha", "arihant", "pramana", "dravya", "tattva", "karma", "reincarnation", "saṃsāra", "ahiṃsā", "anekāntavāda", "aparigraha", "vada", "dharma", "sangha", "svadharma", "sutra", "triratna", "ti-ratana", "dravya", "ratnatraya", "samyagdarshana", "monk", "nun", "guru", "samayika", "meditation", "sallekhana", "deva", "avatar", "abhisheka", "mantra", "temple", "sangha", "loka", "lokas", "diyas", "sky-clad", "sarees"], + "confucianism": ["confucianism", "ruism", "confucius", "tiān", "brahman", "lǐ", "dào", "pinyin", "ritual", "rite", "rites", "self-cultivation", "self-creation", "self-identification", "benevolence", "humaneness", "rén", "yì", "lǐ", "zhì", "ru", "rú", "rújiā", "rújiào", "rúxué", "kǒngjiào", "kǒngjiādiàn", "hundun", "qi", "yin", "yang", "wu", "wei"], + "islam": ["islam", "islamic", "allah", "muslim", "muslims", "arab", "arabs", "arabic", "hamas", "gaza", "jihad", "jihadists", "infidels", "sinners", "coran", "quran", "koran", "hadith", "imam", "hijab", "burqa", "burka"], + "judaism": ["judaism", "jewish", "jew", "jews", "hebrew", "torah", "tanakh", "pentateuch", "mishnah", "talmud", "gemara", "jerusalem", "synagogue", "sabbath", "rabbi", "rabbis", "six-pointed", "david", "abraham", "isaac", "moses", "hasidic", "passover", "rosh", "hashanah", "yom", "kippur", "hanukkah", "purim"], + "atheism": ["atheism", "atheist"] + }, + + "race" : { + "white": ["white"], + "black": ["black"], + "asian": ["asian"], + "mixed": ["mixed"] + }, + + "ethnicity" : { + "irish": ["irish", "paddy", "mick"], + "gypsy_traveller": ["traveller", "gypsy", "romany", "romani"], + "english": ["english", "limey"], + "scottish": ["scottish", "jock"], + "welsh": ["welsh"], + "caribbean": ["jamaica", "jamaican", "jamaicans", "haiti", "haitian", "haitians", "barbados", "barbadian", "barbadians", "bahamas", "bahamian", "bahamians", "antigua", "antiguan"], + "african": ["african", "africans", "nigerian", "nigerians", "ethiopian", "ethiopians", "somali", "ghanaian", "ghanaians", "kenyan", "kenyans", "liberian", "liberians"], + "eastern_european": ["georgia", "russia", "poland", "polish", "hungary", "hungarian", "bulgaria", "kosovo", "serbia", "latvia", "lithuania"], + "arab_other": ["turk", "turkmen", "kazakh", "mongolia", "caucassian", "afghan", "saudi", "yemen", "qatar", "emirates", "emirati"], + "south_asian": ["india", "pakistan", "bangladesh"], + "east_asian": ["chinese", "japanese", "korean", "vietnam","filipino", "philipines", "cambodian", "hmong", "thai"] + }, + + "gender" : { + "male": ["male", "he", "him", "his", "mr", "mister", "sir", "lord", "gentleman", "baron", "count", "viscount", "marquess", "duke", "prince", "emperor", "king", "goodman", "man", "uncle", "nephew", "boy", "boyfriend", "master", "brother", "groom", "bridegroom", "husband", "father", "dad", "daddy", "grandfather", "men", "uncles", "nephews", "boys", "boyfriends", "masters", "brothers", "grooms", "bridegrooms", "husbands", "fathers", "dads", "daddies", "grandfathers", "actor", "hero", "superman", "waiter", "businesswoman", "landlord", "proprietor", "businessman", "fireman", "policeman", "actors", "heros", "supermen", "waiters", "businesswomen", "landlords", "proprietors", "businessmen", "firemen", "policemen", "liam", "noah", "oliver", "elijah", "william", "james", "benjamin", "lucas", "henry", "alexander", "mason", "michael", "ethan", "daniel", "jacob", "logan", "jackson", "levi", "sebastian", "mateo", "jack", "owen", "theodore", "aiden", "samuel", "joseph", "john", "david", "wyatt", "matthew", "luke", "asher", "carter", "julian", "grayson", "leo", "jayden", "gabriel", "isaac", "lincoln", "anthony", "hudson", "dylan", "ezra", "thomas", "charles", "christopher", "jaxon", "maverick", "josiah", "isaiah", "andrew", "elias", "joshua", "nathan", "caleb", "ryan", "adrian", "miles", "eli", "nolan", "christian", "aaron", "cameron", "ezekiel", "colton", "luca", "landon", "hunter", "jonathan", "santiago", "axel", "easton", "cooper", "jeremiah", "angel", "roman", "connor", "jameson", "robert", "greyson", "jordan", "ian", "carson", "jaxson", "leonardo", "nicholas", "dominic", "austin", "everett", "brooks", "xavier", "kai", "jose", "parker", "adam", "jace", "wesley", "kayden", "silas", "bennett", "declan", "waylon", "weston", "evan", "emmett", "micah", "ryder", "beau", "damian", "brayden", "gael", "rowan", "harrison", "bryson", "sawyer", "amir", "kingston", "jason", "giovanni", "vincent", "ayden", "chase", "myles", "diego", "nathaniel", "legend", "jonah", "river", "tyler", "cole", "braxton", "george", "milo", "zachary", "ashton", "luis", "jasper", "kaiden", "adriel", "gavin", "bentley", "calvin", "zion", "juan", "maxwell", "max", "ryker", "carlos", "emmanuel", "jayce", "lorenzo", "ivan", "jude", "august", "kevin", "malachi", "elliott", "rhett", "archer", "karter", "arthur", "luka", "elliot", "thiago", "brandon", "camden", "justin", "jesus", "maddox", "king", "theo", "enzo", "matteo", "emiliano", "dean", "hayden", "finn", "brody", "antonio", "abel", "alex", "tristan", "graham", "zayden", "judah", "xander", "miguel", "atlas", "messiah", "barrett", "tucker", "timothy", "alan", "edward", "leon", "dawson", "eric", "ace", "victor", "abraham", "nicolas", "jesse", "charlie", "patrick", "walker", "joel", "richard", "beckett", "blake", "alejandro", "avery", "grant", "peter", "oscar", "matias", "amari", "lukas", "andres", "arlo", "colt", "adonis", "kyrie", "steven", "felix", "preston", "marcus", "holden", "emilio", "remington", "jeremy", "kaleb", "brantley", "bryce", "mark", "knox", "israel", "phoenix", "kobe", "nash", "griffin", "caden", "kenneth", "kyler", "hayes", "jax", "rafael", "beckham", "javier", "maximus", "simon", "paul", "omar", "kaden", "kash", "lane", "bryan", "riley", "zane", "louis", "aidan", "paxton", "maximiliano", "karson", "cash", "cayden", "emerson", "tobias", "ronan", "brian", "dallas", "bradley", "jorge", "walter", "josue", "khalil", "damien", "jett", "kairo", "zander", "andre", "cohen", "crew", "hendrix", "colin", "chance", "malakai", "clayton", "daxton", "malcolm", "lennox", "martin", "jaden", "kayson", "bodhi", "francisco", "cody", "erick", "kameron", "atticus", "dante", "jensen", "cruz", "finley", "brady", "joaquin", "anderson", "gunner", "muhammad", "zayn", "derek", "raymond", "kyle", "angelo", "reid", "spencer", "nico", "jaylen", "jake", "prince", "manuel", "ali", "gideon", "stephen", "ellis", "orion", "rylan", "eduardo", "mario", "rory", "cristian", "odin", "tanner", "julius", "callum", "sean", "kane", "ricardo", "travis", "wade", "warren", "fernando", "titus", "leonel", "edwin", "cairo", "corbin", "dakota", "ismael", "colson", "killian", "major", "tate", "gianni", "elian", "remy", "lawson", "niko", "nasir", "kade", "armani", "ezequiel", "marshall", "hector", "desmond", "kason", "garrett", "jared", "cyrus", "russell", "cesar", "tyson", "malik", "donovan", "jaxton", "cade", "romeo", "nehemiah", "sergio", "iker", "caiden", "jay", "pablo", "devin", "jeffrey", "otto", "kamari", "ronin", "johnny", "clark", "ari", "marco", "edgar", "bowen", "jaiden", "grady", "zayne", "sullivan", "jayceon", "sterling", "andy", "conor", "raiden", "royal", "royce", "solomon", "trevor", "winston", "emanuel", "finnegan", "pedro", "luciano", "harvey", "franklin", "noel", "troy", "princeton", "johnathan", "erik", "fabian", "oakley", "rhys", "porter", "hugo", "frank", "damon", "kendrick", "mathias", "milan", "peyton", "wilder", "callan", "gregory", "seth", "matthias", "briggs", "ibrahim", "roberto", "conner", "quinn", "kashton", "sage", "santino", "kolton", "alijah", "dominick", "zyaire", "apollo", "kylo", "reed", "philip", "kian", "shawn", "kaison", "leonidas", "ayaan", "lucca", "memphis", "ford", "baylor", "kyson", "uriel", "allen", "collin", "ruben", "archie", "dalton", "esteban", "adan", "forrest", "alonzo", "isaias", "leland", "jase", "dax", "kasen", "gage", "kamden", "marcos", "jamison", "francis", "hank", "alexis", "tripp", "frederick", "jonas", "stetson", "cassius", "izaiah", "eden", "maximilian", "rocco", "tatum", "keegan", "aziel", "moses", "bruce", "lewis", "braylen", "omari", "mack", "augustus", "enrique", "armando", "pierce", "moises", "asa", "shane", "emmitt", "soren", "dorian", "keanu", "zaiden", "raphael", "deacon", "abdiel", "kieran", "phillip", "ryland", "zachariah", "casey", "zaire", "albert", "baker", "corey", "kylan", "denver", "gunnar", "jayson", "drew", "callen", "jasiah", "drake", "kannon", "braylon", "sonny", "bo", "moshe", "huxley", "quentin", "rowen", "santana", "cannon", "kenzo", "wells", "julio", "nikolai", "conrad", "jalen", "makai", "benson", "derrick", "gerardo", "davis", "abram", "mohamed", "ronald", "raul", "arjun", "dexter", "kaysen", "jaime", "scott", "lawrence", "ariel", "skyler", "danny", "roland", "chandler", "yusuf", "samson", "case", "zain", "roy", "rodrigo", "sutton", "boone", "saint", "saul", "jaziel", "hezekiah", "alec", "arturo", "jamari", "jaxtyn", "julien", "koa", "reece", "landen", "koda", "darius", "sylas", "ares", "kyree", "boston", "keith", "taylor", "johan", "edison", "sincere", "watson", "jerry", "nikolas", "quincy", "shepherd", "brycen", "marvin", "dariel", "axton", "donald", "bodie", "finnley", "onyx", "rayan", "raylan", "brixton", "colby", "shiloh", "valentino", "layton", "trenton", "landyn", "alessandro", "ahmad", "gustavo", "ledger", "ridge", "ander", "ahmed", "kingsley", "issac", "mauricio", "tony", "leonard", "mohammed", "uriah", "duke", "kareem", "lucian", "marcelo", "aarav", "leandro", "reign", "clay", "kohen", "dennis", "samir", "ermias", "otis", "emir", "nixon", "ty", "sam", "fletcher", "wilson", "dustin", "hamza", "bryant", "flynn", "lionel", "mohammad", "cason", "jamir", "aden", "dakari", "justice", "dillon", "layne", "zaid", "alden", "nelson", "devon", "titan", "chris", "khari", "zeke", "noe", "alberto", "roger", "brock", "rex", "quinton", "alvin", "cullen", "azariah", "harlan", "kellan", "lennon", "marcel", "keaton", "morgan", "ricky", "trey", "karsyn", "langston", "miller", "chaim", "salvador", "amias", "tadeo", "curtis", "lachlan", "amos", "anakin", "krew", "tomas", "jefferson", "yosef", "bruno", "korbin", "augustine", "cayson", "mathew", "vihaan", "jamie", "clyde", "brendan", "jagger", "carmelo", "harry", "nathanael", "mitchell", "darren", "ray", "jedidiah", "jimmy", "lochlan", "bellamy", "eddie", "rayden", "reese", "stanley", "joe", "houston", "douglas", "vincenzo", "casen", "emery", "joziah", "leighton", "marcellus", "atreus", "aron", "hugh", "musa", "tommy", "alfredo", "junior", "neil", "westley", "banks", "eliel", "melvin", "maximo", "briar", "colten", "lance", "nova", "trace", "axl", "ramon", "vicente", "brennan", "caspian", "remi", "deandre", "legacy", "lee", "valentin", "ben", "louie", "westin", "wayne", "benicio", "grey", "zayd", "gatlin", "mekhi", "orlando", "bjorn", "harley", "alonso", "rio", "aldo", "byron", "eliseo", "ernesto", "talon", "thaddeus", "brecken", "kace", "kellen", "enoch", "kiaan", "lian", "creed", "rohan", "callahan", "jaxxon", "ocean", "crosby", "dash", "gary", "mylo", "ira", "magnus", "salem", "abdullah", "kye", "tru", "forest", "jon", "misael", "madden", "braden", "carl", "hassan", "emory", "kristian", "alaric", "ambrose", "dario", "allan", "bode", "boden", "juelz", "kristopher", "genesis", "idris", "ameer", "anders", "darian", "kase", "aryan", "dane", "guillermo", "elisha", "jakobe", "thatcher", "eugene", "ishaan", "larry", "wesson", "yehuda", "alvaro", "bobby", "bronson", "dilan", "kole", "kyro", "tristen", "blaze", "brayan", "jadiel", "kamryn", "demetrius", "maurice", "arian", "kabir", "rocky", "rudy", "randy", "rodney", "yousef", "felipe", "robin", "aydin", "dior", "kaiser", "van", "brodie", "london", "eithan", "stefan", "ulises", "camilo", "branson", "jakari", "judson", "yahir", "zavier", "damari", "jakob", "jaxx", "bentlee", "cain", "niklaus", "rey", "zahir", "aries", "blaine", "kyng", "castiel", "henrik", "joey", "khalid", "bear", "graysen", "jair", "kylen", "darwin", "alfred", "ayan", "kenji", "zakai", "avi", "cory", "fisher", "jacoby", "osiris", "harlem", "jamal", "santos", "wallace", "brett", "fox", "leif", "maison", "reuben", "adler", "zev", "calum", "kelvin", "zechariah", "bridger", "mccoy", "seven", "shepard", "azrael", "leroy", "terry", "harold", "mac", "mordechai", "ahmir", "cal", "franco", "trent", "blaise", "coen", "dominik", "marley", "davion", "jeremias", "riggs", "jones", "will", "damir", "dangelo", "canaan", "dion", "jabari", "landry", "salvatore", "kody", "hakeem", "truett", "gerald", "lyric", "gordon", "jovanni", "kamdyn", "alistair", "cillian", "foster", "terrance", "murphy", "zyair", "cedric", "rome", "abner", "colter", "dayton", "jad", "xzavier", "rene", "vance", "duncan", "frankie", "bishop", "davian", "everest", "heath", "jaxen", "marlon", "maxton", "reginald", "harris", "jericho", "keenan", "korbyn", "wes", "eliezer", "jeffery", "kalel", "kylian", "turner", "willie", "rogelio", "ephraim"], + "female": ["female", "she", "her", "hers", "mrs", "ms", "miss", "mademoiselle", "fräulein", "madam", "lady", "gentlewoman", "baronesse", "countess", "viscountess", "marquise", "duchess", "princess", "emperess", "queen", "dame", "primadonna", "diva", "goodwife", "guidwife", "woman", "auntie", "niece", "girl", "daughter", "girlfriend", "mistress", "sister", "bride", "wife", "mother", "mum", "mom", "mommy", "grandmother", "granny", "women", "aunties", "nieces", "girls", "daughters", "girlfriends", "mistresses", "sisters", "brides", "wives", "mothers", "mums", "moms", "mommies", "grandmothers", "grannies", "actress", "heroine", "superwoman", "hostess", "waitress", "stewardess", "landlady", "proprietress", "businesswoman", "firewoman", "policewoman", "actresses", "heroines", "superwomen", "hostesses", "waitresses", "stewardesses", "landladies", "proprietresses", "businesswomen", "firewomen", "policewomen", "olivia", "emma", "ava", "charlotte", "sophia", "amelia", "isabella", "mia", "evelyn", "harper", "camila", "gianna", "abigail", "luna", "ella", "elizabeth", "sofia", "emily", "avery", "mila", "scarlett", "eleanor", "madison", "layla", "penelope", "aria", "chloe", "grace", "ellie", "nora", "hazel", "zoey", "riley", "victoria", "lily", "aurora", "violet", "nova", "hannah", "emilia", "zoe", "stella", "everly", "isla", "leah", "lillian", "addison", "willow", "lucy", "paisley", "natalie", "naomi", "eliana", "brooklyn", "elena", "aubrey", "claire", "ivy", "kinsley", "audrey", "maya", "genesis", "skylar", "bella", "aaliyah", "madelyn", "savannah", "anna", "delilah", "serenity", "caroline", "kennedy", "valentina", "ruby", "sophie", "alice", "gabriella", "sadie", "ariana", "allison", "hailey", "autumn", "nevaeh", "natalia", "quinn", "josephine", "sarah", "cora", "emery", "samantha", "piper", "leilani", "eva", "everleigh", "madeline", "lydia", "jade", "peyton", "brielle", "adeline", "vivian", "rylee", "clara", "raelynn", "melanie", "melody", "julia", "athena", "maria", "liliana", "hadley", "arya", "rose", "reagan", "eliza", "adalynn", "kaylee", "lyla", "mackenzie", "alaia", "isabelle", "charlie", "arianna", "mary", "remi", "margaret", "iris", "parker", "ximena", "eden", "ayla", "kylie", "elliana", "josie", "katherine", "faith", "alexandra", "eloise", "adalyn", "amaya", "jasmine", "amara", "daisy", "reese", "valerie", "brianna", "cecilia", "andrea", "summer", "valeria", "norah", "ariella", "esther", "ashley", "emerson", "aubree", "isabel", "anastasia", "ryleigh", "khloe", "taylor", "londyn", "lucia", "emersyn", "callie", "sienna", "blakely", "kehlani", "genevieve", "alina", "bailey", "juniper", "maeve", "molly", "harmony", "georgia", "magnolia", "catalina", "freya", "juliette", "sloane", "june", "sara", "ada", "kimberly", "river", "ember", "juliana", "aliyah", "millie", "brynlee", "teagan", "morgan", "jordyn", "london", "alaina", "olive", "rosalie", "alyssa", "ariel", "finley", "arabella", "journee", "hope", "leila", "alana", "gemma", "vanessa", "gracie", "noelle", "marley", "elise", "presley", "kamila", "zara", "amy", "kayla", "payton", "blake", "ruth", "alani", "annabelle", "sage", "aspen", "laila", "lila", "rachel", "trinity", "daniela", "alexa", "lilly", "lauren", "elsie", "margot", "adelyn", "zuri", "brooke", "sawyer", "lilah", "lola", "selena", "mya", "sydney", "diana", "ana", "vera", "alayna", "nyla", "elaina", "rebecca", "angela", "kali", "alivia", "raegan", "rowan", "phoebe", "camilla", "joanna", "malia", "vivienne", "dakota", "brooklynn", "evangeline", "camille", "jane", "nicole", "catherine", "jocelyn", "julianna", "lena", "lucille", "mckenna", "paige", "adelaide", "charlee", "mariana", "myla", "mckenzie", "tessa", "miriam", "oakley", "kailani", "alayah", "amira", "adaline", "phoenix", "milani", "annie", "lia", "angelina", "harley", "cali", "maggie", "hayden", "leia", "fiona", "briella", "journey", "lennon", "saylor", "jayla", "kaia", "thea", "adriana", "mariah", "juliet", "oaklynn", "kiara", "alexis", "haven", "aniyah", "delaney", "gracelynn", "kendall", "winter", "lilith", "logan", "amiyah", "evie", "alexandria", "gracelyn", "gabriela", "sutton", "harlow", "madilyn", "makayla", "evelynn", "gia", "nina", "amina", "giselle", "brynn", "blair", "amari", "octavia", "michelle", "talia", "demi", "alaya", "kaylani", "izabella", "fatima", "tatum", "makenzie", "lilliana", "arielle", "palmer", "melissa", "willa", "samara", "destiny", "dahlia", "celeste", "ainsley", "rylie", "reign", "laura", "adelynn", "gabrielle", "remington", "wren", "brinley", "amora", "lainey", "collins", "lexi", "aitana", "alessandra", "kenzie", "raelyn", "elle", "everlee", "haisley", "hallie", "wynter", "daleyza", "gwendolyn", "paislee", "ariyah", "veronica", "heidi", "anaya", "cataleya", "kira", "avianna", "felicity", "aylin", "miracle", "sabrina", "lana", "ophelia", "elianna", "royalty", "madeleine", "esmeralda", "joy", "kalani", "esme", "jessica", "leighton", "ariah", "makenna", "nylah", "viviana", "camryn", "cassidy", "dream", "luciana", "maisie", "stevie", "kate", "lyric", "daniella", "alicia", "daphne", "frances", "charli", "raven", "paris", "nayeli", "serena", "heaven", "bianca", "helen", "hattie", "averie", "mabel", "selah", "allie", "marlee", "kinley", "regina", "carmen", "jennifer", "jordan", "alison", "stephanie", "maren", "kayleigh", "angel", "annalise", "jacqueline", "braelynn", "emory", "rosemary", "scarlet", "amanda", "danielle", "emelia", "ryan", "carolina", "astrid", "kensley", "shiloh", "maci", "francesca", "rory", "celine", "kamryn", "zariah", "liana", "poppy", "maliyah", "keira", "skyler", "noa", "skye", "nadia", "addilyn", "rosie", "eve", "sarai", "edith", "jolene", "maddison", "meadow", "charleigh", "matilda", "elliott", "madelynn", "holly", "leona", "azalea", "katie", "mira", "ari", "kaitlyn", "danna", "cameron", "kyla", "bristol", "kora", "armani", "nia", "malani", "dylan", "remy", "maia", "dior", "legacy", "alessia", "shelby", "maryam", "sylvia", "yaretzi", "lorelei", "madilynn", "abby", "helena", "jimena", "elisa", "renata", "amber", "aviana", "carter", "emmy", "haley", "alondra", "elaine", "erin", "april", "emely", "imani", "kennedi", "lorelai", "hanna", "kelsey", "aurelia", "colette", "jaliyah", "kylee", "macie", "aisha", "dorothy", "charley", "kathryn", "adelina", "adley", "monroe", "sierra", "ailani", "miranda", "mikayla", "alejandra", "amirah", "jada", "jazlyn", "jenna", "jayleen", "beatrice", "kendra", "lyra", "nola", "emberly", "mckinley", "myra", "katalina", "antonella", "zelda", "alanna", "amaia", "priscilla", "briar", "kaliyah", "itzel", "oaklyn", "alma", "mallory", "novah", "amalia", "fernanda", "alia", "angelica", "elliot", "justice", "mae", "cecelia", "gloria", "ariya", "virginia", "cheyenne", "aleah", "jemma", "henley", "meredith", "leyla", "lennox", "ensley", "zahra", "reina", "frankie", "lylah", "nalani", "reyna", "saige", "ivanna", "aleena", "emerie", "ivory", "leslie", "alora", "ashlyn", "bethany", "bonnie", "sasha", "xiomara", "salem", "adrianna", "dayana", "clementine", "karina", "karsyn", "emmie", "julie", "julieta", "briana", "carly", "macy", "marie", "oaklee", "christina", "malaysia", "ellis", "irene", "anne", "anahi", "mara", "rhea", "davina", "dallas", "jayda", "mariam", "skyla", "siena", "elora", "marilyn", "jazmin", "megan", "rosa", "savanna", "allyson", "milan", "coraline", "johanna", "melany", "chelsea", "michaela", "melina", "angie", "cassandra", "yara", "kassidy", "liberty", "lilian", "avah", "anya", "laney", "navy", "opal", "amani", "zaylee", "mina", "sloan", "romina", "ashlynn", "aliza", "liv", "malaya", "blaire", "janelle", "kara", "analia", "hadassah", "hayley", "karla", "chaya", "cadence", "kyra", "alena", "ellianna", "katelyn", "kimber", "laurel", "lina", "capri", "braelyn", "faye", "kamiyah", "kenna", "louise", "calliope", "kaydence", "nala", "tiana", "aileen", "sunny", "zariyah", "milana", "giuliana", "eileen", "elodie", "rayna", "monica", "galilea", "journi", "lara", "marina", "aliana", "harmoni", "jamie", "holland", "emmalyn", "lauryn", "chanel", "tinsley", "jessie", "lacey", "elyse", "janiyah", "jolie", "ezra", "marleigh", "roselyn", "lillie", "louisa", "madisyn", "penny", "kinslee", "treasure", "zaniyah", "estella", "jaylah", "khaleesi", "alexia", "dulce", "indie", "maxine", "waverly", "giovanna", "miley", "saoirse", "estrella", "greta", "rosalia", "mylah", "teresa", "bridget", "kelly", "adalee", "aubrie", "lea", "harlee", "anika", "itzayana", "hana", "kaisley", "mikaela", "naya", "avalynn", "margo", "sevyn", "florence", "keilani", "lyanna", "joelle", "kataleya", "royal", "averi", "kallie", "winnie", "baylee", "martha", "pearl", "alaiya", "rayne", "sylvie", "brylee", "jazmine", "ryann", "kori", "noemi", "haylee", "julissa", "celia", "laylah", "rebekah", "rosalee", "aya", "bria", "adele", "aubrielle", "tiffany", "addyson", "kai", "bellamy", "leilany", "princess", "chana", "estelle", "selene", "sky", "dani", "thalia", "ellen", "rivka", "amelie", "andi", "kynlee", "raina", "vienna", "alianna", "livia", "madalyn", "mercy", "novalee", "ramona", "vada", "berkley", "gwen", "persephone", "milena", "paula", "clare", "kairi", "linda", "paulina", "kamilah", "amoura", "hunter", "isabela", "karen", "marianna", "sariyah", "theodora", "annika", "kyleigh", "nellie", "scarlette", "keyla", "kailey", "mavis", "lilianna", "rosalyn", "sariah", "tori", "yareli", "aubriella", "bexley", "bailee", "jianna", "keily", "annabella", "azariah", "denisse", "promise", "august", "hadlee", "halle", "fallon", "oakleigh", "zaria", "jaylin", "paisleigh", "crystal", "ila", "aliya", "cynthia", "giana", "maleah", "rylan", "aniya", "denise", "emmeline", "scout", "simone", "noah", "zora", "meghan", "landry", "ainhoa", "lilyana", "noor", "belen", "brynleigh", "cleo", "meilani", "karter", "amaris", "frida", "iliana", "violeta", "addisyn", "nancy", "denver", "leanna", "braylee", "kiana", "wrenley", "barbara", "khalani", "aspyn", "ellison", "judith", "robin", "valery", "aila", "deborah", "cara", "clarissa", "iyla", "lexie", "anais", "kaylie", "nathalie", "alisson", "della", "addilynn", "elsa", "zoya", "layne", "marlowe", "jovie", "kenia", "samira", "jaylee", "jenesis", "etta", "shay", "amayah", "avayah", "egypt", "flora", "raquel", "whitney", "zola", "giavanna", "raya", "veda", "halo", "paloma", "nataly", "whitley", "dalary", "drew", "guadalupe", "kamari", "esperanza", "loretta", "malayah", "natasha", "stormi", "ansley", "carolyn", "corinne", "paola", "brittany", "emerald", "freyja", "zainab", "artemis", "jillian", "kimora", "zoie", "aislinn", "emmaline", "ayleen", "queen", "jaycee", "murphy", "nyomi", "elina", "hadleigh", "marceline", "marisol", "yasmin", "zendaya", "chandler", "emani", "jaelynn", "kaiya", "nathalia", "violette", "joyce", "paityn", "elisabeth", "emmalynn", "luella", "yamileth", "aarya", "luisa", "zhuri", "araceli", "harleigh", "madalynn", "melani", "laylani", "magdalena", "mazikeen", "belle", "kadence"], + "trans": ["trans", "transsexual"] + }, + + "sexual_orientation": { + "hetero": ["hetero", "heterosexual", "straight"], + "homo": ["homo", "gay", "lesbian", "lgbt", "invert", "homophile"] + }, + + "age": { + "young": ["young", "youthful", "juvenile", "adolescent", "teenage", "teenaged", "immature", "childish", "childlike", "babyish", "boyish", "boylike", "girlish", "girllike"], + "old": ["old", "oldish", "mature", "aged", "elderly", "veteran", "geriatric"] + }, + + "appearance": { + "attractive": ["pretty", "cute", "thin"], + "unattractive": ["ugly", "repellent", "fat"] + }, + + "disability": { + "healthy": ["healthy"], + "disabled": ["disabled", "impaired"] + }, + + "experience": { + "experienced": ["experienced", "expert", "advanced", "proficient", "familiar", "senior"], + "inexperienced" : ["inexperienced", "debutant", "junior", "unpracticed"] + }, + + "education": { + "educated": ["educated"], + "uneducated": ["uneducated", "unlearned"] + }, + + "social_class": { + "upper": ["eton", "chaps", "bloke", "smashing", "daily"], + "middle": ["lavatory", "nana", "uni"], + "working": ["nan", "loo", "toilet", "bubbly"] + }, + + "economic_status": { + "rich": ["rich", "wealth", "wealthy", "affluent", "comfortable"], + "poor": ["poor", "poverty", "broke", "homeless", "scrounger", "benefits", "beggar", "chav"] + } + }, "fr": { "religion": {