From 9e5ba43254c62f712c7aa22d04da88e43afbc9be Mon Sep 17 00:00:00 2001 From: Ken Alba Date: Fri, 23 Oct 2020 02:10:30 -0400 Subject: [PATCH 01/21] Added gender_pos.py Added a functional gender_pos.py whose functions are modeled after (and, honestly, supplant) gender_adjective.py. Also added four lists to common.py, of the Treebank tags for each part of speech. We may eventually want to allow the user to define their own part of speech list, like we do with gender. --- gender_analysis/analysis/gender_pos.py | 379 +++++++++++++++++++++++++ gender_analysis/common.py | 4 + 2 files changed, 383 insertions(+) create mode 100644 gender_analysis/analysis/gender_pos.py diff --git a/gender_analysis/analysis/gender_pos.py b/gender_analysis/analysis/gender_pos.py new file mode 100644 index 00000000..050022a2 --- /dev/null +++ b/gender_analysis/analysis/gender_pos.py @@ -0,0 +1,379 @@ +from statistics import median +from more_itertools import windowed +import nltk + +from gender_analysis.analysis.instance_distance import words_instance_dist +from gender_analysis import common + +pos_dict = {'adj':common.ADJ_TAGS, 'adv':common.ADV_TAGS, 'proper_noun':common.PROPER_NOUN_TAGS, "verb":common.VERB_TAGS} + +def find_gender_pos(document, pos_to_find, gender_to_find, genders_to_exclude = []): + """ + Takes in a document, a valid part-of-speech, and a Gender to look for, and returns a + dictionary of that appear within a window of 5 words around each identifier + + :param: document: Document + :param: gender_to_find: Gender + :param: genders_to_exclude: list of Genders to exclude. + :param: pos_to_find: part of speech to seek out. + :return: dictionary of that appear around pronouns mapped to the number of occurrences + + >>> from gender_analysis import document + >>> from pathlib import Path + >>> from gender_analysis import common + >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': '1966', + ... 'filename': 'test_text_7.txt', 'filepath': Path(common.TEST_DATA_PATH, 'document_test_files', 'test_text_7.txt')} + >>> scarlett = document.Document(document_metadata) + >>> find_gender_pos(scarlett, "adj", common.MALE, [common.FEMALE]) + {'handsome': 3, 'sad': 1} + + """ + output = {} + text = document.get_tokenized_text() + if pos_to_find in pos_dict.keys(): + pos_tags = pos_dict[pos_to_find] + else: + #TODO this is probably bad and should be fixed. + return "Error: invalid part of speech" + + identifiers_to_find = gender_to_find.identifiers + + identifiers_to_exclude = [] + for gender in genders_to_exclude: + for identifier in gender.identifiers: + identifiers_to_exclude.append(identifier) + + distances = words_instance_dist(document, identifiers_to_find) + + if len(distances) == 0: + return {} + elif len(distances) <= 3: + lower_window_bound = 5 + else: + lower_window_bound = median(sorted(distances)[:int(len(distances) / 2)]) + + if not lower_window_bound >= 5: + return "lower window bound less than 5" + + for words in windowed(text, 11): + if not words[5].lower() in identifiers_to_find: + continue + if bool(set(words) & set(identifiers_to_exclude)): + continue + + words = list(words) + for index, word in enumerate(words): + words[index] = word.lower() + + tags = nltk.pos_tag(words) + for tag_index, tag in enumerate(tags): + if tags[tag_index][1] in pos_tags: + word = words[tag_index] + if word in output.keys(): + output[word] += 1 + else: + output[word] = 1 + + return output + +def find_male_pos(document, pos_to_find): + """ + Takes in a document, returns a dictionary of poss that appear within a window of 5 + words around each male pronoun. + + :param: document + :param: pos_to_find: the part of speech to find. + :return: dictionary of pos that appear around male pronouns and the number of occurrences + + >>> from gender_analysis import document + >>> from pathlib import Path + >>> from gender_analysis import common + >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': '1966', + ... 'filename': 'test_text_8.txt', 'filepath': Path(common.TEST_DATA_PATH, 'document_test_files', 'test_text_8.txt')} + >>> scarlett = document.Document(document_metadata) + >>> find_male_pos(scarlett, "adj") + {'handsome': 3, 'sad': 1} + + """ + + return find_gender_pos(document, pos_to_find, common.MALE, [common.FEMALE]) + + +def find_female_pos(document, pos_to_find): + """ + Takes in a document, returns a dictionary of poss that appear within a window of 5 + words around each female pronoun. + + :param document: A Document object + :param: pos_to_find: the part of speech to find. + :return: dictionary of poss that appear around female pronouns and the number of occurrences + + >>> from gender_analysis import document + >>> from pathlib import Path + >>> from gender_analysis import common + >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': '1966', + ... 'filename': 'test_text_9.txt', 'filepath': Path(common.TEST_DATA_PATH, 'document_test_files', 'test_text_9.txt')} + >>> scarlett = document.Document(document_metadata) + >>> find_female_pos(scarlett, "adj") + {'beautiful': 3, 'sad': 1} + + """ + + return find_gender_pos(document, pos_to_find, common.FEMALE, [common.MALE]) + + +def run_pos_analysis(corpus, pos_to_find, gender_list = common.BINARY_GROUP): + """ + Takes in a corpus of novels. Return a dictionary with each novel mapped to n dictionaries, where + n is the number of Genders in gender_list. + The dictionary contains pos:occurences for each gendered set of identifiers. + + :param corpus: Corpus + :param: pos_to_find: the part of speech to find. + :return: dictionary where each key is a novel and the value is 2 dictionaries: poss and + number of occurrences associated with male or female pronouns + + """ + results = {} + + for novel in corpus: + results[novel] = {} + for gender in gender_list: + if gender.label == "Female": + novel_result = find_female_pos(novel, pos_to_find) + elif gender.label == "Male": + novel_result = find_male_pos(novel, pos_to_find) + else: + # Note that we exclude male from female and female from male but do not do this + # with other genders. + novel_result = find_gender_pos(novel, pos_to_find, gender) + if novel_result != "lower window bound less than 5": + results[novel].update({gender.label : novel_result}) + + return results + +def store_raw_results(results, pickle_filepath='pronoun_pos_raw_analysis.pgz'): + """ + Saves the results from run_pos_analysis to a pickle file. + + :param results: dictionary of results from run_pos_analysis + :param pickle_filepath: filepath to save the output + :return: None, saves results as pickled file with name 'pronoun_pos_raw_analysis' + + """ + try: + common.load_pickle(pickle_filepath) + x = input("results already stored. overwrite previous analysis? (y/n)") + if x == 'y': + common.store_pickle(results, pickle_filepath) + else: + pass + except IOError: + common.store_pickle(results, pickle_filepath) + + +def merge(novel_pos_dict, full_pos_dict): + """ + Merges pos occurrence results from a single novel with results for a larger + collection of novels. + + :param novel_pos_dict: dictionary of poss/#occurrences for one novel + :param full_pos_dict: dictionary of poss/#occurrences for multiple novels + :return: full_results dictionary with novel_results merged in + + >>> novel_pos_dict = {'hello': 5, 'hi': 7, 'hola': 9, 'bonjour': 2} + >>> full_pos_dict = {'hello': 15, 'bienvenue': 3, 'hi': 23} + >>> merge(novel_pos_dict, full_pos_dict) + {'hello': 20, 'bienvenue': 3, 'hi': 30, 'hola': 9, 'bonjour': 2} + + """ + for pos in list(novel_pos_dict.keys()): + pos_count = novel_pos_dict[pos] + if pos in list(full_pos_dict.keys()): + full_pos_dict[pos] += pos_count + else: + full_pos_dict[pos] = pos_count + return full_pos_dict + + +def merge_raw_results(full_results): + """ + Merges all poss across novels into dictionaries sorted by gender. + + :param full_results: full corpus results from run_pos_analysis + :return: dictionary in the form {'gender':{'pos': occurrences}} + + """ + + # First, we need to get the genders used in full_results. There's probably a better way to do + # this, but... + + result_key_list = list(full_results.keys()) + first_key = result_key_list[0] + genders = list(full_results[first_key].keys()) + + merged_results = {} + + for gender in genders: + merged_results[gender] = {} + + for novel in result_key_list: + for gender in genders: + merged_results[gender] = merge(full_results[novel][gender], merged_results[gender]) + + return merged_results + +def get_overlapping_pos_raw_results(merged_results): + """ + Looks through the gendered poss across the corpus and extracts poss that overlap + that overlap across all genders and their occurrences. + FORMAT - {'pos': [gender1, gender2, ...]} + :param merged_results: the results of merge_raw_results. + :return: dictionary in form {'pos': ['gender1': occurrences, 'gender2': occurences, ... }} + + TODO: Consider adding a more granular function that gets all sub-intersections. + + """ + + overlap_results = {} + genders = list(merged_results.keys()) + sets_of_pos = {} + + for gender in genders: + sets_of_pos[gender] = set(list(merged_results[gender].keys())) + + intersects_with_all = set.intersection(*sets_of_pos.values()) + + for pos in intersects_with_all: + output = [] + for gender in genders: + output.append(merged_results[gender][pos]) + overlap_results[pos] = output + + return overlap_results + + +def results_by_author_gender(full_results): + """ + Takes in the full dictionary of results, returns a dictionary that maps 'male_author' and + 'female_author' to a dictionary of poss and # occurrences across novels written by + an author of that gender. + + :param full_results: dictionary from result of run_pos_analysis + :return: dictionary in form {'gender_author': {'male': {pos:occurrences}, 'female':{pos:occurrences}}} + + TODO: Break this binary. Easiest way is adding a 'nonbinary' category. + """ + data = {'male_author': {'male': {}, 'female': {}}, "female_author": {'male': {}, 'female': {}}} + + for novel in list(full_results.keys()): + author_gender = getattr(novel, 'author_gender', None) + if author_gender == "male": + data['male_author']['male'] = merge(full_results[novel]['male'], data['male_author']['male']) + data['male_author']['female'] = merge(full_results[novel]['female'], data['male_author']['female']) + elif author_gender == 'female': + data['female_author']['male'] = merge(full_results[novel]['male'], data['female_author']['male']) + data['female_author']['female'] = merge(full_results[novel]['female'], data['female_author']['female']) + return data + + +def results_by_date(full_results, time_frame, bin_size): + """ + Takes in a dictionary of results, returns a dictionary that maps time periods to a + dictionary mapping poss to number of occurrences across novels written in that time period + + :param full_results: dictionary from result of run_pos_analysis + :param time_frame: tuple (int start year, int end year) for the range of dates to return + frequencies + :param bin_size: int for the number of years represented in each list of frequencies + :return: dictionary in form {date: {gender1: {pos:occurrences}, 'gender2': {pos:occurrences}, + ...}}, where date is the first year in its bin + + """ + data = {} + result_key_list = list(full_results.keys()) + first_key = result_key_list[0] + genders = list(full_results[first_key].keys()) + + for bin_start_year in range(time_frame[0], time_frame[1], bin_size): + output = {} + for gender in genders: + output[gender] = {} + data[bin_start_year] = output + + for k in full_results.keys(): + date = getattr(k, 'date', None) + if date is None: + continue + bin_year = ((date - time_frame[0]) // bin_size) * bin_size + time_frame[0] + for gender in genders: + data[bin_year][gender] = merge(full_results[k][gender], data[bin_year][gender]) + + return data + + +def results_by_location(full_results): + """ + Takes in a dictionary of results, and returns nested dictionary that maps locations to pos + uses by gender. + + :param full_results: dictionary from result of run_pos_analysis + :return: dictionary in form {'location': {'gender1': {pos:occurrences},\ + 'gender2':{pos:occurrences}, ...}} + + """ + data = {} + + result_key_list = list(full_results.keys()) + first_key = result_key_list[0] + genders = list(full_results[first_key].keys()) + gendered_output = {} + + for gender in genders: + gendered_output[gender] = {} + + for k in full_results.keys(): + location = getattr(k, 'country_publication', None) + if location is None: + continue + + if location not in data: + data[location] = gendered_output + + for gender in genders: + data[location][gender] = merge(full_results[k][gender], data[location][gender]) + + return data + + +def get_top_pos(full_results, num): + """ + Takes dictionary of results from run_pos_analysis and number of top results to return. + Returns the top num poss associated with each gender. + + :param full_results: dictionary from result of run_pos_analysis + :param num: number of top results to return per gender + :return: dictionary of lists of top pos associated more with each gender than the others. + """ + merged_results = merge_raw_results(full_results) + genders = list(merged_results.keys()) + + top = {} + + excluded_results = {} + for gender in genders: + excluded_results[gender] = {} + other_genders = genders.copy() + other_genders.remove(gender) + for pos, count in merged_results[gender].items(): + other_count = 0 + for other_gender in other_genders: + if pos in merged_results[other_gender].keys(): + other_count += merged_results[other_gender][pos] + new_count = count - other_count + excluded_results[gender][pos] = new_count + + # Sorts (pos, count) lists by count. + top[gender] = sorted(excluded_results[gender].items(), reverse=True, key=lambda x:x[1])[0:num] + + return top diff --git a/gender_analysis/common.py b/gender_analysis/common.py index 73a610b2..f7969097 100644 --- a/gender_analysis/common.py +++ b/gender_analysis/common.py @@ -57,6 +57,10 @@ def load_csv_to_list(file_path): file.close() return result +ADJ_TAGS = ["JJ", "JJR", "JJS"] +ADV_TAGS = ["RB", "RBR", "RBS"] +PROPER_NOUN_TAGS = ["NNP", "NNPS"] +VERB_TAGS = ["VB","VBD","VBG", "VBN", "VBP", "VBZ"] def load_txt_to_string(file_path): """ From a9b2fc551062b0a78e74eec303cc2820045022eb Mon Sep 17 00:00:00 2001 From: DocEon Date: Fri, 4 Dec 2020 16:51:32 -0500 Subject: [PATCH 02/21] Adding gender_pos, refactoring gender_adjective. Added functionality to support four parts of speech -adjectives, adverbs, proper nouns, and verbs - isntead of just adjectives. --- gender_analysis/analysis/gender_adjective.py | 283 +----------- gender_analysis/analysis/gender_pos.py | 442 +++++++++++++------ 2 files changed, 318 insertions(+), 407 deletions(-) diff --git a/gender_analysis/analysis/gender_adjective.py b/gender_analysis/analysis/gender_adjective.py index aac02ac0..8ba7e8a8 100644 --- a/gender_analysis/analysis/gender_adjective.py +++ b/gender_analysis/analysis/gender_adjective.py @@ -1,7 +1,5 @@ -from more_itertools import windowed -import nltk - from gender_analysis import common +from gender_analysis.analysis import gender_pos def find_gender_adj(document, gender_to_find, word_window=5, genders_to_exclude=None): @@ -27,40 +25,9 @@ def find_gender_adj(document, gender_to_find, word_window=5, genders_to_exclude= {'handsome': 3, 'sad': 1} """ - output = {} - identifiers_to_exclude = [] - text = document.get_tokenized_text() - adj_tags = ["JJ", "JJR", "JJS"] - - identifiers_to_find = gender_to_find.identifiers - - if genders_to_exclude is None: - genders_to_exclude = list() - - for gender in genders_to_exclude: - for identifier in gender.identifiers: - identifiers_to_exclude.append(identifier) - - for words in windowed(text, 2 * word_window + 1): - if not words[word_window].lower() in identifiers_to_find: - continue - if bool(set(words) & set(identifiers_to_exclude)): - continue - words = list(words) - for index, word in enumerate(words): - words[index] = word.lower() - - tags = nltk.pos_tag(words) - for tag_index, _ in enumerate(tags): - if tags[tag_index][1] in adj_tags: - word = words[tag_index] - if word in output.keys(): - output[word] += 1 - else: - output[word] = 1 - - return output + return gender_pos.find_gender_pos(document, 'adj', + gender_to_find, word_window, genders_to_exclude) def find_male_adj(document): @@ -140,7 +107,7 @@ def run_adj_analysis(corpus, gender_list=None): return results -def run_adj_analysis_doc(document, gender_list=None): +def run_adj_analysis_doc(document, gender_list=common.BINARY_GROUP): """ Takes in a document and a list of genders to analyze, returns a dictionary with the find_gender_adj results for each gender in gender_list. @@ -160,24 +127,7 @@ def run_adj_analysis_doc(document, gender_list=None): """ - results = {} - - if gender_list is None: - gender_list = common.BINARY_GROUP - - for gender in gender_list: - if gender.label == "Female": - novel_result = find_female_adj(document) - elif gender.label == "Male": - novel_result = find_male_adj(document) - else: - # Note that we exclude male from female and female from male but do not do this - # with other genders. - novel_result = find_gender_adj(document, gender) - if novel_result != "lower window bound less than 5": - results.update({gender.label: novel_result}) - - return results + return gender_pos.run_pos_analysis_doc(document, 'adj', gender_list) def store_raw_results(results, pickle_filepath='pronoun_adj_raw_analysis.pgz'): @@ -189,15 +139,8 @@ def store_raw_results(results, pickle_filepath='pronoun_adj_raw_analysis.pgz'): :return: None, saves results as pickled file with name 'pronoun_adj_raw_analysis' """ - try: - common.load_pickle(pickle_filepath) - user_inp = input("results already stored. overwrite previous analysis? (y/n)") - if user_inp == 'y': - common.store_pickle(results, pickle_filepath) - else: - pass - except IOError: - common.store_pickle(results, pickle_filepath) + + gender_pos.store_raw_results(results, pickle_filepath) def merge(novel_adj_dict, full_adj_dict): @@ -215,13 +158,8 @@ def merge(novel_adj_dict, full_adj_dict): {'hello': 20, 'bienvenue': 3, 'hi': 30, 'hola': 9, 'bonjour': 2} """ - for adj in list(novel_adj_dict.keys()): - adj_count = novel_adj_dict[adj] - if adj in list(full_adj_dict.keys()): - full_adj_dict[adj] += adj_count - else: - full_adj_dict[adj] = adj_count - return full_adj_dict + + return gender_pos.merge(novel_adj_dict, full_adj_dict) def merge_raw_results(full_results): @@ -240,23 +178,7 @@ def merge_raw_results(full_results): 4 """ - # First, we need to get the genders used in full_results. There's probably a better way to do - # this, but... - - result_key_list = list(full_results.keys()) - first_key = result_key_list[0] - genders = list(full_results[first_key].keys()) - - merged_results = {} - - for gender in genders: - merged_results[gender] = {} - - for novel in result_key_list: - for gender in genders: - merged_results[gender] = merge(full_results[novel][gender], merged_results[gender]) - - return merged_results + return gender_pos.merge_raw_results(full_results) def get_overlapping_adjectives_raw_results(merged_results): @@ -270,22 +192,7 @@ def get_overlapping_adjectives_raw_results(merged_results): TODO: Consider adding a more granular function that gets all sub-intersections. """ - overlap_results = {} - genders = list(merged_results.keys()) - sets_of_adjectives = {} - - for gender in genders: - sets_of_adjectives[gender] = set(list(merged_results[gender].keys())) - - intersects_with_all = set.intersection(*sets_of_adjectives.values()) - - for adj in intersects_with_all: - output = [] - for gender in genders: - output.append(merged_results[gender][adj]) - overlap_results[adj] = output - - return overlap_results + return gender_pos.get_overlapping_pos_raw_results(merged_results) def results_by_author_gender(full_results): @@ -298,30 +205,8 @@ def results_by_author_gender(full_results): 'gender2':{adj:occurrences}, ...}} """ - data = {} - result_key_list = list(full_results.keys()) - first_key = result_key_list[0] - genders = list(full_results[first_key].keys()) - gendered_output = {} - - for gender in genders: - gendered_output[gender] = {} - - for k in full_results.keys(): - author_gender = getattr(k, 'author_gender', None) - if author_gender is None: - continue - - if author_gender not in data: - data[author_gender] = {} - - for gender in genders: - data[author_gender][gender] = {} - data[author_gender][gender] = merge(full_results[k][gender], - data[author_gender][gender]) - - return data + return gender_pos.results_by_author_gender(full_results) def results_by_location(full_results): @@ -334,66 +219,7 @@ def results_by_location(full_results): 'gender2':{adj:occurrences}, ...}} """ - data = {} - - result_key_list = list(full_results.keys()) - first_key = result_key_list[0] - genders = list(full_results[first_key].keys()) - gendered_output = {} - - for gender in genders: - gendered_output[gender] = {} - - for k in full_results.keys(): - location = getattr(k, 'country_publication', None) - if location is None: - continue - - if location not in data: - data[location] = {} - - for gender in genders: - data[location][gender] = {} - data[location][gender] = merge(full_results[k][gender], data[location][gender]) - - return data - - -def results_by_date(full_results, time_frame, bin_size): - """ - Takes in a dictionary of results, returns a dictionary that maps time periods to a - dictionary mapping adjectives to number of occurrences across novels written in that time period - - :param full_results: dictionary from result of run_adj_analysis - :param time_frame: tuple (int start year, int end year) for the range of dates to return - frequencies - :param bin_size: int for the number of years represented in each list of frequencies - :return: dictionary in form {date: {gender1: {adj:occurrences}, 'gender2': {adj:occurrences}, - ...}}, where date is the first year in its bin - """ - - data = {} - result_key_list = list(full_results.keys()) - first_key = result_key_list[0] - genders = list(full_results[first_key].keys()) - - for bin_start_year in range(time_frame[0], time_frame[1], bin_size): - output = {} - for gender in genders: - output[gender] = {} - data[bin_start_year] = output - - for k in full_results.keys(): - date = getattr(k, 'date', None) - if date is None: - continue - bin_year = ((date - time_frame[0]) // bin_size) * bin_size + time_frame[0] - data[bin_year] = {} - for gender in genders: - data[bin_year][gender] = {} - data[bin_year][gender] = merge(full_results[k][gender], data[bin_year][gender]) - - return data + return gender_pos.results_by_location(full_results) def get_top_adj(full_results, num, remove_swords=False): @@ -408,36 +234,7 @@ def get_top_adj(full_results, num, remove_swords=False): :return: dictionary of lists of top adjectives associated more with each gender than the others. """ - merged_results = merge_raw_results(full_results) - genders = list(merged_results.keys()) - - top = {} - - excluded_results = {} - for gender in genders: - excluded_results[gender] = {} - other_genders = genders.copy() - other_genders.remove(gender) - - for adj, count in merged_results[gender].items(): - other_count = 0 - - for other_gender in other_genders: - if adj in merged_results[other_gender].keys(): - if remove_swords: - if adj in common.SWORDS_ENG: - other_count += merged_results[other_gender][adj] - else: - other_count += merged_results[other_gender][adj] - - new_count = count - other_count - excluded_results[gender][adj] = new_count - - # Sorts (adj, count) lists by count. - top[gender] = sorted(excluded_results[gender].items(), - reverse=True, key=lambda x: x[1])[0:num] - - return top + return gender_pos.get_top_pos(full_results, num, remove_swords) def display_binned_results(metadata_binned_results, num_to_return, remove_swords=False): @@ -450,15 +247,8 @@ def display_binned_results(metadata_binned_results, num_to_return, remove_swords :return: A formatted, sorted dictionary of results. """ - display_dict = {} - - for metadata_bin, gender_results in metadata_binned_results.items(): - display_dict[metadata_bin] = {} - for gender, results in gender_results.items(): - display_dict[metadata_bin][gender] = display_gender_adjectives(results, num_to_return, - remove_swords) - - return display_dict + return gender_pos.display_binned_results(metadata_binned_results, num_to_return, + remove_swords) def difference_adjs(gender_adj_dict, num_to_return=10): @@ -485,36 +275,7 @@ def difference_adjs(gender_adj_dict, num_to_return=10): ('invisible', 3) """ - difference_dict = {} - - for gender in gender_adj_dict: - temp_dict = gender_adj_dict.copy() - current_gender_dict = temp_dict.pop(gender) - current_difference = {} - - for word, count in current_gender_dict.items(): - current_difference[word] = count - - for other_gender in temp_dict.keys(): - other_gender_dict = temp_dict[other_gender] - - for word, count in other_gender_dict.items(): - if word in current_difference.keys(): - current_difference[word] -= count - - stopwordless_words = [ - (key, current_difference[key]) - for key in current_difference - if key not in common.SWORDS_ENG - ] - - current_sorted_tuples = sorted( - stopwordless_words, key=lambda sort_word: sort_word[1], reverse=True - ) - - difference_dict[gender] = current_sorted_tuples[:num_to_return] - - return difference_dict + return gender_pos.difference_pos(gender_adj_dict, num_to_return) def display_gender_adjectives(result_dict, num_to_return=10, remove_stopwords=True): @@ -528,12 +289,4 @@ def display_gender_adjectives(result_dict, num_to_return=10, remove_stopwords=Tr :return: tuples of sorted top num_to_return words with their freq """ - if remove_stopwords: - result_tup_list = [(key, result_dict[key]) for key in result_dict if key not in - common.SWORDS_ENG] - else: - result_tup_list = [(key, result_dict[key]) for key in result_dict] - - sorted_tuples = sorted(result_tup_list, key=lambda word: word[1], reverse=True) - - return sorted_tuples[:num_to_return] + return gender_pos.display_gender_pos(result_dict, num_to_return, remove_stopwords) diff --git a/gender_analysis/analysis/gender_pos.py b/gender_analysis/analysis/gender_pos.py index 050022a2..3771212f 100644 --- a/gender_analysis/analysis/gender_pos.py +++ b/gender_analysis/analysis/gender_pos.py @@ -1,62 +1,55 @@ -from statistics import median from more_itertools import windowed import nltk -from gender_analysis.analysis.instance_distance import words_instance_dist from gender_analysis import common +pos_dict = {'adj': common.ADJ_TAGS, 'adv': common.ADV_TAGS, + 'proper_noun': common.PROPER_NOUN_TAGS, "verb": common.VERB_TAGS} -pos_dict = {'adj':common.ADJ_TAGS, 'adv':common.ADV_TAGS, 'proper_noun':common.PROPER_NOUN_TAGS, "verb":common.VERB_TAGS} -def find_gender_pos(document, pos_to_find, gender_to_find, genders_to_exclude = []): +def find_gender_pos(document, pos_to_find, gender_to_find, word_window=5, genders_to_exclude=None): + # pylint: disable=too-many-locals """ - Takes in a document, a valid part-of-speech, and a Gender to look for, and returns a - dictionary of that appear within a window of 5 words around each identifier + Takes in a document, a valid part-of-speech, and a Gender to look for, + and returns a dictionary of words that appear within a window of 5 words around each identifier. - :param: document: Document - :param: gender_to_find: Gender - :param: genders_to_exclude: list of Genders to exclude. - :param: pos_to_find: part of speech to seek out. - :return: dictionary of that appear around pronouns mapped to the number of occurrences + :param document: Document + :param pos_to_find: A valid part of speech tag from pos_dict: ['adj','adv','proper_noun','verb'] + :param word_window: number of words to search for in either direction of a gender instance + :param gender_to_find: Gender + :param genders_to_exclude: list of Genders to exclude, or None + :return: dict of words that appear around pronouns mapped to the number of occurrences >>> from gender_analysis import document >>> from pathlib import Path >>> from gender_analysis import common - >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': '1966', - ... 'filename': 'test_text_7.txt', 'filepath': Path(common.TEST_DATA_PATH, 'document_test_files', 'test_text_7.txt')} + >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': \ + '1966', 'filename': 'test_text_7.txt', 'filepath': Path(common.TEST_DATA_PATH, \ + 'document_test_files', 'test_text_7.txt')} >>> scarlett = document.Document(document_metadata) - >>> find_gender_pos(scarlett, "adj", common.MALE, [common.FEMALE]) + >>> find_gender_pos(scarlett, 'adj', common.MALE, genders_to_exclude=[common.FEMALE]) {'handsome': 3, 'sad': 1} """ output = {} + identifiers_to_exclude = [] text = document.get_tokenized_text() + if pos_to_find in pos_dict.keys(): pos_tags = pos_dict[pos_to_find] else: - #TODO this is probably bad and should be fixed. - return "Error: invalid part of speech" + return "Invalid part of speech" identifiers_to_find = gender_to_find.identifiers - identifiers_to_exclude = [] + if genders_to_exclude is None: + genders_to_exclude = list() + for gender in genders_to_exclude: for identifier in gender.identifiers: identifiers_to_exclude.append(identifier) - distances = words_instance_dist(document, identifiers_to_find) - - if len(distances) == 0: - return {} - elif len(distances) <= 3: - lower_window_bound = 5 - else: - lower_window_bound = median(sorted(distances)[:int(len(distances) / 2)]) - - if not lower_window_bound >= 5: - return "lower window bound less than 5" - - for words in windowed(text, 11): - if not words[5].lower() in identifiers_to_find: + for words in windowed(text, 2 * word_window + 1): + if not words[word_window].lower() in identifiers_to_find: continue if bool(set(words) & set(identifiers_to_exclude)): continue @@ -66,7 +59,7 @@ def find_gender_pos(document, pos_to_find, gender_to_find, genders_to_exclude = words[index] = word.lower() tags = nltk.pos_tag(words) - for tag_index, tag in enumerate(tags): + for tag_index, _ in enumerate(tags): if tags[tag_index][1] in pos_tags: word = words[tag_index] if word in output.keys(): @@ -76,95 +69,136 @@ def find_gender_pos(document, pos_to_find, gender_to_find, genders_to_exclude = return output + def find_male_pos(document, pos_to_find): """ - Takes in a document, returns a dictionary of poss that appear within a window of 5 - words around each male pronoun. + Takes in a document and a pos tag, returns a dictionary of words of the part of speech + that appear within a window of 5 words around each male pronoun. - :param: document - :param: pos_to_find: the part of speech to find. - :return: dictionary of pos that appear around male pronouns and the number of occurrences + :param document: Document to search for + :param pos_to_find: A valid part of speech tag from pos_dict: ['adj','adv','proper_noun','verb'] + :return: dictionary of adjectives that appear around male pronouns and the number of occurrences >>> from gender_analysis import document >>> from pathlib import Path >>> from gender_analysis import common - >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': '1966', - ... 'filename': 'test_text_8.txt', 'filepath': Path(common.TEST_DATA_PATH, 'document_test_files', 'test_text_8.txt')} + >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': \ + '1966', 'filename': 'test_text_8.txt', 'filepath': Path(common.TEST_DATA_PATH, \ + 'document_test_files', 'test_text_8.txt')} >>> scarlett = document.Document(document_metadata) - >>> find_male_pos(scarlett, "adj") + >>> find_male_pos(scarlett, 'adj') {'handsome': 3, 'sad': 1} - """ - return find_gender_pos(document, pos_to_find, common.MALE, [common.FEMALE]) + return find_gender_pos(document, pos_to_find, common.MALE, genders_to_exclude=[common.FEMALE]) def find_female_pos(document, pos_to_find): """ - Takes in a document, returns a dictionary of poss that appear within a window of 5 - words around each female pronoun. + Takes in a document and a pos tag, returns a dictionary of words of the part of speech + that appear within a window of 5 words around each female pronoun. - :param document: A Document object - :param: pos_to_find: the part of speech to find. - :return: dictionary of poss that appear around female pronouns and the number of occurrences + :param document: Document to search through + :param pos_to_find: A valid part of speech tag from pos_dict: ['adj','adv','proper_noun','verb'] + :return: dictionary of adjectives that appear around male pronouns and the number of occurrences - >>> from gender_analysis import document - >>> from pathlib import Path - >>> from gender_analysis import common - >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': '1966', - ... 'filename': 'test_text_9.txt', 'filepath': Path(common.TEST_DATA_PATH, 'document_test_files', 'test_text_9.txt')} - >>> scarlett = document.Document(document_metadata) - >>> find_female_pos(scarlett, "adj") - {'beautiful': 3, 'sad': 1} + >>> from gender_analysis import document + >>> from pathlib import Path + >>> from gender_analysis import common + >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': \ + '1966', 'filename': 'test_text_8.txt', 'filepath': Path(common.TEST_DATA_PATH, \ + 'document_test_files', 'test_text_8.txt')} + >>> scarlett = document.Document(document_metadata) + >>> find_male_pos(scarlett, 'adj') + {'handsome': 3, 'sad': 1} """ - return find_gender_pos(document, pos_to_find, common.FEMALE, [common.MALE]) + return find_gender_pos(document, pos_to_find, common.FEMALE, genders_to_exclude=[common.MALE]) -def run_pos_analysis(corpus, pos_to_find, gender_list = common.BINARY_GROUP): +def run_pos_analysis(corpus, pos_to_find, gender_list=common.BINARY_GROUP): """ - Takes in a corpus of novels. Return a dictionary with each novel mapped to n dictionaries, where - n is the number of Genders in gender_list. - The dictionary contains pos:occurences for each gendered set of identifiers. + Takes in a corpus of novels. + Return a dictionary with each novel mapped to n dictionaries, + where n is the number of Genders in gender_list. + + The dictionary contains adjectives:occurrences for each gendered set of identifiers. :param corpus: Corpus - :param: pos_to_find: the part of speech to find. - :return: dictionary where each key is a novel and the value is 2 dictionaries: poss and - number of occurrences associated with male or female pronouns + :param pos_to_find: A valid part of speech tag from pos_dict: ['adj','adv','proper_noun','verb'] + :param gender_list: a list of genders to run the adjective search for. + :return: dictionary where each key is a novel and the value is len(gender_list) + dictionaries: Adjectives and number of occurrences associated with gender pronouns + + >>> from gender_analysis.corpus import Corpus + >>> from gender_analysis.testing.common import TEST_CORPUS_PATH, TINY_TEST_CORPUS_CSV + >>> from gender_analysis.analysis.gender_adjective import run_adj_analysis + >>> tiny_corpus = Corpus(TEST_CORPUS_PATH, csv_path=TINY_TEST_CORPUS_CSV, ignore_warnings=True) + >>> tiny_results = run_pos_analysis(tiny_corpus, 'adj') + >>> tiny_results[[*tiny_results][0]]['Female']['invisible'] + 3 + """ + + results = {} + + for document in corpus: + results[document] = run_pos_analysis_doc(document, pos_to_find, gender_list) + + return results + + +def run_pos_analysis_doc(document, pos_to_find, gender_list=common.BINARY_GROUP): + """ + Takes in a document, a pos tag, and a list of genders to analyze, + returns a dictionary with the find_gender_pos results for each gender in gender_list. + + :param document: a Document object + :param pos_to_find: A valid part of speech tag from pos_dict: ['adj','adv','proper_noun','verb'] + :param gender_list: a list of genders to run the adjective search for. + :return: a dictionary of find_gender_adj results for each gender in gender_list. + + >>> from gender_analysis.corpus import Corpus + >>> from gender_analysis.testing.common import TEST_CORPUS_PATH, TINY_TEST_CORPUS_CSV + >>> from gender_analysis.analysis.gender_adjective import run_adj_analysis_doc + >>> corpus = Corpus(TEST_CORPUS_PATH, csv_path=TINY_TEST_CORPUS_CSV, ignore_warnings = True) + >>> flatland = corpus.get_document("title", "Flatland") + >>> adj_dict = run_pos_analysis_doc(flatland, 'adj') + >>> adj_dict['Female']['invisible'] + 3 """ + results = {} - for novel in corpus: - results[novel] = {} - for gender in gender_list: - if gender.label == "Female": - novel_result = find_female_pos(novel, pos_to_find) - elif gender.label == "Male": - novel_result = find_male_pos(novel, pos_to_find) - else: - # Note that we exclude male from female and female from male but do not do this - # with other genders. - novel_result = find_gender_pos(novel, pos_to_find, gender) - if novel_result != "lower window bound less than 5": - results[novel].update({gender.label : novel_result}) + for gender in gender_list: + if gender.label == "Female": + novel_result = find_female_pos(document, pos_to_find) + elif gender.label == "Male": + novel_result = find_male_pos(document, pos_to_find) + else: + # Note that we exclude male from female and female from male but do not do this + # with other genders. + novel_result = find_gender_pos(document, pos_to_find, gender) + if novel_result != "lower window bound less than 5": + results.update({gender.label: novel_result}) return results -def store_raw_results(results, pickle_filepath='pronoun_pos_raw_analysis.pgz'): + +def store_raw_results(results, pickle_filepath='pronoun_adj_raw_analysis.pgz'): """ - Saves the results from run_pos_analysis to a pickle file. + Saves the results from run_adj_analysis to a pickle file. - :param results: dictionary of results from run_pos_analysis + :param results: dictionary of results from run_adj_analysis :param pickle_filepath: filepath to save the output - :return: None, saves results as pickled file with name 'pronoun_pos_raw_analysis' + :return: None, saves results as pickled file with name 'pronoun_adj_raw_analysis' """ try: common.load_pickle(pickle_filepath) - x = input("results already stored. overwrite previous analysis? (y/n)") - if x == 'y': + user_inp = input("results already stored. overwrite previous analysis? (y/n)") + if user_inp == 'y': common.store_pickle(results, pickle_filepath) else: pass @@ -181,9 +215,9 @@ def merge(novel_pos_dict, full_pos_dict): :param full_pos_dict: dictionary of poss/#occurrences for multiple novels :return: full_results dictionary with novel_results merged in - >>> novel_pos_dict = {'hello': 5, 'hi': 7, 'hola': 9, 'bonjour': 2} - >>> full_pos_dict = {'hello': 15, 'bienvenue': 3, 'hi': 23} - >>> merge(novel_pos_dict, full_pos_dict) + >>> test_novel_pos_dict = {'hello': 5, 'hi': 7, 'hola': 9, 'bonjour': 2} + >>> test_full_pos_dict = {'hello': 15, 'bienvenue': 3, 'hi': 23} + >>> merge(test_novel_pos_dict, test_full_pos_dict) {'hello': 20, 'bienvenue': 3, 'hi': 30, 'hola': 9, 'bonjour': 2} """ @@ -223,6 +257,7 @@ def merge_raw_results(full_results): return merged_results + def get_overlapping_pos_raw_results(merged_results): """ Looks through the gendered poss across the corpus and extracts poss that overlap @@ -234,7 +269,6 @@ def get_overlapping_pos_raw_results(merged_results): TODO: Consider adding a more granular function that gets all sub-intersections. """ - overlap_results = {} genders = list(merged_results.keys()) sets_of_pos = {} @@ -255,72 +289,48 @@ def get_overlapping_pos_raw_results(merged_results): def results_by_author_gender(full_results): """ - Takes in the full dictionary of results, returns a dictionary that maps 'male_author' and - 'female_author' to a dictionary of poss and # occurrences across novels written by - an author of that gender. + Takes in a dictionary of results, and returns nested dictionary that maps author_gender to + part_of_speech uses by gender. - :param full_results: dictionary from result of run_pos_analysis - :return: dictionary in form {'gender_author': {'male': {pos:occurrences}, 'female':{pos:occurrences}}} - - TODO: Break this binary. Easiest way is adding a 'nonbinary' category. - """ - data = {'male_author': {'male': {}, 'female': {}}, "female_author": {'male': {}, 'female': {}}} - - for novel in list(full_results.keys()): - author_gender = getattr(novel, 'author_gender', None) - if author_gender == "male": - data['male_author']['male'] = merge(full_results[novel]['male'], data['male_author']['male']) - data['male_author']['female'] = merge(full_results[novel]['female'], data['male_author']['female']) - elif author_gender == 'female': - data['female_author']['male'] = merge(full_results[novel]['male'], data['female_author']['male']) - data['female_author']['female'] = merge(full_results[novel]['female'], data['female_author']['female']) - return data - - -def results_by_date(full_results, time_frame, bin_size): - """ - Takes in a dictionary of results, returns a dictionary that maps time periods to a - dictionary mapping poss to number of occurrences across novels written in that time period - - :param full_results: dictionary from result of run_pos_analysis - :param time_frame: tuple (int start year, int end year) for the range of dates to return - frequencies - :param bin_size: int for the number of years represented in each list of frequencies - :return: dictionary in form {date: {gender1: {pos:occurrences}, 'gender2': {pos:occurrences}, - ...}}, where date is the first year in its bin + :param full_results: dictionary from result of run_adj_analysis + :return: dictionary in form {'author_gender': {'gender1': {adj:occurrences},\ + 'gender2':{adj:occurrences}, ...}} """ data = {} + result_key_list = list(full_results.keys()) first_key = result_key_list[0] genders = list(full_results[first_key].keys()) + gendered_output = {} - for bin_start_year in range(time_frame[0], time_frame[1], bin_size): - output = {} - for gender in genders: - output[gender] = {} - data[bin_start_year] = output + for gender in genders: + gendered_output[gender] = {} for k in full_results.keys(): - date = getattr(k, 'date', None) - if date is None: + author_gender = getattr(k, 'author_gender', None) + if author_gender is None: continue - bin_year = ((date - time_frame[0]) // bin_size) * bin_size + time_frame[0] + + if author_gender not in data: + data[author_gender] = {} + for gender in genders: - data[bin_year][gender] = merge(full_results[k][gender], data[bin_year][gender]) + data[author_gender][gender] = {} + data[author_gender][gender] = merge(full_results[k][gender], + data[author_gender][gender]) return data def results_by_location(full_results): """ - Takes in a dictionary of results, and returns nested dictionary that maps locations to pos + Takes in a dictionary of results, and returns nested dictionary that maps locations to adjective uses by gender. - :param full_results: dictionary from result of run_pos_analysis - :return: dictionary in form {'location': {'gender1': {pos:occurrences},\ - 'gender2':{pos:occurrences}, ...}} - + :param full_results: dictionary from result of run_adj_analysis + :return: dictionary in form {'location': {'gender1': {adj:occurrences},\ + 'gender2':{adj:occurrences}, ...}} """ data = {} @@ -338,23 +348,64 @@ def results_by_location(full_results): continue if location not in data: - data[location] = gendered_output + data[location] = {} for gender in genders: + data[location][gender] = {} data[location][gender] = merge(full_results[k][gender], data[location][gender]) return data -def get_top_pos(full_results, num): +def results_by_date(full_results, time_frame, bin_size): + """ + Takes in a dictionary of results, returns a dictionary that maps time periods to a + dictionary mapping adjectives to number of occurrences across novels written in that time period + + :param full_results: dictionary from result of run_adj_analysis + :param time_frame: tuple (int start year, int end year) for the range of dates to return + frequencies + :param bin_size: int for the number of years represented in each list of frequencies + :return: dictionary in form {date: {gender1: {adj:occurrences}, 'gender2': {adj:occurrences}, + ...}}, where date is the first year in its bin + """ + + data = {} + result_key_list = list(full_results.keys()) + first_key = result_key_list[0] + genders = list(full_results[first_key].keys()) + + for bin_start_year in range(time_frame[0], time_frame[1], bin_size): + output = {} + for gender in genders: + output[gender] = {} + data[bin_start_year] = output + + for k in full_results.keys(): + date = getattr(k, 'date', None) + if date is None: + continue + bin_year = ((date - time_frame[0]) // bin_size) * bin_size + time_frame[0] + data[bin_year] = {} + for gender in genders: + data[bin_year][gender] = {} + data[bin_year][gender] = merge(full_results[k][gender], data[bin_year][gender]) + + return data + + +def get_top_pos(full_results, num, remove_swords=False): + # pylint: disable=too-many-nested-blocks """ Takes dictionary of results from run_pos_analysis and number of top results to return. - Returns the top num poss associated with each gender. + Returns the top num adjectives associated with each gender. :param full_results: dictionary from result of run_pos_analysis :param num: number of top results to return per gender - :return: dictionary of lists of top pos associated more with each gender than the others. + :param remove_swords: Boolean that asks whether to remove English stopwords results + :return: dictionary of lists of top adjectives associated more with each gender than the others. """ + merged_results = merge_raw_results(full_results) genders = list(merged_results.keys()) @@ -365,15 +416,122 @@ def get_top_pos(full_results, num): excluded_results[gender] = {} other_genders = genders.copy() other_genders.remove(gender) - for pos, count in merged_results[gender].items(): + + for pos_word, count in merged_results[gender].items(): other_count = 0 + for other_gender in other_genders: - if pos in merged_results[other_gender].keys(): - other_count += merged_results[other_gender][pos] + if pos_word in merged_results[other_gender].keys(): + if remove_swords: + if pos_word in common.SWORDS_ENG: + other_count += merged_results[other_gender][pos_word] + else: + other_count += merged_results[other_gender][pos_word] + new_count = count - other_count - excluded_results[gender][pos] = new_count + excluded_results[gender][pos_word] = new_count - # Sorts (pos, count) lists by count. - top[gender] = sorted(excluded_results[gender].items(), reverse=True, key=lambda x:x[1])[0:num] + # Sorts (adj, count) lists by count. + top[gender] = sorted(excluded_results[gender].items(), + reverse=True, key=lambda x: x[1])[0:num] return top + + +def display_binned_results(metadata_binned_results, num_to_return, remove_swords=False): + """ + Takes in the results of results_by_(metadata_field) and returns a reader-friendly set of dicts. + + :param metadata_binned_results: The results of results_by_author_gender, location, or date. + :param num_to_return: Number of adjectives to return + :param remove_swords: Whether or not to remove English stopwords + :return: A formatted, sorted dictionary of results. + """ + + display_dict = {} + + for metadata_bin, gender_results in metadata_binned_results.items(): + display_dict[metadata_bin] = {} + for gender, results in gender_results.items(): + display_dict[metadata_bin][gender] = display_gender_pos(results, num_to_return, + remove_swords) + + return display_dict + + +def difference_pos(gender_pos_dict, num_to_return=10): + """ + Given result dictionaries from find_gender_pos, + returns a dictionary with num_to_return pos_words + most strongly associated with each gender. + + This works especially well with merged_results from a merge_raw_results function, + but can also be used on individual locations from result_by_location + or individual date ranges from result_by_date_range. + + :param gender_pos_dict: a dict of dicts in the form {word:count}, + :param num_to_return: the number of top words to return + :return: a dict of dicts in the form of {"gender":{list of top words w/ differential counts. + + >>> from gender_analysis.corpus import Corpus + >>> from gender_analysis.testing.common import TEST_CORPUS_PATH, TINY_TEST_CORPUS_CSV + >>> tiny_corpus = Corpus(TEST_CORPUS_PATH, csv_path=TINY_TEST_CORPUS_CSV, ignore_warnings=True) + >>> flatland = tiny_corpus.get_document("title", "Flatland") + >>> flatland_pos = run_pos_analysis_doc(flatland, 'adj') + >>> flatland_diffs = difference_pos(flatland_pos) + >>> flatland_diffs['Female'][0] + ('invisible', 3) + """ + + difference_dict = {} + + for gender in gender_pos_dict: + temp_dict = gender_pos_dict.copy() + current_gender_dict = temp_dict.pop(gender) + current_difference = {} + + for word, count in current_gender_dict.items(): + current_difference[word] = count + + for other_gender in temp_dict.keys(): + other_gender_dict = temp_dict[other_gender] + + for word, count in other_gender_dict.items(): + if word in current_difference.keys(): + current_difference[word] -= count + + stopwordless_words = [ + (key, current_difference[key]) + for key in current_difference + if key not in common.SWORDS_ENG + ] + + current_sorted_tuples = sorted( + stopwordless_words, key=lambda sort_word: sort_word[1], reverse=True + ) + + difference_dict[gender] = current_sorted_tuples[:num_to_return] + + return difference_dict + + +def display_gender_pos(result_dict, num_to_return=10, remove_stopwords=True): + """ + takes the results of find_gender_pos and prints out to the user the top number_to_return + adjectives associated with the gender searched for, sorted + + :param result_dict:a dict of word-value frequency + :param num_to_return: top num of words to be returned to the user -> threshold, or the top? + :param remove_stopwords: removes English stopwords + :return: tuples of sorted top num_to_return words with their freq + """ + + if remove_stopwords: + result_tup_list = [(key, result_dict[key]) for key in result_dict if key not in + common.SWORDS_ENG] + else: + result_tup_list = [(key, result_dict[key]) for key in result_dict] + + sorted_tuples = sorted(result_tup_list, key=lambda word: word[1], reverse=True) + + return sorted_tuples[:num_to_return] From 0b367112eb7e385a541bcdc8b73c26283ad2cb3f Mon Sep 17 00:00:00 2001 From: DocEon Date: Fri, 4 Dec 2020 17:00:38 -0500 Subject: [PATCH 03/21] Linting upgrades! Fixing some linting. --- gender_analysis/analysis/gender_adjective.py | 8 ++++---- gender_analysis/analysis/gender_pos.py | 6 ++++-- gender_analysis/common.py | 9 +++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/gender_analysis/analysis/gender_adjective.py b/gender_analysis/analysis/gender_adjective.py index 8ba7e8a8..6375e000 100644 --- a/gender_analysis/analysis/gender_adjective.py +++ b/gender_analysis/analysis/gender_adjective.py @@ -1,6 +1,8 @@ from gender_analysis import common from gender_analysis.analysis import gender_pos +binary_group = common.BINARY_GROUP + def find_gender_adj(document, gender_to_find, word_window=5, genders_to_exclude=None): # pylint: disable=too-many-locals @@ -75,7 +77,7 @@ def find_female_adj(document): return find_gender_adj(document, common.FEMALE, genders_to_exclude=[common.MALE]) -def run_adj_analysis(corpus, gender_list=None): +def run_adj_analysis(corpus, gender_list=binary_group): """ Takes in a corpus of novels. Return a dictionary with each novel mapped to n dictionaries, @@ -96,8 +98,6 @@ def run_adj_analysis(corpus, gender_list=None): >>> tiny_results[[*tiny_results][0]]['Female']['invisible'] 3 """ - if gender_list is None: - gender_list = common.BINARY_GROUP results = {} @@ -107,7 +107,7 @@ def run_adj_analysis(corpus, gender_list=None): return results -def run_adj_analysis_doc(document, gender_list=common.BINARY_GROUP): +def run_adj_analysis_doc(document, gender_list=binary_group): """ Takes in a document and a list of genders to analyze, returns a dictionary with the find_gender_adj results for each gender in gender_list. diff --git a/gender_analysis/analysis/gender_pos.py b/gender_analysis/analysis/gender_pos.py index 3771212f..8c69fb3f 100644 --- a/gender_analysis/analysis/gender_pos.py +++ b/gender_analysis/analysis/gender_pos.py @@ -2,8 +2,10 @@ import nltk from gender_analysis import common + pos_dict = {'adj': common.ADJ_TAGS, 'adv': common.ADV_TAGS, 'proper_noun': common.PROPER_NOUN_TAGS, "verb": common.VERB_TAGS} +binary_group = common.BINARY_GROUP def find_gender_pos(document, pos_to_find, gender_to_find, word_window=5, genders_to_exclude=None): @@ -117,7 +119,7 @@ def find_female_pos(document, pos_to_find): return find_gender_pos(document, pos_to_find, common.FEMALE, genders_to_exclude=[common.MALE]) -def run_pos_analysis(corpus, pos_to_find, gender_list=common.BINARY_GROUP): +def run_pos_analysis(corpus, pos_to_find, gender_list=binary_group): """ Takes in a corpus of novels. Return a dictionary with each novel mapped to n dictionaries, @@ -148,7 +150,7 @@ def run_pos_analysis(corpus, pos_to_find, gender_list=common.BINARY_GROUP): return results -def run_pos_analysis_doc(document, pos_to_find, gender_list=common.BINARY_GROUP): +def run_pos_analysis_doc(document, pos_to_find, gender_list=binary_group): """ Takes in a document, a pos tag, and a list of genders to analyze, returns a dictionary with the find_gender_pos results for each gender in gender_list. diff --git a/gender_analysis/common.py b/gender_analysis/common.py index 5db3935f..8e1eb9c9 100644 --- a/gender_analysis/common.py +++ b/gender_analysis/common.py @@ -30,6 +30,11 @@ BINARY_GROUP = [FEMALE, MALE] TRINARY_GROUP = [FEMALE, MALE, NONBINARY] +ADJ_TAGS = ["JJ", "JJR", "JJS"] +ADV_TAGS = ["RB", "RBR", "RBS"] +PROPER_NOUN_TAGS = ["NNP", "NNPS"] +VERB_TAGS = ["VB", "VBD", "VBG", "VBN", "VBP", "VBZ"] + def load_csv_to_list(file_path): """ @@ -60,10 +65,6 @@ def load_csv_to_list(file_path): return result -ADJ_TAGS = ["JJ", "JJR", "JJS"] -ADV_TAGS = ["RB", "RBR", "RBS"] -PROPER_NOUN_TAGS = ["NNP", "NNPS"] -VERB_TAGS = ["VB","VBD","VBG", "VBN", "VBP", "VBZ"] def load_txt_to_string(file_path): """ From fdee52bd434eb0f6baf0adf9a03f86617c047957 Mon Sep 17 00:00:00 2001 From: DocEon Date: Fri, 4 Dec 2020 17:21:11 -0500 Subject: [PATCH 04/21] More, better linting. --- gender_analysis/analysis/gender_adjective.py | 10 ++++++++-- gender_analysis/analysis/gender_pos.py | 11 ++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/gender_analysis/analysis/gender_adjective.py b/gender_analysis/analysis/gender_adjective.py index 6375e000..10da9cf4 100644 --- a/gender_analysis/analysis/gender_adjective.py +++ b/gender_analysis/analysis/gender_adjective.py @@ -77,7 +77,7 @@ def find_female_adj(document): return find_gender_adj(document, common.FEMALE, genders_to_exclude=[common.MALE]) -def run_adj_analysis(corpus, gender_list=binary_group): +def run_adj_analysis(corpus, gender_list=None): """ Takes in a corpus of novels. Return a dictionary with each novel mapped to n dictionaries, @@ -99,6 +99,9 @@ def run_adj_analysis(corpus, gender_list=binary_group): 3 """ + if gender_list is None: + gender_list = common.BINARY_GROUP + results = {} for document in corpus: @@ -107,7 +110,7 @@ def run_adj_analysis(corpus, gender_list=binary_group): return results -def run_adj_analysis_doc(document, gender_list=binary_group): +def run_adj_analysis_doc(document, gender_list=None): """ Takes in a document and a list of genders to analyze, returns a dictionary with the find_gender_adj results for each gender in gender_list. @@ -127,6 +130,9 @@ def run_adj_analysis_doc(document, gender_list=binary_group): """ + if gender_list is None: + gender_list = common.BINARY_GROUP + return gender_pos.run_pos_analysis_doc(document, 'adj', gender_list) diff --git a/gender_analysis/analysis/gender_pos.py b/gender_analysis/analysis/gender_pos.py index 8c69fb3f..311815f0 100644 --- a/gender_analysis/analysis/gender_pos.py +++ b/gender_analysis/analysis/gender_pos.py @@ -5,7 +5,6 @@ pos_dict = {'adj': common.ADJ_TAGS, 'adv': common.ADV_TAGS, 'proper_noun': common.PROPER_NOUN_TAGS, "verb": common.VERB_TAGS} -binary_group = common.BINARY_GROUP def find_gender_pos(document, pos_to_find, gender_to_find, word_window=5, genders_to_exclude=None): @@ -119,7 +118,7 @@ def find_female_pos(document, pos_to_find): return find_gender_pos(document, pos_to_find, common.FEMALE, genders_to_exclude=[common.MALE]) -def run_pos_analysis(corpus, pos_to_find, gender_list=binary_group): +def run_pos_analysis(corpus, pos_to_find, gender_list=None): """ Takes in a corpus of novels. Return a dictionary with each novel mapped to n dictionaries, @@ -142,6 +141,9 @@ def run_pos_analysis(corpus, pos_to_find, gender_list=binary_group): 3 """ + if gender_list is None: + gender_list = common.BINARY_GROUP + results = {} for document in corpus: @@ -150,7 +152,7 @@ def run_pos_analysis(corpus, pos_to_find, gender_list=binary_group): return results -def run_pos_analysis_doc(document, pos_to_find, gender_list=binary_group): +def run_pos_analysis_doc(document, pos_to_find, gender_list=None): """ Takes in a document, a pos tag, and a list of genders to analyze, returns a dictionary with the find_gender_pos results for each gender in gender_list. @@ -171,6 +173,9 @@ def run_pos_analysis_doc(document, pos_to_find, gender_list=binary_group): """ + if gender_list is None: + gender_list = common.BINARY_GROUP + results = {} for gender in gender_list: From 262cb8b76116f6d2ecfc083b6e555214ef439145 Mon Sep 17 00:00:00 2001 From: Ken Alba Date: Tue, 15 Dec 2020 13:58:25 -0500 Subject: [PATCH 05/21] Changing how importing stuff works Importing some elements of common directly. --- gender_analysis/analysis/gender_pos.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gender_analysis/analysis/gender_pos.py b/gender_analysis/analysis/gender_pos.py index 311815f0..00422f55 100644 --- a/gender_analysis/analysis/gender_pos.py +++ b/gender_analysis/analysis/gender_pos.py @@ -1,10 +1,13 @@ from more_itertools import windowed import nltk +from gender_analysis.common import ADJ_TAGS, ADV_TAGS, PROPER_NOUN_TAGS, VERB_TAGS from gender_analysis import common -pos_dict = {'adj': common.ADJ_TAGS, 'adv': common.ADV_TAGS, - 'proper_noun': common.PROPER_NOUN_TAGS, "verb": common.VERB_TAGS} +# note: the POS tagger seems pretty dreadful at detecting proper nouns. + +pos_dict = {'adj': ADJ_TAGS, 'adv': ADV_TAGS, + 'proper_noun': PROPER_NOUN_TAGS, "verb": VERB_TAGS} def find_gender_pos(document, pos_to_find, gender_to_find, word_window=5, genders_to_exclude=None): From 042e64fdadb721b6d906949b7f083e595121b8e9 Mon Sep 17 00:00:00 2001 From: Ken Alba Date: Sat, 26 Dec 2020 13:08:42 -0500 Subject: [PATCH 06/21] Added difference_pos_freq, pos_analysis, and display functions. --- gender_analysis/analysis/gender_pos.py | 80 ++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/gender_analysis/analysis/gender_pos.py b/gender_analysis/analysis/gender_pos.py index 00422f55..6cea12d5 100644 --- a/gender_analysis/analysis/gender_pos.py +++ b/gender_analysis/analysis/gender_pos.py @@ -525,6 +525,64 @@ def difference_pos(gender_pos_dict, num_to_return=10): return difference_dict +def difference_pos_freq(gender_pos_dict, num_to_return=10): + """ + Given result dictionaries from find_gender_pos, + returns a dictionary with num_to_return pos_words + most strongly associated with each gender, normalized by gender frequency. + + This works especially well with merged_results from a merge_raw_results function, + but can also be used on individual locations from individual documents, result_by_location, + or individual date ranges from result_by_date_range. + + :param gender_pos_dict: a dict of dicts in the form {word:count}, + :param num_to_return: the number of top words to return + :return: a dict of dicts in the form of {"gender":{list of top words w/ differential counts. + + """ + + difference_dict = {} + + for gender in gender_pos_dict: + temp_dict = gender_pos_dict.copy() + current_gender_dict = temp_dict.pop(gender) + current_difference = {} + + current_gender_total_pos = 0 + + for word, count in current_gender_dict.items(): + current_gender_total_pos += count + + for word, count in current_gender_dict.items(): + current_difference[word] = count / current_gender_total_pos + + for other_gender in temp_dict.keys(): + other_gender_dict = temp_dict[other_gender] + + other_gender_total_pos = 0 + + for word, count in other_gender_dict.items(): + other_gender_total_pos += count + + for word, count in other_gender_dict.items(): + if word in current_difference.keys(): + current_difference[word] -= count / other_gender_total_pos + + stopwordless_words = [ + (key, round(current_difference[key]*100, 3)) + for key in current_difference + if key not in common.SWORDS_ENG + ] + + current_sorted_tuples = sorted( + stopwordless_words, key=lambda sort_word: sort_word[1], reverse=True + ) + + difference_dict[gender] = current_sorted_tuples[:num_to_return] + + return difference_dict + + def display_gender_pos(result_dict, num_to_return=10, remove_stopwords=True): """ takes the results of find_gender_pos and prints out to the user the top number_to_return @@ -545,3 +603,25 @@ def display_gender_pos(result_dict, num_to_return=10, remove_stopwords=True): sorted_tuples = sorted(result_tup_list, key=lambda word: word[1], reverse=True) return sorted_tuples[:num_to_return] + + +def pos_analysis_on_corpus(corpus, pos_list, genders): + result_dict = {} + + for pos in pos_list: + print("Analyzing ",pos) + result_dict[pos] = {} + result_dict[pos]['raw'] = run_pos_analysis(corpus, pos, genders) + result_dict[pos]['merged'] = merge_raw_results(result_dict[pos]['raw']) + result_dict[pos]['diff'] = difference_pos(result_dict[pos]['merged']) + + return result_dict + + +def display_pos_analysis(pos_analysis_results): + for pos in pos_analysis_results.keys(): + print(pos) + + for gender in pos_analysis_results[pos]['diff']: + print("--", gender) + print(pos_analysis_results[pos]['diff'][gender]) From 15d20eb500fc3f61570bc75c01e3504b6d34186e Mon Sep 17 00:00:00 2001 From: Ken Alba Date: Sun, 27 Dec 2020 14:52:40 -0500 Subject: [PATCH 07/21] Adding documentation, handling absent text files. Adding documentation. I also added a few lines to handle the situation where metadata points to a text file that doesn't exist. In that case, it returns an empty string. --- gender_analysis/analysis/gender_pos.py | 19 ++++++++++++++++++- gender_analysis/common.py | 12 +++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/gender_analysis/analysis/gender_pos.py b/gender_analysis/analysis/gender_pos.py index 6cea12d5..950c525c 100644 --- a/gender_analysis/analysis/gender_pos.py +++ b/gender_analysis/analysis/gender_pos.py @@ -605,7 +605,17 @@ def display_gender_pos(result_dict, num_to_return=10, remove_stopwords=True): return sorted_tuples[:num_to_return] -def pos_analysis_on_corpus(corpus, pos_list, genders): +def pos_analysis_on_corpus(corpus, pos_list, genders, display = False): + """ + Performs an overall part-of-speech analysis on a full corpus, + given a list of parts of speech to search for and a list of genders. + + :param corpus: a Corpus of Documents. + :param pos_list: a list of part-of-speech tags ('adj', 'adv', 'verb') + :param genders: a list of Gender objects. + :param display: whether or not to print the results prettily. + :return: a dictionary of part-of-speech results. + """ result_dict = {} for pos in pos_list: @@ -615,10 +625,17 @@ def pos_analysis_on_corpus(corpus, pos_list, genders): result_dict[pos]['merged'] = merge_raw_results(result_dict[pos]['raw']) result_dict[pos]['diff'] = difference_pos(result_dict[pos]['merged']) + if display: + display_pos_analysis(result_dict) + return result_dict def display_pos_analysis(pos_analysis_results): + """ + Prints out the results of pos_analysis_on_corpus prettily. + + """ for pos in pos_analysis_results.keys(): print(pos) diff --git a/gender_analysis/common.py b/gender_analysis/common.py index 8e1eb9c9..069fdf03 100644 --- a/gender_analysis/common.py +++ b/gender_analysis/common.py @@ -70,6 +70,8 @@ def load_txt_to_string(file_path): """ Loads a txt file and returns a str representation of it. + If the text file doesn't exist, prints an error and returns "". + :param file_path: str or Path object :return: The file's text as a string @@ -89,8 +91,16 @@ def load_txt_to_string(file_path): if file_type != '.txt': raise Exception('Cannot load if current file type is not .txt') - with open(file_path, encoding='utf-8') as txt_file: + try: + txt_file = open(file_path, encoding="utf-8") result = txt_file.read() + txt_file.close() + except: + print("No file found at ", file_path) + result = "" + +# with open(file_path, encoding='utf-8') as txt_file: +# result = txt_file.read() return result From 441017c3596c63de5fd9692d0f8660447bd6fdad Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Wed, 30 Dec 2020 21:07:21 -0500 Subject: [PATCH 08/21] initialized character.py added character.py and started the core functions as _init_ get_overall_popularity get_stage_popularity helper functions for stage_popularity [started]: get char adjectives --- gender_analysis/character.py | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 gender_analysis/character.py diff --git a/gender_analysis/character.py b/gender_analysis/character.py new file mode 100644 index 00000000..3b131953 --- /dev/null +++ b/gender_analysis/character.py @@ -0,0 +1,96 @@ +from gender_analysis import document +class Character: + """ + Defines a character that will be operated on in analysis functions + """ + + def __init__(self, name, document, gender=None,nicknames=[]): #maybe need to try/except? + """Initializes a character object which is associated with a document object + :param name: a string of the name of the character + :param document: a document object where the character exists + :param gender: a gender object which is optional + :param nicknames: a list of strings of other references of that character, optional""" + self.name = name + self.document = document + self.gender = gender + self.nicknames = nicknames + + def __str__(self): + character = self.name + ' in ' + str(self.document) + return character + + def __repr__(self): + """ + Overrides the built-in __repr__ method + Returns the object type (character) and then the document name + in <>. + + :return: string + # these need to change! + >>> from gender_analysis import document + >>> from pathlib import Path + >>> from gender_analysis import common + >>> document_metadata = {'author': 'Austen, Jane', 'title': 'Persuasion', 'date': '1818', + ... 'filename': 'austen_persuasion.txt', + ... 'filepath': Path(common.TEST_DATA_PATH, 'sample_novels', + ... 'texts', 'austen_persuasion.txt')} + >>> austen = document.Document(document_metadata) + >>> repr(austen) + '' + """ + char_name = self.name + return f'' + + def get_overall_popularity(self): + """return the count of all occurrences of the character name and nicknames throughout the + document + """ + all_text = self.document.get_tokenized_text() + names = [self.name] + self.nicknames + popularity = 0 + for t in all_text: + if t in names: + popularity += 1 + return popularity + + def get_overall_popularity(self,document): + """return the count of all occurrences of the character name and nicknames throughout the + document + gives more flexibility compared with the other get_overall_popularity func to customize + the document we pass in + :param document: a list of tokenized text""" + # all_text = document.get_tokenized_text() this should be ideal but doesn't work with + # current settings + names = [self.name] + self.nicknames + popularity = 0 + for t in document: + if t in names: + popularity += 1 + return popularity + + def get_staged_popularity(self,stage=10): # future work: make vis! + """return a list of length stage of the popularity of the character in that stage + return: a list of counts of length stage, similar to get_overall_popularity""" + all_text = self.document.get_tokenized_text() + splitted = self.split_list(all_text,num=stage) #not sure if I could do it with static method + staged = [] + for t in splitted: + staged.append(self.get_overall_popularity(splitted)) + return staged + + @staticmethod + def split_list(seq,num=10): + """helper function to split a list into num of sublist of almost equal length + :param seq: a list of word tokens + :param num: the num of stages to divide the tokens + return: a list of list of divided list""" + size = len(seq) // num + divided = [seq[i:i + size] for i in range(0, len(seq), size)] + if len(divided) > num: + divided[-2] = divided[-2] + divided[-1] + divided.pop() + return divided + + def get_char_adjectives(self): # don't know if this should be put to the analysis folder + name = self.name + From 719cf2e46bbbe18d672799df646a4b7e3a2b2dc5 Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Wed, 30 Dec 2020 22:49:22 -0500 Subject: [PATCH 09/21] added get_char_list function in document.py get_char_list will return a sorted list of char names and popularity for a given document [to-do]: more robust, updatable by users later --- gender_analysis/character.py | 2 +- gender_analysis/document.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index 3b131953..3e65a6fe 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -93,4 +93,4 @@ def split_list(seq,num=10): def get_char_adjectives(self): # don't know if this should be put to the analysis folder name = self.name - + diff --git a/gender_analysis/document.py b/gender_analysis/document.py index 20c9d1d1..c352ed97 100644 --- a/gender_analysis/document.py +++ b/gender_analysis/document.py @@ -6,6 +6,8 @@ from gutenberg_cleaner import simple_cleaner from more_itertools import windowed import nltk +from nltk.tokenize import word_tokenize +from nltk.tag import pos_tag from gender_analysis import common @@ -633,3 +635,30 @@ def update_metadata(self, new_metadata): f" not '{new_metadata['date']}'" ) from err setattr(self, key, new_metadata[key]) + + def get_char_list(self): + '''given a document object, find a list of characters with their frequency in the novels + input: a document object + output: a list of tuples with character names in descending sorted order that occurs + more than 10 times in the document''' + labels_char = [] + labels = 'FACILITY,GPE,GSP,LOCATION,ORGANIZATION,PERSON' #this could be changed later + document = self._load_document_text() + for sent in nltk.sent_tokenize(document): + for chunk in nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize(sent))): + if hasattr(chunk, 'label'): + # print(type(chunk.label()), chunk.label(), ' '.join(c[0] for c in chunk)) + labels_char.append((chunk.label(), ' '.join(c[0] for c in chunk))) + char_dict = {lab: {} for lab in labels.split(',')} + for ch in labels_char: + cat = char_dict[ch[0]] + cat[ch[1]] = cat.get(ch[1], 0) + 1 + people = char_dict['PERSON'] + people_sorted = [(p, people[p]) for p in people] + people_sorted = sorted(people_sorted, key=lambda p: p[1], reverse=True) + cutoff = len(people_sorted) # index for cutoff threshold of char names, customizable later? + for i in range(len(people_sorted)): + if people_sorted[i][1] < 10: + cutoff = i + break + return people_sorted[:cutoff] From eb4119ad47d3ebfd1dffaee9512eea2def0bdc01 Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Mon, 4 Jan 2021 23:27:56 -0500 Subject: [PATCH 10/21] refined get_char_list and integrated gender identification into Character - refined get_char_list through adding creating object functionality - integrated get_char_gender with a self-trained classifier in Character class --- gender_analysis/analysis/gender_pos.py | 6 +- gender_analysis/character.py | 77 +++++++++++++++++++++++-- gender_analysis/document.py | 15 +++++ gender_analysis/gender_classifier.sav | Bin 0 -> 3220469 bytes 4 files changed, 90 insertions(+), 8 deletions(-) create mode 100644 gender_analysis/gender_classifier.sav diff --git a/gender_analysis/analysis/gender_pos.py b/gender_analysis/analysis/gender_pos.py index 950c525c..0635e3d5 100644 --- a/gender_analysis/analysis/gender_pos.py +++ b/gender_analysis/analysis/gender_pos.py @@ -42,9 +42,9 @@ def find_gender_pos(document, pos_to_find, gender_to_find, word_window=5, gender pos_tags = pos_dict[pos_to_find] else: return "Invalid part of speech" - - identifiers_to_find = gender_to_find.identifiers - + # rewrite based on character class + identifiers_to_find = gender_to_find.identifiers # identifiers: names and nicknames + # this exclude section isn't necessary if genders_to_exclude is None: genders_to_exclude = list() diff --git a/gender_analysis/character.py b/gender_analysis/character.py index 3e65a6fe..b41d5bc4 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -1,17 +1,30 @@ from gender_analysis import document +import pickle +import pandas as pd +import sklearn +import numpy as np +# Libraries for building classifiers - do I need to import those? +from sklearn.model_selection import train_test_split +from sklearn.metrics import confusion_matrix, classification_report +from sklearn.linear_model import LogisticRegression +from sklearn.svm import SVC + +# load SVM classifier for gender detection +loaded_model = pickle.load(open('gender_classifier.sav', 'rb')) + class Character: """ Defines a character that will be operated on in analysis functions """ - def __init__(self, name, document, gender=None,nicknames=[]): #maybe need to try/except? + def __init__(self, name, document, gender=None, nicknames=[]): # maybe need to try/except? """Initializes a character object which is associated with a document object :param name: a string of the name of the character :param document: a document object where the character exists :param gender: a gender object which is optional :param nicknames: a list of strings of other references of that character, optional""" self.name = name - self.document = document + self.document = document # change to an array of documents self.gender = gender self.nicknames = nicknames @@ -53,7 +66,7 @@ def get_overall_popularity(self): popularity += 1 return popularity - def get_overall_popularity(self,document): + def get_overall_popularity(self, document): """return the count of all occurrences of the character name and nicknames throughout the document gives more flexibility compared with the other get_overall_popularity func to customize @@ -68,7 +81,7 @@ def get_overall_popularity(self,document): popularity += 1 return popularity - def get_staged_popularity(self,stage=10): # future work: make vis! + def get_staged_popularity(self, stage=10): # future work: make vis! """return a list of length stage of the popularity of the character in that stage return: a list of counts of length stage, similar to get_overall_popularity""" all_text = self.document.get_tokenized_text() @@ -79,7 +92,7 @@ def get_staged_popularity(self,stage=10): # future work: make vis! return staged @staticmethod - def split_list(seq,num=10): + def split_list(seq, num=10): """helper function to split a list into num of sublist of almost equal length :param seq: a list of word tokens :param num: the num of stages to divide the tokens @@ -91,6 +104,60 @@ def split_list(seq,num=10): divided.pop() return divided + @staticmethod + def letter_class(name): + """helper function for get_char_gender + param: a Character object + output: a tuple of 2 integers - vowel_counter and consonant_counter - for the char name""" + name_list = [x for x in name] + vowel_counter = 0 + consonent_counter = 0 + for letter in name_list: + if letter in ['a', 'e', 'i', 'o', 'u']: + vowel_counter += 1 + else: + consonent_counter += 1 + + return vowel_counter, consonent_counter + + @staticmethod + def ascii_mean(name): + """helper function for get_char_gender + param: a char object + output: a float value of the ascii mean for the char name""" + ascii_list = [ord(x) for x in name] + return np.array(ascii_list).mean() + + @property + def get_char_gender(self): + """Use ML model to predict the gender of a character based on name + return: a string indicating the gender of the character (i.e. 'Female'). If gender has + been defined, then return the original gender. + Update Character object with a gender""" + if self.gender: + return self.gender + name_list = [self.name] + ndf = pd.DataFrame([], columns=['name', 'ascii_value', 'name_len', + 'num_vowels', 'num_consonents', 'last_letter_vowel', + ]) + ndf['name'] = name_list + ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) + ndf['name_len'] = ndf['name'].apply(lambda x: len(x)) + ndf['num_vowels'] = ndf['name'].apply(lambda x: self.letter_class(x)[0]) + ndf['num_consonents'] = ndf['name'].apply(lambda x: self.letter_class(x)[1]) + ndf['last_letter_vowel'] = ndf['name'].apply( + lambda x: 1 if x[-1] in ['a', 'e', 'i', 'o', 'u'] else 0) + ndf['ends_with_a'] = ndf['name'].apply(lambda x: 1 if x[-1] == 'a' else 0) + ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) + svc_op = loaded_model.predict(ndf.iloc[:, 1:].values) + gender = svc_op[0] + if gender == 'F': # currently only supports binary classes 'F' or 'M', need to add others + self.gender = 'Female' + else: + self.gender = 'Male' + return gender + def get_char_adjectives(self): # don't know if this should be put to the analysis folder name = self.name + pass diff --git a/gender_analysis/document.py b/gender_analysis/document.py index c352ed97..a1b4e226 100644 --- a/gender_analysis/document.py +++ b/gender_analysis/document.py @@ -10,6 +10,8 @@ from nltk.tag import pos_tag from gender_analysis import common +from gender_analysis import character +from gender_analysis.character import Character class Document: @@ -662,3 +664,16 @@ def get_char_list(self): cutoff = i break return people_sorted[:cutoff] + + def create_char_objects(self, char_list): + """a helper function used in joint with the above get_char_list function + given a list of tuples of char names and frequency in the document, create + a list of char objects using ML gender identification models""" + to_return = [] + for char in char_list: + name = char[0] + # gender identification + new_char = Character(name) + to_return.append(new_char) + + return to_return diff --git a/gender_analysis/gender_classifier.sav b/gender_analysis/gender_classifier.sav new file mode 100644 index 0000000000000000000000000000000000000000..aff734abbaf7a098291737ca2134bdab1b8999a6 GIT binary patch literal 3220469 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%0D39$s1a_47yT`BnY9 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 (61f+s~x`=hTnd=;gmNw>-YEhzTxL|yu&Mt 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

uy>#rS@LyT)kMQT<;YWYY zhb!qx`OxRL>oX(&r6OM5L;pA*)F|m;oG4>_b^bN+`(nC2@U?b);loew`k z!tB50a~m%>%HS9N<_K@S`Rh6Ulb`UqK8LDu0^YY51JEwuT0eXl|JmR1rH6+f{J{Tn z;_c}Vf0pNGwxcWbtLE{NZ|J5Byyn~C`Fr3k|IrUW@n${B|8)M+$Lsg+yI4onL$j{hlwy0ItjNRslcG2bm5r$6*8uYZWo`|}2h_ruH&#Ebrn zSHm$V?FXS-QR)V z+q<6S>p%4G@i<*ygq@aPY?^793F_`p%pzOE;q-z~<#cKF)=*FL{T`&yo&XItzY zc(XsV*Gm=eWBAAMs{ca1jq~4*cksL3CXVn^{I7!V#S8x8w&sUFMi1*Z`k^$}_OJGQ z>`}3I(2t*Oe$@Ll$sh6)ys`P~G5qKUN9jnb`2K<(__KbyzJWi)i+*qK9V|b;2S4rb zlk+3^$N8Xqn_W+y!H-^a;7{mL{-n>_vK_pKYxh%z>zTl>yIw(m)t{T>ThE{1Uq0T! zm&aEv)B2Y2qQBsmKVQI4=PQQ5*TAbbT%Vw?w)62KpZj_gZ@NB-4$6k#^WWnu*7N`W z@x9Xh{moI+KYGz$eYq^O{{KV#C!g`h$HN;a->$X!13t&A{p;J{;RlBv^ws$)9lzL~ z^~|0>YCicm@j74i3q2mLtvAyB_kO%;c?^FqABd;+s7bes=y}e*OXdKHi5074-Y|8V9-pzD`fz zRokxLAGLoyK@a(Z4$AP;dICSzFa9^d!;e4s-{?P|#HaNSyp)Z8$G6*wx6!j%uSfCT zS&z5*e?8vjH}K4F`03-}0oeIMJ0JG((*FQ{#tUC4!%wZR((||QckpSw0UzVx@~v{# z>Vdz5->i?<)*CH9x+z1C{JFLsua;^34=?(OzyAL3ucLqEdUfLXGCSYe{6oB+U&S0D zj_^k{A20HgIKdNdE#048F(&Zz2cGjm<~O#(OI`$CMc{M;7Xf`0GE8|Zr7XTjqq{28zL;TOpt@c7~SoL`j*{maiApochuUikET z^nLvD^IGtB{5)I#Jb?D!=lHoRrWF3{kMI-szbt>?$A99@j(F{@}mdh-tn4#CI(eq{%G^tdOgD5T#r{iJZ68yPvW2qe`eRW>y8)UkL5pl#`ClI-@hKONRGg7 z>-Z2S`4D<+{S2P%?2ohyf0nOb!I$$>^ZCEQc@S8!Tpc$@2YK>nHmarMb3$mHtQQAzpBlp-0E} z&x2<^K{xo|SM5FgVSMnP{sM33Yw+U>_{_gG602@lQNYtK-F|8LzP(b@Up3qL=uH!{u1T&zIrv z>sLPCM-Tpkr@w~(74U2y=s86{{OG0(e&x^b`vwEA+6j7me2O75|MLFZk9XbvMf_D) zY4x~{s;lBI3+Z`0@+bIhyvS$#?CV!g=jd69PtQN2AAduS_&r|u!Ba-Os-3Ravu^)t z^c?g20KTw2m&@xz+U0n4ym+u)zsBp?Xnez;<@FW1+1~;$Jx|u_QOgtZ=Pwjvf|uus zNBoQ{CHi{5=gxNe34Xg?gg>p{8LyTn;8*5by8nxA`fKz|T#vHjBmTqJk5}XS6ZC^8 z-_S+-s_QNA_`!DYpN~Y$JnFlbh0Ry^!*=-K54@f4 zfcNc{A6rylwm5dXMn}A9}QYNY8VE_jsbgzIIH!@Zk@-4&j^G`%@?I z(?9%efA#y{zDvHben3aYOW8!eX}(I=OW~(%;ypt@_dC!*J~eoc7aZ|se&yTe;Kv`v zE8}&2;9KNB{($%PF38Tu@ssW7L7&6z_nZ9r|1n;Ert>d!QwG0kzCMH>{T;mLr~6%u zG3(d+{(NK0*Z$A`g`Z=7jn_9?KL`5H!J`-dvmSf?89n3iom~&epI6}DRv*#t@teK8 zJ|sWE69*+gz7GoimHMCH5B=i{W$>#u@p~NhJU{&Cfj8?H{{?v8UaA7h`ft78_W}GF z=d+!kuE#Gwk2KJK*6MHbjsJNb68y`=S4)rI<5j+0LqB-*P&&L;;CH^tPu?~7iSteA zxiiv3y!HEMegM9g4}q8e6WJYKhN{U?9_)BhTHu2gyNY$Cr5Vh4F}Zb-YXK z6Y!M8U)ycb@BS6rf*x8clrJl_{^_(UuC`F+iSe|Bvib3 z{`c_oSD$y9c;4Ic0X_JF4tOc+`uy>F{}seJ`GbD=yuXNbU-RoNWBly?yZrnK@uCNP zRn}P>FF4A;%g+}r9)9A9aF?%t!k6*0`>*^-&qtvfe)_w(ZR_ne|NHtC$y4IpmKs?t z*?;Q0m&NRSvV1=dJ;Z^2e(x1M?C;?7{wx2#PyVwVUfKn}B1!oG4nHGa^OO8{KZ+qT zUhkiyA3Xh|FZh)Y_gg&rDFd(CX^U_5(_fuW(&s_I!yov=@fx3BNdMiDo<{%sz;8?4 zQcL^_{IWmj&;Dz?Ca&*k{{L^-Ux=4+q6|H{KJXdx!M9ia_}Spo^BDM@_3QlQWB4=9 zfAuuXhtMN`9>9;^=<#^G!7`pWDQRE#-*o+uI9q)EJ&W}DLB==hS-w6AFa5auT502j zKjW2e6VC_Q`UHN)tFOn-PuJrWz{KyN2w&jGKgOpM@5J+j%7;7bFXT_(Pt()R&*1T? z4iiQCepK+@A4n^Y;Ri>&ZQ1)hV%p(X&@azF=%%Ef+U^+t-S1MjP}YCz{iY9s@8wVM zuUr2(y;V-&-`4)oMH%?H^Xt0aNb?DPW`4W>i=J`3Qs(PVAO9wf(63sGmvLfz!%xNg zP4XE%=m#JCT5o&^yl=01=qK=20}nsA?2jE!k1F3dUOj*Q5AbtW+o7NSOvV0n_WFSG z?I-MC<9Kax&M)wz6K`5y!A}|ds(Jo9Uok|++j@`uT)F;9>lyMb^V|N#c;OFt*LN6z>t}qy zXFqj3dJg{>Z|4i(>ECr%pBRt&{VEg3JNcP@-v|BPkH@R^=fv~&%jY|N{^j)>c>Iib z_4`w=lMlP<2RQt4`5U`F2Hv;Vb~#=07%%;w#vkIvfA`A+*8H6AkM!|sxW&(vdfpFytVjGO>-F3Ep~d(8pFLh!zM`~*+_)OKHif7|eSf6>9d_7?fz`CHr3Przr_Z?@h>&v<-=zd8E6 zcEl_EllA;M|4n}4V~$sm`}z%k=-=CgLHpY5_2ir68~(scc}O3>H;o?GT?~o7-uW!N z-rhS<{{JEQ!2Sh}b`H17#Qtjy7%$JqV(({uTfeQxi^u0f^utRW;g9mi@4th?PjHl` za^vx~e6(-y>G=@&8Slz_S=j#4<^y>83%qKcpUzhd(ZQeLC;q_iPs+!kw(j<$Wxw~6(q`EyixTfUASzaNc1Dt|o% z4-S4W9jeL+{-Xz8%78CFPc`u0*Bkhc4*CmzTW_NWKfz}`%C~g90Ppcf2deRV0r-jj ztVhrPyo;aU(UJM>d=vd+{Ot49>--^}-tUv*4{-!u_7wIP{AYWPSNQMX&$j6Q4ZO6s zclWOvuZi`^?D%T^c?zP%VD{RF>iK3|RZ-{tdJ{OS1V{ODnPGG6*$I;wiX6E9`xU%s9Re~#DI|M=tm z*ZwlU^#mS0#0x+DRbA&JeCSuak6S!CC!u)%4|4<7vi*Zgx0e&;KO z=-_X*{OG0(e>DGp7Jl*#Jw6^TXgQzZrF6Je-a?P-Efqmo|EwkNMRi-5-b7 z+q)pkfAkYCerA7!zfb;*@milud_RNu?~eEze_p{K*IRJT1FaS5N#8$Aygh&5AIGb1 zPQW`~vF;g%Du%-IbG$z;Uk``ZS4&pCa52ORAjZj}?(C%(Pd27ITi&x74+$BXSA zzjrV@|EOW|2VKNLe?0$BK70RFKkZyj^Ldl;_#Uo@SwFzb_=TS3>(y<(1zyTLf6xOz zCHQ*(^d|9+@O3@>pdByt;Ai-=e7}SKGhY7uKKbACr{NzyuNZjMj@RqAmf*L={zo^Z zy}N%^yx&0oIDc&YvmU>E{)L~6U+B?%IB|Y4dpt5d=qG>4v+R$Q74og;5AoDEz6d}5 z!%zFb+w)Q2+wJHH{POX-pU=z3BY4pj{F-mm^GNWcFUD)x&puxI?~tE9{>2#475u7w z2Y<$Xia&jR3OybE^OhgH>pK)QyFaGmHGbp&A$`6-GQg+LYrvbwOFb3hCI9h-c8#9b z$bWDHJ%0ScKk!+P#_Iukz~evtg`Rcu5B>4|uH>8dUyL!wyL>$mJ>K30N&mfe{owuA zejL8B^I7!Z|A7C^_5LiMFL<0)kL$Dbz}=P~JZ0#&@gg4>FL0C%zduj1tNk;s_!)T9 zkDhir?E)`lp3msPPw=5%wc+*K;J5D|X1sRAnBYa9y}N(a{fqSZEPSC|;O%$^|5*R* z{-U0y{lWjS9_dftH`Vuld3?d+Q~0BJueEv@pX~qPdX??qv;W#3hu=RFdZa&nUv!^e zEqy*5@9)B&67RNH&-g+-_U`_5cKstiZ^AzwU-jhcAMog*3_Yq1kJo|M`r%#jAAcC9 z%rAWU{&{e;V?1go$9nAih5Q+xe~EvKe*D8v zO7wI7h@Kw4Mt@nXyMG;c)y`Wz_~ZT_Hh7hI@drHm0)lQCz zy|WTu(9irs{~iAK&`*5mrhVwK^$Gkwo>gDQtEG=uPe1zjel7I$@S(@%2k_p1)k7SC zUq1fgf5xvnUIf3^|FfSb+Tdp|-tfnc*PJg9FWWog`w)K^UvQMP@BO|Q{?K2oeV zf9l({7#?2&zMRkK&+*F7`{?obs-BED{?r z`}rC;wxi4CSiYtC5FBOTl@AX_`suH>OY32DQ3hWAydYluVLS1L9-D8`vofEbgNL8| zM^Et2=D+Yyj*2nBkB^kZQ~Q~?9%3!<2S4B?4*2Wu=T3Y+%Z|VBkNvdgsfc%^r>-~d zwEm-?vifpan4jpuPvWD$z^iuB^5aWqd}s67`QbxP)-OFi|D(UvL;K$Mp|PF*BHrcu zBk0I@Yl)xRV*i8Be#-yhc%iQzzwVCw5B%(U=|BJAe|7fc$K>0t>L*V02frO(T0O)| zX)f$v?R*D3e2iDd>-_O;{2b%$d=@#W7U#?8g%AEi_~v|4|Bd!~7kWJY!w%B^g$_#e)n@7QAZ+*eoqzUtt?MW0`)bfZ z9Q0Sad4+t~7JCPL_J4Uj18>GJ=Rf#%{Oae$zR7su2YSG}J@$LJKU$AhOP@boZxeU; zqxoU@d06nZ^n4rpDSy)X$K$NJ;9q;cAn>-{W_j@uh`TO~x`D)_%VY^;|9{g$f(N|@il5ajA)N#uC)uO=f+bf=N2!83m zNxUohkI^&EH#=T{$A5GXcj(daXyW^tEMEB04=-i#3qRqf9gjx-H2nVk-aS215ijQ> z{(!1>M!Y@$8$BEH0srxZaR|I!pNGGfpN*b$KZv}e47|*Lk_p5|M06HoB38?V4i z&wb)uIbObg0FRy=uX;Mif8SoJf?9_Ev-62~eEs8oR9+wF+FdQq&_n*9ixNHjUPC)x zZ1?`0e|i2#2mB7V@1q!gz98^+{>6CFKYB91#`iJ!@puWJ&d1SD8G1Bc6VLkz|0a5N z#hBoAecpleJOl6BYdhj4e(wK*@9n>Vw|K$#_+3t|fQO&_XFLLL{(v9zYdtV=yjD*> zAHt8Hl%YqpiRTHW-_J*O#hCCt$1DBm`U8H`&RG1__h0-(H+b6D7H{Au`!D#cM=gAR zAN!;E_Se|o(bFGa@gIXn54tHszw#~3xA22^XY6`idVYX-DT80%hvUzq?us#iBmUr5 z?WFY+Jste{QRQVj{FI@`?hoP*euB&KE+6k&eDF(uK@WUvr(F~8(>7jko&4E=@5LMZ zHon9Q9zW3+c-5YQCx5`xo_K1z6Yyg{b-YNwmjqu&&t}rk$0p`~n-9^$_@e`VLXYxo_V-3TAI9UQ>s=F{pR(tB z@gM#8>HWn3>}%)Xd;TB7H-0{XFZhxDv6ke|I3MKy#Pdj+AJXS*(9?)gF{PEHQ zw&M%Y%M{>H8^!B0MbBYymWr_i$H+JMJNSusEg#x=(UbMt_a%bg6^jfUdcuD@e`)Jfo;8)G(EAaT3 z_1N{mHePrsgWuLy>-F35i~BpySBw!|!7u;cCLhLlYl(jHpExOle|bK^&y4@4|MKtt z_}xDRKfh-V4u6AR`S2frCx3`DYyO!yKUKUx zM1OC**dJ;?6VInf|HSokJD%b{elotUF9P1zULl{!AAITHhv#ceygpv|&-M<#uTRi} ze%gn8<@3bzY#_9v@9<`S)}8NE-Is;ttB)|g z<9txQrR$Bvm-Q^q|BM%LgdTey{;1eH@Hwu&Pk$G;?fxv|HP*j8Kck2KLXXW4@H4*P z^ZaA;`C9$;{B+{`pOw#d887tUN7k=MPFsAdpZ2}qe_?x$S9%^1FM3-3@YC+sqX)hH z@m;)-U`E{OS40c+~3^e!Z9DDg53( z4BFSu7%%+6f7%6nc79OHbUuY%`U!s3PSJy2aFl^p{!Dydhh6`~PvY(8kM)Ee{OIeq z`3io<6FluhziQ_#KYF}8Y~aVoU9k=D(%&I`^9l59D;^)gqi_EE2Gx@v@8Cl>{e+(7 z^EGh95qRTAKjSsP`}4QN3om68Z~A;qt3U8I|1)0W{IvOD{rQOT6YrQ`{-phvIPod; zYd)E{-X;94k)D=+IX*|_}P5Z?}`5b{JUaI@VZ~o!M=8k|M-I+vzJIvSzwY=O{8t*U;rUniquOhX?~P(x@O@kVw|C~qS zj<`er^7#=s`U$-HD2x~R37#^PSPlK?1?T#_!R+ztO2><#{)kue&&2nu*zpwq$xr5o z9PjM>ulwo$5q|E983!-p<#uj#zy8m)cyP1}ylQ9Q8DI3%F7S4}y^WXg&3Lu+>vizs zcSp|`;qT=S?bm*OB=EMr9p!W2wZGrw`aE&^_7cwgOl{)x1;)SLf5YPsexi%=XSD3A z$^ZWN>i*O_=-HKh^NoMsKK*(8E1$10mi_C0{eS<*@BCZ;Cj8_31!{Q=p8os#b^QGj z{&;>B@pv4eU-|H;`1UTp8lIAG>>u#w@v`f;;Nf>%?T7Zg>$l+P zPb&1H{J94|IOnVUf!BOBvHr2^tN1yd57pDB7%%pB#@EN&1uf@4_#E%@^*!Rwcy)A) z9{LAQ>3(&7FO2OS{uB5aU-ZN8;aX+Oc%cV;=2t$y1pgSX@%q(vywH*P<$rpY7(JNDn6 zmxF&-j0oMdr@z|GTj22zeAZ+8J9zl|<7GWe;>-GYm)AeU$9UH`FAL4L6VE%TrLSi= zKf)Kv;MaODeP0~@WW2Q`Uik6f=R5B}{yzY}(*Lyn!52#Ws-M@s*7CDG>(~9wPcpu{ zVnX2sPy71$;^BM}_~qw$27XS=x69`*1O9i2ciY5E+~&gm)$##98BgN#@rwrg+R0I| zH(LKPzi96;Df`fSd_<~;e&}VA>^{my89{O=)z21dCyJB0=4L|+WcAo%` z|L~%(;w}r#pZD>{w--auPvEtG-Gm=J{i7%Fs<}V-kDiR5-GA+V8G7JH5BeHC?!Rv@ zhRE^i{p2U(mGx_XN#DoYk5~L>lm1_8@x+_;X#e^kc>HPg(7t~D>n?uc58E@p^!xaN zhri=zI)3%}m#+`N%Q(=!ejnX0w()|aosIVXRr!{_&!n$^c6^tQr|8XkmgjTu?ym>1 zd_55TdAt@)TXFaALyz>`#bC)?Z4nD1Fm@A zL=XMrXOAEJSdaWk_s8MSekz~eg`fQq-5IY)&N=^OJN&eZcr~Bjg@0FU3pnBrylTl$ z#*6+M{A)+W-eG%R&+_^czK;KCK0!Yv{nh6&(&q=k5l7(V&+z$~z|ZEt^6eV_;5T|G ziNCIY()mP z;L$_e4gWd*6EAqm@ZXLX#0x*;l;b_r4?p;h9>4zSe8m)_C-h$_-%dyI2ES^4e%*^V z{JE0<8^#NNh?6q-rN{FD{J_r*nE%Xg=x3aK`~=&-NY4YtcdSRp$1i|)zG8&*WB>WvbE1FO;N7oiu&&)z@s`GoOeT=6ONsCJ!r*^YkVY4E4`Ip$YBzquZ7elose zeknVFpYbOS%FwUld%7QuKb?GdU&{~P^?3)&@!}(;!|U}!_~{@2vwpQaZpRBfl(etU zliY&e^%hf*`K3SYkLad^zm~)6`4O*b+x2>cf7r%L|LAG>C-UFsTlmNRC_mHvFLY2g zdP*BFI7;H79r?d4_6|7m103Ji2cGNCjH|~J4feIORu6eYyMSxGG5kKaz^irwKYYYT z91Y&{8NJ{r8~lWRwM_djy!eSep7+B~^bGu&_&%cL^(1<{KM#2J{)Mhzt^Ry>{r-?2 zFka*JzxJ2(yjkBL1>(n3@&P<$_%HnI{nO$7JGav+zCVuR)%t4q`v}3W>j}S3{;)ri zXOw|oK3?F9`xOoLwG;R~Uy1=Te);+*erLRReiQy}d({ogLov-OfD&pl0 z@^h?5*JFPH{kw+O{c>*0XZXS6i|cc|Rp58NV(-%~;L3+@OvZbR9{BN}GWhLzJoJ#y z;LyW(^L*WUe)Z({Q_urn_GeiS`JD0V?sw2%jr(l9pSJ%JFZ(0@;8*yme0UB&@uD9; z18?`c;fD|Yj9+(uA^26>GQQ*d7ycAI=tmD_!=LW&pgWJ3TBi9EUfMPM=ja*hm!IkL z)bP?zlMe-dR>pe_eym54`0^$*0>$-{uSHe?JKYrXZX|0pWwIWG00Ew=%K&B ztB3EvKaO`cKi91{4#VA?pa=c;Lr+iR=PCHH9-VJ~ z89e;xXS_m>YVHsG^q=vXukMZfp?&RVV*XT%SK!BQ_!zfFzt1P*e3Sk=@Dnfo&|mQX z!ux*b&;6zU0z99m!x!44ueN*ds90^RXWjkE&|~Wd#<%SsU4d7vpnseX%j+wA&;A@< zFG5f2XX8(rAK;}7yyCrv{xQGZ?*s3C6mx_)!k^{y>sEi@RXc{irzh~s>tXmidR`nA zW9adRKQ=$3hw+6s`zbx?`wzjREBH0veg^)YpMjU|uYljyIM6|9(d}QgetVaAd-?-^ zm~XpcTi|tl(O_Tm?*{-!oRpz|`Ti#Uczfqx{(L<;eEb}5`M~vCaOj{Phuih}Ywi9H zKI>6SU!RQq)cF2q@Uvb;7iIWk&l57f@UuO~tMPgXJllzrlJ+%jKOT8}rEa0D|JLg# z>H1jTAI&G}`Y<{uoqqcMh~0n0PyB(`_H@2R+}R)7 zzlhiQs{gbL{^k3{;NW+Et)c(^W4oPp!LORH$I#=rV#wgP{RMwkj@NL1Z~51c@ACY^ zcoBauUgkq^#2tDp-xx3AWjlTazkOdH_+7Cr@V4!l55a?jpE!bFwUgF=@L7-D9|!N- z8(j^5I$rnv(eXF^K1(03p8WHbH>wWs+xq`V559Oj-r(?hmv67U`0Mb^y88=(S3W#m zpP$R?Ro78c#o*niu<$WQVYJ(=J92ao@*yO@%Q z*YdN)!|&}pfMxy`ANm@iyTt$-)qSv~Mm2LJ5&h*}<@XIm;$ zEj|AFb}f8;>)R_nkFQ#s!oL##aQ%8i{KqXn3L4ZmD1&JX4f0b`3x^*@Z0?b^pn5fa=dD}Wqu%D@RY&7eEyD~;2FQ#&aV&CKik0v zzv3N^7wvf-fOyCIuk`;i@q#DMC_~Te=N)YQNxnH>F~%J4?D0iB=kPOL_>aG#f8G2U zc-20IKg=iSCZ6!$&NtCRzM%(v!(YIoAAZWt^*& zTz^})|DvasXGg^%!cXGGSMW7%Ki>8BukdH~eydvgeCzpJjIpEVlzi~2%! zm(L&J&3N^6jQ{uvzU{9*51&2{j-Rv({j>X*=I0m0i~q!np5VXIdT)4qp}*SCw$($N zl%Z$c_2J;x{(kSM7z6R*XJ@?9_cMT}41TT0K8}9;V|#~xc7K`pJqyKIT0Q8_ekvdC zgU26ml;OYdcUwICIbPv!jqvzY`x)-Xv9)9#x9hb%O`VHSH1OLze)jxXupZ!(%|3a}X@Nzy7c-1b*e|*8e%rAVp9*cfT z+SluWj~L%wQTzXo&zmdWiRV$Z{vUpxH1w$dwEwcb6Ym$%ziss6t3|bcUCw`aDFbiw z1LNg<#Sj^<_qXkM;k%dK!R-8F`#b#O{GVN)OIZ5-NAix6@!LXSNk&hKaKifsW;f1yX~^RJ<2Wj<`clb_@P{GrG4 z6a8$bfA7y5EU$;rPf2^8M?I=>!Viwp>8+CP-@%vh%D3U?eQ00%nRuRj`TP++;tBnB zK1ICv=emm_X-_^gUf|hIeg?m4p3l2tTfnvLZR;kTFMy}4IEr+hI}He7^Y3 z2QEjdRKhXL~KGV+Oo#P{V@h9-h`GYT+f8F{d`0aWW*N5rfd5a;@ zSKFPC56mCn(beFugKxLfF7#LpJbK`xec*Mz@J;YNJ%QK!@Mb%oFkYG8)-#N+?@z@T zGhXkf=M~|nB%a>&6SjMQ5x~CY`QM9|_FSJQ-X1>aH9ri0ZzA~Zc#1#pvpws#{6r7i z$pcE-*D~Et!FNjVeBUqp=)w0kpIEP=A3gAa4}Vm1|HsEu;ZM*5KXFnv{As-b4n63r z?Y89qNUVgr`9j{sbz^{8=DEwSL-)Z#+ z|MGemKH?3$j@Mtu&z1fk`9{u`BCC-iInzXm`4fTIljq5tfU=%#(( zRXaW^_72vg)1PODA3g9B$D#e3E&9iL)bgbLeNz0+{L9Bv@Yx@`U(fjNiYXQq6ZCA0y#tQ^LXT>v;Ni#rtViROem??yhkwI(jq_jY;fei4^TX%x$NO*M zj(C^zAN@IAwJi99e*DaMtyg~sJnJ!ZQO0=L`7HP`|Lk}Pe}wI9sey#VOfyWPYQ_^3J!>>n;^UaPI@Z&$cS^v881@zR?_usMq ziXh?P%X;khn(=>E%mMV{m%Y1xT|Pd7&-`ln75o|dDg0aLalWGWFR$cTNj&xb&I|D9 zMGs}*)&A*G<$<5=;H{VatMX^!{*hXK3O&S2Ka|05>qGRc9N&j6Ke}m8JhdNxehfYM zh+m;cHNUuut?~}|v7gJ=$A~lQKa3YW;EB7@<9?3uw*Ex_t{4-%=xN4xb5wEdcG?-s z{&jXfSIdd()ywP2zCYT(zE8Yk{mbha_-P;Us&)cD{*yP9fnR=p3?IRV|I6!DaI_1& z@+ZxQ=m#Hqmd_u-(@)@48$K@)dW84qXL|kwetCU@?yN`oHu3vq(&Nv=Y>WQ)=T#Wr z&@-#w_?WNY$4}xn)c#fL$n9Tw!feUK6KEJMZbTw^(y>hy!PK89o6{8dY1h} zkNf3yJByEYui`&Iew1ytHs3i zJ)3{f)Ao<9s)J&9zZKwSqwASJ#-ClWE%@p2cmth}e}w0$$REZReGa#Z&xfwJR0L)H zw-#IC_5Lf)+aKbG>+M5$d>^&zt^CAIe$;m9{u=R8244C93_n-uPwRPj(G&WW55wQn z3B1-<>H9O`_3`rtI)D5;{L#wDMOEHPh0+h{`=rPzG95% zY533ae~h>N7k&pWi+z#sDAu*&nTEK8qg46JIi3 z^U41Lo_wGm%0~Yi=pT=-9pB*}>rqdy5HEU(mpDR?t>@9hc!8q~yj>rF-{UKW$asyf z|DGEBb|^w^u)D7y4D3 zSf3jnKYRW+{Aqqh7bS7mc7A*(AJ`5)_?18D_v?w1aie`bzrIWUuhf4w8SgvrZ;L5K zH)ZIV)vx*XC+NYSe!R-h&yWuz{KakUzv+1ue54HhiZ5M{B2G&17q^$^Pk4y~e0x1) z<#=uIe~h>JhyAhVPvqO|@$O2;>)G?oiQ|{eZ{!2>A-;S39Pf;2AIap>#P`@%e%M3;ncj@W(Abc=9vw%7=;1|C&E7Ke{P{U$qnbcfX4vI{1{& z;3yma{ralMSNVy%!4J<*Tm1TXb-p?Le!Sq<^@{(A{dZS&6Nmd{c3r+MU$4d&+Btms z^Dp8bejX?EFF#L??^(Z;o#W@Wm{Rn2@F(~~zSDokFJJ$`myB2cz8>i5p})F589uLT zQTb~@e~;ghR`K}|-T3LHH<*3?$LmP8m4?m^n z{rEH1W7l)YAMp4Bf1}6e6Y%KC@#=VyexDk>$i!|H`)3M{;{7remy7u(L?@Z zKehh((t7^o^C@`oKjM`?o)72&N7;@S*Q+^SrXBq>c;{z)iP!z|2DW}Ap-;ibR8FVDB=&UlUQ#Pj5K{)-;>ub2XK zg&vL9pOByEM~}Dn2BshWmmA*9uZEvse%Lnn%&+5h`u#X~vp<^8KMFs5jBmzEkMHlq z+vgYl6#lV(!{aA-bWjSV7h7M!kDk8&+Fw2do_NtuJK|sa`K-`mHO3dc@OeMpVBPtP z!|i@n$~SoFFYs1t<3&%#>-(brJosI)_VAOh_U`^w`TUG{*$zMc241x@_{ZaA>%;YU z@xQ)4f7V^U3jNFT5B^XF-kz60&p2MS{0eyTA71>#-}?LG>Gv+#p2v6j`WSgnKeVrL zY|#TB+rdY?^5-%5mHALwJbLIa_?OoY=*f7s^y?w$1y4W0KYRUc-SZ?3|Jz*eVm#4> z9`s$@w);Eyvoe3u{Tg@~kI-Ya_4}9R+w{B^z7q%f>*vMN?-8Jf_(PBO$KOE@>uq>F z{%EkTZNU>Cc*;X~Jimc%^n&Mqo`1uC*ISGceDG_%@t4qZqvGgiTmKKd^7)tGUm5QS zc;ZE`>+=qz=T3`9Hzn%4lc*L?)stAZ~mRH{(HxNr*w)1MEr{3l-W0Ud2Tz0Xth^~=w6 zeFHrFpGS)8csH#c;>FM4*YPx+FN3F_ zz<>A4zx!K1_us<5E4BsR9ItH$ztaEH_5RPEZ=U|#zx{uG#IF}IpP+kN<6->xzBu;Z zmHLPGAI+8htE~s%Cx7srGVnHk;?GJwuYzZs7+)`=1J%%jFZki@5AkWe1dcM`TAxpR z9$zg}KA=1E%g>wS8-Dijhy2c0s$$CeZ(Z;Ce9rjb5B>Q6_48t_pWtZk^j7it5Iyj9 z@IJqdsRO>>sdEH zqo-aE`7`KQdH(*8czfd;{8~TU1wW2=c|8Lk{e?fOouD6n#}z};o_4LD{rpi2|9*A+ z@8cEk@Ofi&@OvNV-xb?}e)yb(4S(pj{jt@#q7t<^J_>|J{}SdmH~eyZdWzU%t++pO>#^5+}MMUh4?` ztuM3-{PO+?Z^qB^8-A2;hVs|h@2g4Y`@~Hd@v4t>zn(brcnSXser}6t#2@m*-rc_{ zpRa+34?Jby<^Lap=Xi~7+K2w-{6|0Sf?u_X?;nt!&oExZNB@~$`J8@F4Lxo9s_Xoy zSdIAbg_8bwz85{rKj6?4c=67j@2ByFmooV6`2@y`_=p!>HO|Xo_WVM})Aap^@S-R9 zReJ?LeS4{hT84gmzn!1aPubv0>pwV;zjjyGpZ@ujaXzczNvog!iQDO|;`nj?==^lz zd96b|@F!mn1^MwBJpOn)$4if&?~~8qv!7~sM80i{5y4C8^!4}U!T0#_x6W7T`XRnk zg0JU0&*3LtaFn6P)>lVWH+sNj{hB|M9{kC8n-ACPkuqQZqXWI||2*G5$)B!w;a?u# z<@GZ&f6~2fjXkGVy!0cD}&=?t1I^!H-{6&!_QcJicoAo8ZU!EPPr&qk}T^ zX#e^){OBQnh^O)AZSZUdpZS%a55V{GAO7C&(e(Kh$;ACN;a@`!c>uqcVbH$zl>HGr zdUL#L=<9j-!1qe-H*JgB`+C^@wYM){ZGDcOv7gK53+Sf3(_6*QXTASo8)z5!x%;`b z-L~}~UoyX~AKLv3Jmb;mnYbRV`w{8;Z_$zYZT*HG_LmlqzN*XD1Nh1I%&!((_-)BK|Em0-xV~iP zrM3IC;sCr{nc(R@W0(o zUb`IA^JVz)2VC2}wtEZz$p`Q`UORt>pY7m@qtX8=__lv<=K(C=e}tF*99}Ev-xYfU zUiY`+YT^4k{tWof@ZbAy`U(2w>ks%r{DIee^+EhW5Bf8H_I%dnfB47x4bS;h4^KQ7 zw>AF{KVKYpt)G8{9^xfV;tqf8_{jMBcvk;u7kJfv%6N_QS$aO!>On_`-;clOZ}G&- z@86+kj9;EV;q&qEfR~T&6F;MKvz{-XUoeLfWZIo{>gc=Y2x_~6(2Cw(7#iw}O~|9$kM2Rv~H|MK|u@oM=U_Q!3hOttj>>f1a| zPQ3UDzsK)*+ke5shcA>4xBJ%<=WBNT0sfwz@Y8w%j~?`AKc)Yr^?36iKgaybdhmrZ z^o#$^mLD8t;LRWM2Y-kYeB*!G-|?r1hu_D)7-Pokcs+c6IP_?KnE1Xd^B+C5ifp%$FK1JO6RlJ+VSf1&mJG8>}0)u^M6v$ee!eckMx|b=NEnpzx!SE z{=)B%NdHan=pm0OYilp?hw;b%9)7)kjo0HAPkwoSuEhLD&r1ED0KY9pgl_ohZ|&!C zT#ntZOy`^M`*?T*J%9U2;@uV701iD4w~Ft-%;(_gC-keq=_uZYf8zR;-G4zpddP>4 z{&c?>Jmc5X13z&RcZ)}l^A$t%@JDq!dhsvgwcbn5yAJde{2%MF`D#-CdCQL;%JAo( z{>#7n<9GiQc+MY*6Mq9gyPj0bq=)gPpWwIr;e6KnFNR<|0tomVecpi`-@&5?eD+@r z&(Q-P{de%?s91;Sg`bl4z5A{BLfPQcd>+=Td?l056HXG)T)7$Se zrhGtm)}xkh;lFP$^lW9L$Kz$Z;HRvuFN?$Ti(RoT;An5}?q7BO{(bb|C*w-Hz-ztt z68YwQ#Sk8kH?Z?%@Z=}F;G1|~V|?4~v~zlUzIymPYT#8%`A@v`*WlB9+s7|IUqO8C zmv>^(6YUpW=V8p5OXKKm8Lg{QO_TK5hBIQ8xIq_4%WG z8{XfqIw*X6d-(})?e)OGD<8g2yzt|{kGD6F|M$rM55J%7+w`#Ay6{*G?S zz-xTd{WbgnANo~uKga%9yo@h+`0=OF1h2K z{2H%sz(3Zbc+=;z`thnKUoW8>|7jO`RP%g55BMCf^#2n6_dajc@caBc_S25P@RKj- zL0`lFJ@DiFQOk4k0e*ZTUiz!^!|eUXwBGCU>-+BhHhOlYMpjGws_$MFHsAimx_#yN zp26>YwSC9WbiD}u?w1Q%zFv(k{B*cgp0@i7{FLFp^8W|x^(%iSj;9io#*6;5KbD{9 zaX*R$mgCiYGW@&}{jGgoJ@D!`t)KCqGVpf1K)=UV^@F!)_OCV{f?t_G=XWb#JD%vE zG00ym%+i0KNq*xU2g$j z`$_XZ{FI@`=3C-*KZ+sH6L>p6WxVj8{xjar-`9_qdOC&Q`Klhqnf`k72{`nHe%0QA ze_MI!hcfWmAD^KgfAEnq@Kys4A9^!h^Z)13L%z`tJnfmU;0F(mc8#9v@UtC0+BNv} zd4K#Q{=hG`5&GZC-tFXY?UA6qZs4|*6c#<_{tKks~_jt{t9 z8ZQmp$%tPly-5GF$@B5|;NRB%$s@|(w;KNR@J+nw{y5v+ufq<`;2-w(~C7jl-@&+YgI-i}ADe)`Yx+WZ6Fw-;kXSMaOm^WoSZ=}*s3w))Xm`|*5Zz5?(1 zT#)=9ejYjag`apnLHq9m@^c*T?D}^3_=xY69&SA!JSz4M{(#H*qxHbV=T)WW*7|r& z2YC9&Z*+xz)h3=Nk)Da`jmzsj@+a%Dc*+0q_*x|3$Nmey#UHMR;FI@vXwZZ|cKrc< z^bl{}U(``SzxQ8E0J;w4Y|{5{;3NEu_x$lxJ)M%z^ba5Xgr0TB_rPm>pW)9qUg2M~ z{-B3=gI~4P=WF%*yWS+;m3oHf7mc1X_{j%+&3@YXHF%G&7$bP%uj@BIAK6tL{NCQ0 zU%uM?8u-xzFYO#|*Yk(#rO>1CO6M2wQwG1~1A1OAwgnvJ2=BUU`_N-8$+vO5%jY}r zc|Rd&Ups>zzt`e>@zTC_a}NKu*gN<_e-(FGXn&kopR1+w_w)q6YJPs<{TD-^EAV!I zf&I7Vf5a>O6Ti=8>xY)VKi?|f?toq zk6!u-J;qNy;177(2VVL76YigaZ~Y1U?EO>AXY}{-8GRhzNBGdA+8f}>cYN`94jcG- zX{4vF$I^NpeoFM$ZqCpHKRC(;@AJbr-_*k~`OkR52mfKXo1da*?2pao;L%S$&|mOt zzI_b-MzJm6=r8c9`TCi7;b**vr}zEC#7RHFZ|9Hr1AmJTe(6uwH_!ur;MLPH``6eX z?Oz{95Anf|uHe`HJNx;CXZVjEcqzjl)y~ng67RQb2*W+*WB!Aj?TRi#D;}1PLUVIGw-krYiZS3H}zTN1y4SpuXn!>JY~?&-d|Ho&o}ya-eSz5$NneZdi#6eXU|XNXF7jJ52dN_*Hipw z|7Be9KlIq=Pr>hsaeya&XWm@t`uTnM=^x#c4gW{+)BCTwGF~kwoKlDTUdcKq9f40*;_)Y&&v3J-GKI;+g96k7l9!g`|ziK`lUJs!^p0{Lt z@e^M31YYyQOCvqtFK*lQSn%-UBk_lR9e>mF`S779@XN=qKEK_+XyfhUrN=+tF+N@h zKm5Mm&_Db6zUBKb?RW*hYQF!HKg65;{Ps`&)jxXuZ!%tdz6P9+pLekQJWOAY@V^27 z&le*i4|er`d)Hr2*k8~=KG2UN>*v|Q!|S-pPkVm9rp4orw~G$;wO7E8_1OBEc<~S3 zwmsc&d;yQ%mkWr4GL0|%l(et&)m`*BU*$zluxtOC_`H}}z6!tdRepR8{@L}C_LpCT zAAg9``|}QrpYb9e&_O$g*XI?%_x!=ni`!bSrq4GyZ;cy#?dKT%+qxY+-d_mX*RG?7 z_~7$?4)Jd=zpdn-IKJ5RBJ}tCM_={l1Lz<7Z-Jn{cm5vXF6RS&(jR)}^M5&B#v%JZ zJ3s4q?e{kse|RZFzw}IepMZ|nkMO_8AAU;D#P?NR>H4;x|DuQS!q-O6bMkE^{!WX> zN6O$=t+e=oo@xE8Kk47cvzQY9-~LUX|HT)|27d$n?C;(d*5cvo=pUZ%)1LJ?{NxXMC<8A&+ZNx?2V37VUojtoCw_Bj|7!D9 zi$_O}S1mtlc4|o(esb4gYoc(GS1( zci1334?}#Jf8Bb6_7}IM|1tj4Kil#1P|oHU{ov7`{jrwtJ72N)vwk~28sX75|9!BB zddB%|>s#U-pbtgM4|=*V?0&^!%#L(jtOGW zpp+4arl`Dh=^-N7VvLrQj_-Js;6hdiqG8Fc$W2g@A1+|XAzO?vq|q=5I>LoTQ*=WV z8lZ<5PU28@Pffnizx7Rfv|E7y)w6zv^3SPOV+8U2XNlsoi(~_1C}t zTDx}b+WYLI@$Es2ANYSp{?k9`!GHdLaoy$vN5!NOFF5KWobN*sFL?BH;(ZnVZEXi$ z%HY>ln!mx{!TbFw-(TCIUc>)7dU|;Lsp|=E!++v!{RzC??*l)+zBXm}i5~c9r_t}{ zmtCoQYKgx3R|@xse1n&g_G*Qf*XvP!-UHv`N66aax6yN_?JxGDKltr&kDKIen< zzt-vpM}Gvr#@o-K$Md}yg7yNh@$KvD@zQgZ{K3z@9=l#!&u`B!5${;PBJung<29Z< zi+<0?>W|kCgZ5kBLeIA1@SW28&+bR0-FfJ)!NZR~8L#!CiRZi2QX&5t|Iy>^xgh1|J6k-y=Xm9(KM(2q zixE=K>FxbF6W{Mp&4)(~AN~_Z@Z0!pTqByqL25T;*aYs#z;HCudNgO$4`9m`d(pn zeAD=!z8{2M?{DX~`7Qd<3m#n#w+$bkU2m}+)Nk{c>47}-K{DiNs$IdV4M-TYS zZ!O_Jc;Za$ZJy}(^6}RFF4iu3&{yZT6Ys;3KX0HPesoiYpUR)V)Q)f9Jpa6c_@8R| z@dy15w+)}qZ;Sl_e)rca*z?Ks7wvj@zHN&cOdK7&kN-Wq$8X1D`h7R}(G_^L zzist^;3DO+WT?vcl>ev@Pp5KEZ#QXzfuH#BBkQ;Eyv3s%U5%=nZU2I!y#}AwxBGY<@5Ar^ z2EWZ$$p^+a;-sCx+kBFESN5-;f5-gG*UNqXrR?GQ@lg1Je)qdrggIWlAMaFbC1j}DLD@lSL=>*{(v%i}q|qd)vv z&dcslPw_cKoM*i4$L4j%~aJ z{I=9RwaohMelC8(4=?Rhmdj%K{%ng6{i^x;dOaF{{%7#dSKa9FcwCTA6(2Y+{ zZ^z?R`U{-%Rb7GCmiI4usYe<3+2dvTdI~*Rzv&@f^x%KS&(7b(@5kfVPvz%V@pFtf ze(>}!`m>+59t(cVzdWD8PjAmV>_odDzJMa-a_4$4F^?KybaQ)Ne*!9#k zj+f`E9{fR9;N{Qk@3W-!YWTgqXkfo}j-G9)J8Id%zdV{hSC-3Sd47W5nctotCjZ<1 z$^K}5IDB7m=&|vic*!^Xp}oM1|0_qu{sJByo-T{8o=0l5*ck~ zYQAx6^!_yJ*K&&<@*Q6&!SnnT{(vXmtVe#Hug7cre67_(``#bkVZu*bugRa`dXdxD z@vzl{FO-3|^HF>Jg2Nx;VLhtF<7bZ7?vLOn`P1XC&j(K2Pgf)_!;fC{P@=!aeS$ye zWxv-CgZ5iKp8*dqaU8-oci`U^+XK$)dj*Y$9|Mm+=%Aj%t$)+^-@#E559bT~fgk-@ zk6JoL&vV6EhLHeT?w z7vh(X_db61c@i5B=`Z~6^GliMGkD^p4E@>~em^4oS?2HSkv|jbIr1lc-wOV$fBE_j z9Q_sgt-sd$srmnplMmzP0p!oO7!S8a|KD(2q09cd|5X1@+)ualAM|ki!kgn2{}u4y z+>c^P{QvgfH2=YW^2uQSdA8oqum8d24<`K|`13=>IPeF5oq6-aZ~5&X_#1x*Joguf zllTL#tyhT`|G`r>@qTwbe)j%_9q-KNi4#9le^?-8t)BY6o#FH6;g6l);dlRvAgR<7XEN0gOb-g+9{*&4Kv3zL#9Qc#Y zcP&2rvB=l^uXw+Jo>BhPcD%pnU)uNM!8^eGY5S|y?{K?+J^cO}?bY+k{q_9o&M%=y zTmHN{`Q`1G208tE1k3Yb+VSJzu$j}gf5B4*+~$Y$ulG;Yo$%$bmS*R}C!8-l zzN&}3aDO|;FZ;c|2W;a5`pHk?q@;e$pIa@S{T{#bYvTkzIbP7+!Ta?Qdf`V;&};m> z*6IOA8TjA$li&LCPyBWCFn=I!^w3_t-c08^_Ja?8L;n&-=wHq^@bq`+SvQ{#{OtX4)!dQ~%XW+j{s>vA^{CtHJ-$dc10$pdWtp;#cq=;(OyW_3Qcc3VJx+@r5$@m+z;5 z>*(?03;pB+^@3kpXKlQWD~1gH%i}rwy*+Qh)^l3^zMkd$>GNAdljFJfFaD#a3V+YzuLx2 zJCwmMKc9vlztNN9T^^s&P5t24*7uOPNxWmcDxQHyKfF2K zb?dh-r+y!^%fIsH= z-ImH!OZ3&hUKX04q~}TCM_=HzmEH$}ZtrieFxy|sw-3@^&R2|(cAUOG{{z04Kg3hl zd%ubQ@UuV1YscgI@0-~8+47S&S--}s;q^kqYsW9~qQB3-e17cXrRN^{JzuK-9e>jE zOT^j1zn}c1ztH3HM8NwkpKq|g-(RZe$K$r>{~PpB-~PJ)wDoQLL=X6^-)f>Cf520s zudb&(1%D48dJeCbcg6Og1O36T{j>9j&8UAH{xk6S!+zp1mHSWA51#$_LK%2%l@?Dv z5O?5he%0dPr40P?{Tgua6Hk5rLJVJ8{2HZMYuq&th#8 zw=1#dy&tUCKRceQrF6YU|GHlxNL%C&$0NG&C*T_Y)B8ieun%@lmlB;R8n*dbCx*_xdaNh4uL{8~!8W9q0d(&98{Jr$6*q zzR_R!N&k9%k5?OK=*Lguq~0NXbBrGN!BaMR()A|1S3S9%W#H|3d-|(){GyL~=s`cclnvhJ|KQP&Kk)K>1o(S;0&nNv zqhfy<^9y$Z-utkF*zfMScoD`oU9%KiYZ-|G0nU zPr5%&ywq>>d>;O7v6j)%>92|LZP`!w(beeLqG#-nUEkrS>uut&sP>lzy`T2~-pR}Hg z4$9y^9Itl8jHVxQJ{!J`m;MEBEc;I#FaG@euI&GI`GWJJ!k^o<|M}-l@{{8QJf$OT z;~YHs?6_iph|A}w^-Rsx>8u_^^)-v_*$^N?kRR2!AFGar( z^}Q`WI*CJzgqI~objJH>4(sx@%C-- zg9k@F^wsr~;qwN8S4(H)kH=R`0sNsy=Zi0_*Q5NOe%~ql=s_=WhaU5v^?CZMJsump zkGDNM?bY+?m(YX%@S`vIb$tCg_+7C*_~`9<1-l*rKjv3OAK$>kpZ&4<5B#pT(G~H^ z&oqC7pVH;q`RiJHynv$&e$_li4|>@TKKS+f(SJmK?uzZ9p2rgv_FG%{x5akA+rd8r z9^Sqln_r=)=Rfs(*LVH=F}>(G}m z8vj4T@r6JA{4xFD$MMRa*IGU3ri}j5mgn2b<15Wq;l-zh|MTSMm|x@Di^S`E#TaQP z_~p+lZM^tNJ_la;nchbV-rMsE^7CHHPyc7UDwYsfO zy&eVdKKg6izrt_fr+@G>>(P4V#QP$a*9ZFX%Fl`Q^V#Py?E5eH!|_g>ZTvMaQa+#` ze8o|?pX2et-gk$dT`>xH$!GebUe8X9Z_Dd-ZM+C){e*lN`=k7P0Dc^=^5;d{o5XZHOJXXx?xsvg=gb^dwtsP3nI{LFa8J8`@ypC{f& zA^um$x1OKqtNHN3HeU7)Mvd8{+^!Tw=MMJKYUq_j^ByrVZ?s|e@_qX zRb40OC!f(l+2H+t5P0&Sji>rEk^fTU*Y7?3Rrh6KBJiM+Cq?IY(z*C~1aRmM_pXo31hkBvM@NNJ0@v8Zu)=%)>UNoSs7LRWH3jKon_zWL-%AnW${5$LY zU%uZ*``Mpm{ytvHCZ0!<|Bun%i<1tEfA!!0e+19*1umZ-mH%n|3O}hA z{5s#I`y<4g@v51|=RUvi?hntmz{_z%{Plk2#PgQxj+cm6=hLs^C;p+I{s{c?^=Th} zc>diLW5Q434SsE%b3C#iJZ1PJ{3-guvp?$>{seyCU-Wl>uHXLWpM~)Xe&VIy9J$f? z@n3+ae`$v@@XEJ$gU5g3%>3)dH{!4DygJcECXx8t|<2mY)_Y=aJd!2Z}p@*`;Z_tDP@Ou3awBPdlK`(g9L-^*n z)kFIkul`EwrRdK1tETw7sQL7#EW0m_sc@#Lz++0Pt*&%w!FWb zuNZ>3Tl`VGzy3e->wGtS9yR!t|35{3uJmVvKj6_#+~iYTKYt4TmGM4ov&J=pWwYcuVBafQL#Uu*ZaTz-Ql(|T#pL;vOli7@_T#syii(C>+2W) z(SrOT0HuRH~8)O2l|)e z5k26kU(0kqy7e>o<>v?BZ}~d9V|M7$R!LO}vfhXUH zld{22To2BUx68*%+rOb_c|9B-vwr1I`hBPtk6-ou;lu9>haT|{pWhDtWq;5^3I5`` z=1b{)JAHqothD(I9{$iTJ-5gQ@&_CxdNv!I&x7wBkHK%p7kJOdVhH#HuPx7K@)I2O zLyyiEe!ppazA*n84~Z9la{lP}y^WvX9arNBJ;vYS`~0)x^K3pFo_NRoW$QUDp7@AA z`b+U%WB%;>t1s@8S5Q7oJRhiv$K((B052u_YBN4w_3$pI^L#1!Mj8Be{zVV@NdJNl z{^k1}@S#8Owgvy#&%^v5>#_Ciwtvy@^{{~Dtg$D4oZjH`yz(F&k}fT z`TPWa^bmjG*L@!$@YOYY5k<1&o=)Vp4E*f%k^1*>%ioVzExpeB zI>xp0+em-^oitRv8;HCdj%a8x~ z6!>-HbKu3F=9Bp0`n-b1lXQIzKI^gTFUAMwD@K^()!&a9uX_38a_R>D&^~%H|8hR` z{ZzaY&(BNH3Hry!yWKBF|Ja||>siy&`j0>O6@F@b___7^rRO^>KYnKab-cVmy!0=6 zJbo9X{z~&DcqtujzaKHYze#&_{&TC<121KRPw#hPf7UN$e!PWukGP}1Z2Sa|9&nU_Umo8aR}2|?#Q&h} zU-Y9d_=UgC_z$o1RsO(B&&2wGj`y^FLOba4_N<{ap8-!9c)Om$Px=R5@S)$v|MmU| z|H^v2TKW+9ZLyZ|oig-m{qV!!$N9Xh2R@JA16Kd0>qmT{bhtea^MkBEqX%5pZ~4Rc zNj~@WsHKVfeWnb5h!1}Bgns#RA3S=*H0;iTSGV=kTM4e4sxlxu(AGw|Xc-rsNa;3xfr9{db` z(`xoAJxf-}d?S{QnQ5e^*Q?yyy%4 z^8X%q{DeQ_mCt`nyw5lM+xq|D*H!`Vd=;1d6#fW2eBivkHz56Q992H__x)5wKVEv{ zGx7J{Uj#q8Tuyy|5&C<2g5TyF`0w%6crw4@ot=+O953RZSZ|d6iTi{0d?WGVKYqAh zZm3-^)4yYXtbg%;*Z7$Ets(Hfzt-cpF_eEEqi2j?o^KOx=GXD{s2vZ%lXtGfHipNS z*RSt$LqGnLXIYOLH~~M7*Ped{zmosF^&dTy5wHA7*PHl~^&6h~=UD%;|M24@Wqls$ zCG-<7c+Xc4VEOw##F_PLeJ@=<_VH?{aC{Ljdb1wIdky{I;iq)@Hoo0&`H45{S505f z;e8$8b|skKv^9}$v*$;<-b6po4-lvK-c-4`t#2} zi0_5n&@BU&o|-65AqHE(6fB~g>LYnM_Xt3gMRp_7x?AtFYxe(p4s`T`s*9` zPk+Ii^=SU=^X*+RrT7Fs^eoTk;in9|`0n6;%Lm?C-GAzQm)7$gR}2~a`n{F+67R0= zryb(3TKiAE59%*7zvBB@;PET?Enf7G`&amT>+?bL&-8mD#EY)bZ}+E&m-x_|@jAY) ztk+}fb>QJ|^E32lD?Lwz4odXZddKkh{A}<(KSU4v;SW8_=f}REsyQ)#`{)1Rr~l}m z{2Km~Kk#o$D0$OX8XwS4Ja5A8H;4W-_~G+@4c_BLH+tyjz$+g<&h?$^Erv+-ZG4_M zKictvpX392yge7Bd>+1Ukoxs~>FN8_=q7)_UtG7}hax|BO`Pa+Iks`y>c>a;18?(N z_=%79Gv1z;fS>URe(DFm@_+XG9VtKI&wA8SY4wB0*U+Q>nmAu8AKrl9{Vv9s^$34^ zJ$^ZV(4YCOUHnH6{gwUK`#e8^9>xcFz5m=G>A3|Sete{)z508C6aJ_n?=SfK@h;~N zI*7yN+r~+&zt6wiU+_}~zx;XJ^5aMLU;IzCcz7wP&wA-mu@;@L{y*a_Kf#avwDmOb zJ^qN-p2t8x`GOAo5B;i{?w8@e>+=S5J(AXcdi)pHZM_#g=%@XTo^5-)pa;Cmv5n&v zj~>dv&-!ok8TiqUp3EBiG2M>StUloqQ`~FfHDeHeX8{PlV^EDedg##|CxV(g!v(H(7(ZNHCulC z0U!L@N`9gz<83{Pczu5{M(PE>ji2a2H+pis8lQ*H%SF86zc$IA){D@S^;;zH6R+cH z+@Z(r|AMD~;irE1qwzL9KMz0t1pn;y-SY9(*JI-${X6b2MUv)Y@S{KCwJrR?58|a> z#4G%8y{O^$Lmma|K`>ep>m&0x23_r*H zHM`!my#9b5d<{LypL?wyaFnz7#?SZAU)xfdYU%NN1IyzTeBK|9*G7Tg{jU63zg_HCZApk9N20sU=%X1wxk;&~x!3H|s_oU|8uH2$aW zm!SiE-7lk#|!#tzr$a+p8_5|=npwIUnL)i6MpIiUh{$b^w&y$ zzh2%IW1=0e?+s{t9=@N)^;tciU*SLeIbP|%wO+p(NcYR!mtq1!kNix}zoCZ`e0_f7 zahnh9@AR*qf48-Lcr#w}lRrDExSl_>x7qy2$A0YikNx?RU9E?Y@CRPw$;9_%?0Ode z;loej*!aKM`PDl9(65Hh(c}5p#O-oy;~YQ7_;t^-g`Va4D*m`%hk{;5|2Q91G0pez zy~DpDKgplIp5^s~K7RRm0Q68V{8^sAfhSMH9_8m-@yFvUhM->HZ9HuI7aV2am!F40 zcg8=__;ZT>alT2}3H`Ma@8_3s|BB!9&HXObky=K7>F<7hy=`!=uU2P%MZDwwQoely zJo@n+eW6GFdmFsBUv+_ZIrhBk#QRj&t@nl=wNyC&j^h>nc(Q-}d@+t!{4XCBl^gs( zFTUDd|MYyrfAZhsaj2ay@Za|r1Heyv_4^mY^_;-ZjsF+d?fwgXq8}Z^@AB<^JN~}t zv7hVK=YwBcH_^lKf)2`vSNJqOpr11M563t5J6{Q;Z3&;QH_<^qdwr|q*Iz9Te6+Is zyb!wZH~4iu_(}4I{({%@$s1T6Z{ep5e!IRP|DCTGA$X^^-?#d?Ru4Fj-z!K@y5EHU zjGvwVSU!*RM7$DKz~gsckH)vZ1)lpy#OwXx@!H1v>k;+u@O>kpUw%INABweu4)lYg ztg`%ijd-a?S#cES9FO4Pr@w-KcD`ZrhxPd;N$LGF=wBSpdH#c+S-<8FKaHO8 z`O(H({2%w%uYCXSy!Q`x;JIH(oNfG@IzFHW{=WY@pWcNZKJb*`kG3YhPo(+q&%=)% z{3MRxxAp(^`fdCyUI%*&|cted_ey=AN0KIUjPq3 z{dM!J`XwEq(m={e?YNhW>TyE#T|(Y44(c@dG^_|L@UXv^L2Lz?fQhq&>#%1Yxi{Yn{ljfYo>*W;`D z;rDRu`K5HefH&h+bNKrdp-29_gZ{!l_ILPwJqrEcsUP~+tOBd->nseLm^! z7eml*=&SXH^Q*wy_3!%rvh^tZ9Ovf~UC(|KJ;aON++WM%1HNRu<^!w0Kf?D-&_lc} zKl-ZwTl$yw*-yQSyDaSbvE?WKi9hg~AHEC!$MXTzd;xy+z)y)j+F`u~esoZRqeKtK z3%uSQKr6q7Kigt|z?aN#>uKos{Y^b%@y|4$ho7>E_aS=F%YN|AY#ZtL0`K~~!V_J8 z`TfB^e?1bG{HGmC;;CU2`nQ+=9C`GfD24Zp9y;Wv8G-{4Qt4?lS7 zH~4hE1E2Ls|HOK}#@j3SgPy_hQt$`=!Dsy%4=2v=>(1B2Uwt}Vuiw_6@qet}=07bS z-|64bW8d!szbmE?y!%^)*TVDJ_t$#x2VB?J!{vibu=t=LBq`z`LtD)g~HSJYd>G}wNymb9`{BnGG ze8m7A{eC=xr~Rzo@&`Z3f8y=%Z(BX!DQT~Uk>dty3>{H;k4Gui`dhie<|Cwkz^`7rxDmEH&P zH_^YV`r*y`%^&7(=;`;@;rxpE9=u-P13sL8qJwy;=WtukpIA>=zMe%t`5*i`z9!cH z*R3ZLPyKz9@8JK~A5#Y2{VVqO?2r2EsTS|JS}*kIc)8Z%@rBY_+ke`8fa869JnHw6 ze*rw}!|-za1i!W>#;e)!R`Y?E(1U*Rf&2?Sc0F}e>@VQa@4iNb{gxlU^e=eoAHw7Q z4*g62WIfC8!-Svu!EeVS`r(5g{rtby^YuOUQEM|PAJF0YT#q(R z$Y=bcSJ2^y3SD1>XE8Kf(F_8o#-)|J3AN}xB zqOZ=c()kPD!H1sZ^E+{Z4}S9>{fsBzs26x!zePWIaMTMucE1BWexjdxf!Fbp-fs*( z^K1T--f!l-C79o|EnJ!$?7KPB~<|8Ts+kACo>Mfr0dJoy8TGVnGZ#?P_; z;=kMSqbJ8J{KWeKX72|nk}df*j@QZ@#mN5FW=wPbNEKT!D6g<3?!M{8n!k_)O^9B0h2j9k1+i^Yc z5ij`AW9#Qf#r`tJFVCORL%g&{J0tzzYU$(cc)YS2 zTlBM^c)g4Uv;`hsa9NMm_r5;Dqo;Sh3BR}JdUU@282tE29OwytRrKpM{A7RTU%uXH z^-zEQe78KmfV{H_=iyscmLd9a_S zztG>;BR>Cr4ZQeIJ^o*x_nVlH*?JfKiyrz5{T9{!Q~i4n{J4L0eepT)&R2{P{r128 z=kj_i@ezOEZHx8iZL$Bu>+Ky@xQU(~p7!eaoSv_PAD;qm>nG&H*iQ+20enwS$X7o9 zAo}4)Pxfcs_z?P)59$33eSRG;A4fmO3we?C2%nzcqy3E6c>9>+1zvp5c;n}JMeqM& z4iZQBsjZ3Y3*paN|Iy>^c>~MqGcBI@HyitXcKqBGBSN>w@BH%T8hG}@m-Q$=)ARhT z9;dgB34e6_z5{=}{bEGK5&X;R59rVRyY7Bg@XMcx^)%HyCx2)kJz2l-7sR_QwdGpU zAN8+ZfX5%_t@UV+3gF=bPubuf^8GUO)4!Ar{+RqhKfLHeM=g(AJ@9&aUP1ZxS@4Wk z;4{C?pO11)dcVRi~T+8k^jT*-&yVb=koZ8o{pa<=s|zqe>)#BU*hW!*Z%CEj92J~x8u+A;Ni!g9IrKj9`@r;M^Ax&CEoiBKKQeKJKoW= zGTw>jsq{Wc_lNuM=%76}-rl$KDtdOs_TYaTf4$!MHvTwYtw;RE;-BY7bw7Oc7rGp| z(eo<5+3JB8JpR`EL08ZNKl&*HzkGcP4*t-i@#+D3#{8=JkntZr+NYg{|7y$M_ebN; z<2K$tUM-zX^84@i5pSPg=f{cl>gDH=@QHrLuljzf`>lTVgKzx2aa8Ot=p-trz_ae(s7zhVSs>Z!OdJ0pa)djE2u=&<`(oFG1GtBZF_-_xg@kytmL#`{<>< z!|Mk8;L(x!RpE3!UV0u+;;*g8TL4GJO7s#hdBOkd_oH8gA3xYnePi2yO8>$*=viLh?&IZWx?TW}KMnt9(9d`X zKI_r^?bpHYiZS6M@#BB}{iZZu1y31zv~@zh!3U1A!58#+e5E34i5{M}0q^lu9Q=V7 z&ok)h@z>TUTo3y3)9Zt@`%_oj@uZJe#WVENU+9J({k;Dc{pbNt>2m4@dhiE6_yfOu z{|o(@fA)MgJHAQJ#C%fc)AapBbW=vW((?#Ecg6OA!{5Mb>kK@8w*KI6ozD;7Cmj5< z_aju(*E8u)+9!_S*VfDA+e-We@s9Dzhfl-b^C$G!d47}$5 z|ET51m#kkkef+^6c&Qis+VcKlKlmK)A%4t%`d|Ln|MuK z4?0|zLv=j9LjU3?c-nDzeZB=h$9P*0p})p@me)_v)6>6RkHw1~^utRT@oMWK{5UiovEc<~26DZ`&-Jp6uq zMg?t=&%VDHAoJ_*$0I$ow|4#+_~q|!qAUAjI?>~LtA2PX>+^dzz~d+TX~$UipTF@Z zzxCyx_*dY^_Xl;q=C5*pc~|xvm;Z`BH{>hrweKfH5BO2MWBhD>>iGQz`G8*ZWPcRb z*YIasz6+_@U!Pn@Z0q`c;_pI$atDY9MSs?#e3*D1RsK(`x10a#^^5;0@c4=Tjz8zK_@iPD!;deN zk!U01%AZHzd;He={!{aT)xST*@ecp4>^V06yBVGz_UFq_`8mAabhsUl z>HZYH5P!tG++W}+122E>xB9{1SLiYQZGYi=N6*Cb^Xrb6&~M5ZPsZb+;fc4^OWYB! zw$8xQpN=brZ1kk{SoV88Z@|WX{9LL39Q;`S@_IP+hzEVW^Bw!ayZpMb-XG0}Kiu{g z`IGtW`H=N^<>zocpLlBN_pd$Qiv@;H5wDJy^!z;iN(q0hm#>fNj?Az5$;9ueX}#hH z@PAi~7$4zp^lZV8;}zfOB;MnNA73a#kNRu&{=#vq2VTmC|8|Qf-|)v=+kY-!Pl1O& z@Y0{ozu+^!@@IB_;(pSvuA`Weh*$sj=TCa$N$A(s$$Ec`e?4A)4&SHO==b%LZK+CY zNj}xTUKVzKKWg{a|7ZX0{DOY`r2P*5gWy?j2bc9|{_pQ&*;O6%SH_!uzFz=2G z|JnSFc+pQi@Ls>pXTXyW;HdBP_4kZgJp9BRcza#~e|E+8fXn>aKQaDjJe;`yqVq-i zzGtgH{E?oC^=;u#@WyzM#H}LE3F9hD4V*O;>`04(-p^A5Ses{QSq<>Q5TGhX^9o<|kFtoO(A0sZtZ{h9UH_z8ZTpEmy? zfAEEVrL^Aj&*N4rwts+&@xF6YF)xzdqk)&)0VU z5q^)am?IrO)ANV;<7F7S-#USx{)IRDuZrpW2;eA#-o_vJ$N8rI{p3+G2K2y-uE_u8 zd;>?kf!Fxp&#(4yfwz3)`VKwRLs#I}&G!O7>yJGT-yV;BJ(fTCN&bM({>XQq9}+J( z>W6+kFZaFZ+0}l7pZ*T~a{hzIPwV~tr~H|?pJn~KKHt<*I^NMk8G59D;(hX}Sz0~t zQieb4?#~8Z`S23_z5WXQwnaX;-=!jI8T__>0v>*JQ$O&Q&*15Q@~6eu??+7ZulYm1 zp$C5QvqnSl5&YTK_|OkN^y_$e8vX1CPdgBEKMOs*cmuEeybFI1-{|=``g?l7*RsIh z`t5Oqp#9bv`tg%`9sDu)o}Y*GG5_Bc+XFxGpr7|C5ifXjxL-!&pXfn9{RF=Q?fb$L z_Xjn9`yzUruNWh`f`9pbYhTaoc&L`nxIXIX2|snc_HOj!54!1xz>EKd$^5z5;)$0s z_?Mr5KnJ=4zkK}#Z^lditHir4`oFK6yI=O_%TJA0>G=V8DILDC`N{fx6Fz-En)q@) zOV4fe`~G4I@G11z7J9(LpX1f|i@41N|Mc|%Z@KSTJbn(6$79xuIt+2dCg{d&jqw^TyP`rqFAu*X^P zq2I>;QN9J<*3VrWLwmjJFZO#pu1Ecw)+Yz}`{<#+2KZa}37$A9U5;&d{*3WDUwj4r@$sm5{eJhZ zScCLa&!6?rV~Ef7J6~-l$7}Peqq-mc;LwG?bv^k$_?|z3m!35Kz)Kl;o!`Gcny-pg zA2wdC&j;g2f6t%Lqeeaoe=q+-&+`2#;>6eBUpL#Jm#-JVdw+Wc@lUL8zjc4Y{(sTK_hsO9 zea`8WyZ`u4|MaW>1^wI8A9$TFK0v(0$^PuW0zU@7EoKBb zO1GzezXLs^@#o^Y^7$R`qlY+&KlruvGWqH4mx`dQ|EMvI zNY97CkNwp7Iz4{{KXF978h_IJcEAyD;Ah8&b^MK==fq2X_VsK1>Ziev?>{P%oAlSV z)W~Y-?bScm;+TA3KfX|+zm_K>e9$jnPZ6)@hgVqkvyWewKj^Q`+{Dl4i~R*1-Fr!^Z(0w@RN2zkB%?DzeYZQM^E6jRmit7 zUimQbdmJ`Dr@!DwH)ZHqo?qc#NB`L*|L2I8yuqKWXL&sA>ydtco*e!@-uz#$UwVem zBZZ$f-nRV2oBh;!=}+O0A5X;?+jx5GGw^3WZT%KK@Pk7Seh~+H$RGH@gRAA)QL!!X z@KZMUlU5J>#M|Ic!LQ^`df?Cc?RtlJ$Np%(n%2+z{5pQq_fNrh;w{AM`>Vg%&)M;6 zdHnC|S)Q+wFWFC<&!c~3e@#5EEB<@*7yRhYdKB;M{UG;$TYZP$+dE89$NTNWiSeI?=}UN60Z z^go!?@Ao@;`klV>{WbKvzNoO@Iw#(7KG^yj`ONr3ocMW2AI~qrkB^jrxB2;c{@MA1 z9q(^V)L#?#$5r#Z)sGI!;MZ1qUIJe{{=*7>y@ub!m-ABS@r6$rFQd|Y9vr3HS>Nx?c*yz>x+nv$ zEuU|U$3r_FiFa3w2^~3q%pc;V{r}wjp}w`gxj;`(f8f=>UmV?^3cTXIjeg=IUP|zF zeLG!`gCj4%SN)$K>94rU!tQ^8ANx6be^c>JoL`=3e)S6a@e^M-4kF&==Xt;rf8cF= zCjZC$v*Y>ldJB5IpIy*8eB^_zccGv00p9G-@_eJ!6Z{hPJpONs35A!^<=ckePec#= z9sjSvkN@bW4F1{twDbFVezml1@#ycwd;H&*s*tk&mwNn{-*Y*tIQOIeKgX+@>HJ9l zWW3H7pGE(lzyH$n7V@o^59kwmv-t?|_V5*VStvi#{Rrapc%s67%jYxjgLi)&uY92viyn;XDm(SOIyo9-a^nj;y`73{~E%5ezPvYGb+XFA{1zuaPbH4NVYCU|4 z{;2d9@=fBUef-Gr%Kv-t;}5=5hCeo5!B76coAHWw z;`}TA^!@I>pOz2n_1p1&HugCxM|M1g)^iO^bJv@(uZgjc) zx&a;>zEFmK8*f`YeiCo++x1cFKYSUl^ZUg8bhYHa4@iH(OWEl8W&GrNoH#k21Fv{* zgYWqhcx@HV@9+{YJ_TO#OML`2VezpZL80 zoPT*e9AAis`nB3kj$ibH@90VK_VKgp33mP^pYacV%Fu7mQ=uO}z_sz#?~8pAe&Pd9 zKfr%+{a3#Kci#JlKMOzS3+kcI?eBa)0$y*&D=d$1;L-2!>FY1~@6Yovo})YStEDsI z9r?-cwUM9jqkmgM`J1+!A06O3dM194<5&OvPrmwB{xbT<{UueW;8*JL=jG^6@`X4e zR-51A&szRg5B%g^@N4VN+VODy{jTCq*W>6R{?Ma%9}(}a*dB1iPyPD)%fC;&9$!;0 z@H$_7^{DPAKgk=~3B2^&f}i&3C+e9>|4iRM0`K)5s^j;KmLDCI4!4c8K8fDUZ|6t& zi5Fh#q-~tS zzb*C$cqv1V@+bX%8T{x9{^jds_}~w`9lu9a2l)&yCG~4PpWlLKe~wq@$Km@wL(lU0 z8Xc6h$Mc`~@9o!kzz4s6@8&o0e^+t%;`O7#ek=7aywp2{2j2OLA*dJl<@q_d5kLF! zgL=WQ^_+?KU8rVyUkdF|(q3)n3_r*5YJ5n~pSbQ~jPPGvxAiXabLH`M0)DJV?WOM% z(Z1`df%1Ec>+?G=(G6F>1>T)*-3rK3ND9_DZGy1(9l z9l!K1^H1=u&+*#u_0qO|>IGca7car@?H5B(Kk)0;X9BOSSwCGrKH`7)NDCT2C$4`r zzTF^R_pcZq{?HD;7Xu!D&;=efwe-?feV=&)*-lbUKPR^w{+jc;dy6 ze7vmdFY4EJCdMD@U;G*CvHM5p$4~N<`Vp_T{P?23z!Pty{{nvYgQslph4GN~$+L`C ze%^&2J>V%rzwrKi=C0TtaMTaHj`yeV)A!eU9#2%*Z=IkA{phBhL-^%guws8%$$y3( z`U_t4;AdSAzr}hHIP?VWK#})v%jfkSKI_l&^&omOzZ!a-@e@7ZDT$-L|LW)P6Mw*Y zf4F{IKX3i)<8}Og9lY}uBh326|2FXG0Y^Ncf8F&p_*$NkZ}7uQJ07lm-~ThMo;F_i zYdt?6w>3`qDT816knZ2X-@&KvN6^0e>kZ7FU!-SZKB5#@pk=! z|HRkF+js?jSIh|N!B2hLyGi+g|J19v%VOR01MpL#hw+NPXMW{#`u+%d@HO<<7W~8q zo|5)@-w$%$Vtj$O^ELeFWxu!A2m(*M@KZMM)Ae|}-UQF_OPuIy`2BnV9vvP1DIfZH zn{T)I4=?pX&+_$7s~>;4f5dp@@fBn2@XxLnxj*z5dWa+RYir_p35_RL+w-Z%SL5*i zTSMQaf46l%aeDlQH9x~&WZt-Vj|GvG|-`BJ3e;=>oW#W4LXP-Ix z(SPRa8?65mXB$uLhv(4G@s2-~(O>d!cKzW!EkE(1EBI%}2j&07dcv2!^Z)(Jk9>mu z#UJz#zh#Mk`teA;kHvWL`>2LUbJz-aD5B{Ss@U!cmhxrdbzLQVk zr&{_N`Z>PPlkqzLewO2XWxPW_(NoLW`TUQghx0q};wSv|d8FIz^%4CGjsrYv{pG_^BWLtF1HmdwvGL&PV<}6Y`&afht{AQLzShwFKAdtMv-{@rQo${xG`BPh0N--}2Fp!);??y+RdE>ECgF z+Vd^o$p>^0NBE=TabmtCJ--LP`%x?~^2h$S|FrQO|JjcY%D~(85qSJ0&oW-)ZCd{X zPuvl&N97zpbC+Pp`iMZ|7_9WBoQCARoqf z>o4&17xB8j2v}R-eSa|k@dn)Doy8L`{LWk33I65z5Blkcz)Meh{u#eB-o^*?<0p9Z z1;6lj+k8epCH3p?o!y3iSBwc9?FGNa^AEQEz?bzae{QsT`u?n&uZA9tKfjEA#((sC zK1GH7);apoi+<`I!sGc#`~XMU;9pqJzkIx)C-<*f^7Wiuv6hJ=JicNIvL5k2g&y?x z{aiO+vex#W%ky*kx6@yz=tmE_DT7~nhVw((tK;*;_iOC@jz9PbU)H}oo`a`;=-2(? z^gajT%>3%F*U&TeM|y6J@aU`03#I!V6F`};x}pTT+kXh2)UJHCFDo{8txt)W&w{!ljl_&J*_D0ujsO0s`(=N={4_to`~G5p9IyVK&ez0AX|?yC z8b6V!qkMd{Y z`;ziMo$uhw`t5kZ|FM4I@8J)4e5Z_fKk@Cqd;Qw4gWuJ7!BIc(+L~RTU%h@_+j$*5 z_>Ug^!7qLf7kn=t0&E}kWAmBy`6E?Z^wa`KEL!oZuJu{ zCG~3yFN4Q_@_~3<$wu$D`Nzb|_(PoF8~)+@mx5ngX+DE)%D}I?o(;UdFZ>I{i+*$y zN8p$B5MRdY`G$5*!e(L(@!}KqHql0=5xA%dh_rvt@ z(m#BDJNTEc*YG{-7k`>xfzSGde}j0(elE`k;3w|TudOru@A(=1`$Xg0Dd%hAgD>k@ zHy@z>+V2ZA_%9MK=Pz`*zlR2$tv_C@BK<}G(?0D4y**z9{+-44P;XcNZ-4bqKi{Dj zA1NJa>y7UsUU>WYu)H1%Z`N-u@x1i5)Rt?BzWUe8V)pqZyS`rUzw#%2->M(4j<0ln z2j7bqKgY+5-WUBd^zW|v0x$hRepH|CfX7e#@8D0?`=j$qn%}}t8G7XB#P4rD(en?d z`04r5_*8wlEPmu;KX&}b{`~E(;?V8&qr!g6k6+(k>(LK~@L0d<`5$<@AC3NAJ_KG{ z6W{N!^>F$ZesmLe^w;w99^k0g=-HBQV}F*fcQ{^XC-ltbkFCGqXPfU?zx;ncc>F;R z^&?&#?+^ICaMD{08Tu`sTYlu zkMQ?fJi00A@4B9up5MlI@S#UrJ|2QY4`uM1|LF1fiZQ|;c>R6id}Mk?{MOq3)5a6# zlPmQcgYU%~{Mz#4am=s&dWG@XkEddc-kvug{V#&=@jKkUe?7ZieSx3bs)K%YebK;v z%jc83vj1>p^SK?KfPZRTu(po;!nT7)Y7-WZ%b{tmYsZl%y{Da zD?aPdcs}vI1zoTG9D3+4^m}_%W_^AjjfeO{N&PyX|1SKysvBJ9xB15Ucy)YDeBVm^ z6YDd}>uJQ7{Z~Gx-}~s}b-aHXf5@Ny@uiNqVEiF}@YCyie`%wDcfV^tWc|XY`6qfZ zUVh$g`O!lea+beO0YCcjt9L&geCF5jehoi+@izR!=cz*fy7^MzwY5bL{e_Q|=&5CT z9|dt{e-!T{_?6>@U!FYmx>Jx9RHj!_tan|M=eE3s& zFAK%{8v4insDIyuKh9T-kvM{1_Y3|ydbs`qM}G%idM4JRmX8uXaxqhL2@Wc`PcKo7e?7wQJ`5rnby}i1g4}aS~ z8L#>3v*7Uu-P8~L+Hya)#r6<)2Y<5OpF@89fuGV^-GAEnjQ$=z{L%W=zb603@h-1d z_x-Ws{iv8i_oMzl>(~4+eShC^wO;679-q-e|61$*>HXEy6a1=kj6c2p4gB)_AN}YF zy!99UjQdM^&fEU&$9p(FJYUQM;`aWwKl7RVK|k$;eyf5Wc-c?95Z7`Gp8epx9j`E( zZ>sny_n)~${z6|Z9Z!CN%X-#5&kTQ!`xrfA{qpBNc>F;RW#zpr?EVpW^y8<;9~HDk zK8*RL=NkMg@e|MUFCQ<&nfV^*ZWhJyx^T)7LNj+4^|x{s?&Tr`6-}*z-2&eOxU*;yoPC@gF>8;I)kG%lv&kv+K!fH{~-rC_}%Fm-PJ|aP)WJZ9SHJ z7{_b+!NUiC?k}};j-TWM{&eu^`_$kmBR`k@9O&`uqiv~9)YA3UKePVd#)}U3%kkRy z2>7-9_=BH)em!6J7r6hsE4ATTdj0z6x_)~XJsw}hcl_V1y`O$@UE}%B!|&}^{_KzP z^NUB#e)_Yc$Je9KPybR`4)JMpXvMZ=HV{nwzuk}vXAMdl{n;kFk<7YqK!}%e4$$#oayf(hUKgQ4UFV7#)k^9T8zwp18 z|Dj)7rNzTf8Tjkh{-^)*{lCrmi|>yUH^)!lZ9TB{$9an(n|wGzkMmWW#}f@`3q8KS z;VU;!p1nCtiFKN*@{z{|tY6`5AgtDg7QXy1k4B_FLY+<9Jo^ zA^zZht3UK8-`)Vf(*HDHMYrp7{W@MIp5Kt46TgpO$0PoG{}dBI+%BiS&xClv<3~sT z@b`s-Ut7oUJ71{?%KG0r{-^b^fuHI6!sD#`#M66!3;bTs^~{b}s(3=Y_}TJ@9vlBT z-g|hLW9xyl?_(FS){Z^{Puh+AD{Y#widrwUtUmBm&@dz*N5D)r~ifz%K{r+0^2R!_t zfA;)k>$l|FSdUur>xEshmN~A7+y3gGg?Pca?pnX`$B&oZ@$1aCv4x-Z;q!L9!t(hP z9Q7S;&u@Pp{ygb;NPlI1wX}twc)?MI9&LS!{2$|WJiY@w{-cMugJ1cR*2ln6243fj z+4uRU^+|XsgJ0_#e}w*Bu|33*{n7CGYlF0q_MpzV!S=f5)G6K7v2vZT>($fb;fCD1Xz|mU!L2 zibH>3ZM_11+6PBFl-2)VhM)N}^(cd1TmRYfVdAE2_)pP4j@R^{pZxFl*X;Gaoi8|E zdj5o;772Ltvp@TJIG@}Vt51J{r+)qYh`&#~=mAfA#V_|x(K4*tUno-*{P zB|jd${i45byuSVS@>AnmdY%g2j910PPx~H^^K0Xnc*lC=fBHTVzEIL$U2mCqo=1B8 z_}vy03UAgge_m_#gQpBVy59dRc=8_{eg=MdeFp!t9_e-eeSZ^&MYaF5^I6$fqc`Jk8k7;eo_Y3^l-e4dHxyw_?h)cnIDh7zf{Gwq<$SAhU-Ovw|qlCddO$`EAWbU;(qAz z{YUt{y&4YRPp5x59{YG*ul*+ZysLhooBnY6&C~k{pa1^d4^=$A@_n1YTYjPkz4$@B z!0UMYee{4wKe__1e0bM-|5ft^@`v`(llg`B<8fQ8W$IDdU;WebZ6&@CulwD!`L=NeKkd_B=xXp=@bLHJ)%DuM z_cd(%gdaWdqaS^|-*|og>-_r${A2x!JgtY*zUw3-DqI{fbg-#fm7U;Xs}{7U^VgNGm8l)=9)-x`0? z`+MQb@yh>+^*y!Z#~1p^f8wXTsw?$Zix2&pPp0?(qZ@w$FZ~nqVVzGWzMsBMPZRGs z`HVm4rVRbsI^%f3Km5t~<@J`J;IDBH*CzvS=XZ`5 z`0$5z!q4UT7<}1JyI+a_%$MNJcfB)-ViznWWo(=xMKfwEX z(MtRUdT1ZL=nwxj9$szrfOo&5!hS0~Z;5_N>T^DYA3oPnj5zSi&$EFi9;>zgwCfAv zg&!T%3%ugJjh?ZecD{grj8{wP{y2KPz6;X$F!6gXRuTR9L7ey)rOoHTkNq)z;)Ngm zUb=qG|Nj>J%pcIh@#%2eI0e5g_6ORbZ18@(`2Jci>ru@U_=y)ky#8SWKEGu@c;YyO zZ;s)oKfzH_|Khr?*Z%7I?-!^g*8@LsqOZ~OUHS_@!FzqLV9%G1#!vLO&x<-=F~Y1z z`S1bw@gF_-<8o}n$G5TmfA=5%>7Rb}SK;US6<)9J4Ls5Db(8Z2@!<#UIQ{hZxm5Fg z=tnO;!B2a2ePcLZ4gBnU$*vdBvnv)Eaih!r>Ypd%8#vm}`t5wp@xpijuB~5NNdA*Q zl(ctoUH$v+5x*<9jr6=FIw;|<_fOONtk9ADk)MyzGd^DI{v&w&K?gpC9-WV#0zc;0 z_icX{{H|03YDxXzm;PJi1N(^=UB=>{!|^Kk-?~rG{{}rAzwi>jGjC?cE7f#8&R2{v z_m{0FA2s{&ow!54?*D!af5!Z?^Nr>8G1|u`i^f0C(NBM&pVE=Gafbi!fukKt>VYR- z@YD~y^5+%sJw1UpekuUTKas6_SsK6p-0E#OY~PS9|EuO|Lw#Jo_NvU;)xeLI?xyR z+4KAI^Cx{hHvY8wTRr&2dyyg zJaOU^_`GB9`DFd&}I0nBhmMQR3Huw#Gw)^3ae6ua^J^zD$_Wp?Y zhwlpt{^j+bLI0-rRT3xhN4z#Z<0t;ZpYh7K&w^j+&+K}y_gAlfL%+7t{TFmohM$&i z^e^$^4`tx(dIx-aJhlI?x=uM>;P3mX8fW-Pyy(dM%i{@pGu{-z-|Mfc`?65HA4k9Q z6+@sa@Y+iAZE(~_-)5uVcl$N`WPS+F{W@%5Vtroci!Y&n9IqOB6@T!b{>plm*E7Kr zcgPq1bHqDdKQaHo;|u2= z`oXX9ExivJ9Q=XT)~onKe}TiVz)Meho~N%z$Jg-vlf+Lu=s`F8(Z&BO{uDg=(c}FA zv6Vi5V?TU3UYozcPyWN7@yqLn@DoqSS)N}JCwS`Ddj9=N;sr+;{Mst5{yx9@>kaZB ze~35pn?L09*dJZ5rSHcPU*?zoVSZA7em*JwE&dQMe7S$kS>grX_s8%pKmJo1YX7-z zJqmrb-bK6qh91hm+x#E>z5WWkj`wS=et2_#+4WS*Pn;QV<$ee=H;tmEr5_|xmJng^GK{QO_>|M_Bj@MT;7Z-3o?>U{c+)=&JQ z-vY0#w0;7fb^X#MIPFD>3&_s?Va zx5fSj-t{?D8)?0Zc*(y*_{Oi7eSa|o`U9{0yn>!FetG=?{qU1d_4)HpukT;!N%Kkg zDMP=G--+kR?e|jA!}SQf^hfY(>!bL?e(;_C^7ZPmpUVG<=Pl*Wee{g^?R*EGd?tT7 z`qTASKi=izWx$`#ckok&|I7JCetG;+VZY_qFXQVkt9Vqbgby8*w0CiRR?jjXUXB-Q z-9OX#0FDwpYu{%Tc(vjFxBcJ#zbY!^5B|`<=yBz?afjn;e7sox;6M4<`V;zfeo5=4 z=%8NUHU57Y{p169kLNG|j~6}QGruZ6gnt~b#;bJw0xxCgxA7T2U2ieL=nDDDx8ZtS z;Fre}bWjFfTQ9WnqJy%*yPxD2@pbSQ>-lG&7m~6xpFsy@=wCj5!Ql__Z0h|@^pii} zs2BXp`ONXv`c>=QfuDQ>M?0ZM`F4AK{;WG*f?xS_t>s4tWyGtkiS?-E>nZ%n{Ilz6 z(leXS$$#|t@!14Sf6@Q=m-XB6$av^{#R#b%^y;r~!cQK+pYf`B4t|_J!h3&#hnF(+ zERS#alkqlQp=W%&EYD}~vBUp%p4WmOf85^)V82!H-}y=f)ROx3uP>1Q_=6t$qv9w| zh!>pmC4S{YTF;~&CB*gl$%)_VQO$I{3@>Hy+ZOuq6Q43({gvKt*5W<>CwueuzX)L(7>2VQ#o_#z+CO&R{%^D4xP|M2I0Q~spq^Jzch zt-o4+bmVw#{x-sg{@Lpt)!feZ7kcm$f6yO#wB_>?@We|Qcw2wqcz6GbAu@h;eq!tG z@UQIOSMUe@{dhG#r{~SkO&Rgp`4>OO@v7!S@Y}{0>XU!<_n1Bce%IhV9?|YUwEp~q z;K%;h`3O9Gw2vOAxB1&k;K%%`c@zK1FZi>cIv(%Rzv$`r*Yfe($J_G*llqUrkM-;L zeH#7v=W!NulK88yKHnf-_EW#&E(^u`2tDB8rwsh^@dZEe1m65y&##)>7T@>Z=G!eE z-IVB?|GtCtoVNLf9?IYs{=4Ye7X5#Nj_m)s`+dd|pYY>1?bA*mwe=qGV?DyB@q~6L zgI~Xw=ke}}?E#nL)%okg=ougH>fiMI628+;=+Tz<*EpZo-LDCLyWSxmh|hg5fwZkz z{nGPw{DGf%y`95mwu}!e`!}6`;m>|9kLT#13_14vCwj*HtC~pjnS)GU5eK{lME6{43)<9rbU+@9~cF zXL&x^*ROm?>lK6k`aR-B557>+UcKH-&l~jlHGX~pf9Oy8Df7!I_Xj-uZU0q06Z5NC zf0q464{=2QF5~f!cmuDkbbP@}+2ZN1aegY^^t=}OJ9>OPgdZK0jULbcZLvM@QU-o` zelqaqb>f8|9ppps+x)p5KZ!TvZ9WM<`38U1ua;)t&-@|ujP+Y2;9YOAzoX0kxBpcC z-a!Ajzs&!Z-+4lNA&djOM2c|uSfHT>E{(&e)>1}m(F*;&-jCW@Wf3#_=!LG z$$qc@CUY(~{d_dWYd&xvJ>bzn8T9)8^7o==S8NYB>IYt16a8iLEBMKO{29f|e*DS) z>-d^|zx~Aefc$*i`icImNB;QzuWd2s@RNA#ulrA3zohSPg3tWQ|5^R7tj}ll*X;NG z(|SApP||;OzBKXsJIm`W_yd3VX}>2(yt`t1@G<+Z{+&3#i_i1lkB_DuYc)Q(enBsO zT&E7meTWxVzm^n>gBqxsug*W+zHhj9P2tV=Se}{kK z`Qdffv&2)sAMrit89(2s=gr;*e%!yy`AodoA31db|JWb#|KH%pzi+Gg@PEg6(!+;8 z%AbknA2fga`{)__sd!JpkMl=*()A|!Mj85Td~T1&zW>Y5E5e)e)6QS`xhsmt-`k%1 z*Ve~~*Z0?Yv|}v$PtybcINxl2wT&0u@Z-`T4_d`RyP08-Is*`F;U7^f|oqzB}3{?gpRM!~1yE^z)tbmC9I4>es(c zJRhqX{(Ka1;=8w3iEA-|*Ld|3ev&`%XFqLzLVx-GVl9&w5%2Q)2K*VX@qc)I3V$vA z`7ZRsoBa|0RrKR0cuM%0Ux6oH_Gf+_U*Bl`gcm&ZSsy#9{-Fndz}J4INb_^}Xa^wI zr|5?t93}Ouo?9)xuV;C@?c=4)*MHE{$Isw| zjz1|s!Daok>uEM0!%zJ0>oNa{x95MvEByTt-n-W}PL7Igpoci!U$3C?D&4OHPub{6 z^Ht)_{5qe08vXbV9)6c&*Vk8>zp>xjuW|AJ`hM*6{t)=RJ#RqqK7~K{Pdk(jufOk1 z|2kjQk@4ccN4)T(C;MZ1T0Fdz#9Pl7SJ9vLS6!ihd3}<4Syu;^G$k( z&(}5n`22x5@zeXwY`FYfm(Rg3{2S<}f8nJJ{JQZi@XObCefnD_f(PfkC75l?=1b@q>$mGo_|bz7Z||^~EqM5em%IqL^xU9-!J|L( z+x(&B@8g&CgYW1`&nJM-dUXBrEPC(<96k|${XYBb_o00JhaWv1{S)(N^~4?YqZ@uN zqr>)F$8G))CnfP-T({@D;730=+5^w}2K@hjdv_PB*;yTS{J2qo7!+BlkU)*1lS9-Z zC#HOeC{-?I7vCgyBRQx@gW75agUK+VW`sSMUL=|u1GY>>qp?aF360c-MyOS(S`%`` z+%yobEL2(=P&APmi=sMA1vKTNQs=Do{MXaj&)(Yaw%VAFza^jjp7XA~_IlQS_V3;A zem`bAJ_>so`H!dgy{@;DKmS@kZ;*d`zQw<%@E@3;+t;6C8#m|m(8tLsrBcjb@sf!~?uC!Xz4e_QQ? z+b+Lw@=(#^0X5?r-_o z&k+?r^8E1d`I+(addN#(sjqG4I`Ql;;%of9pwnAlpU0Dz@%Ql9zh5Pu`AK|@zprq5 z>k`LH-9NQ}wp^>f>TPkgep|gQu5a~omVY?jxu0?L^x@~-%>T7|Sf9^-Q4js0|6@Ow z_b>TY#yipf%Gdfc*1tTTE3U1__IQ3le(EQldU||x>f`i>`9^%zR}IbcJ>n0{|8@FF ze(GRZ>34r0Y&^aUufI?~%bq`Oou_{4A#NOR%%2_SlM(+Z`oA{cX7wEL{Fn19`a*wa z`>TB5e(Gnvo;>c*uT`Xe!S%IIL}Y~Sbshq z5l?>NsGs`ye9%0eIM(a&%h!w6toAb+Rr`y6lAmR@GjEg+%uniOIjeto z{H32&-)sYi&;Pu>L_aIvlnKZB<9OVBy{Xr~JRiu*vX>w6JC4U#^BVQjfBHi|d;Yvd z{PuWX(DjPp`4M%n?ESgD9`2`pmOVcDv%{Z=zmxGE*qzD z?Uxud=9$tSwpQ0Z2Fa4|eS_Q@Rkb4*}o>LF&S9sp2=kLUmm-^Wr|DG)Q z$;bVyH_Jb~{z5%tKhw8)e~4enzvK0VsO$>;WW0=%{EVla@4ac*phg=+E1DesSP_ugCH`c}MC4`vvc0yMVLnhd%NEDt zJo|TTygmQ&>o4S8sb`}8`TeZd^DjUCuFtpS`9t3M_S$^j@%%AbbdCPZ^RXQo*_NB* z?eQ^xo}oW${qOP1*JrAZDI;h79KP>py`QoE-p@PN`3&=Nt)81_9{A`#efTGS5&!RQ z_0rdq_Ip$jKVts>5BkIX#IwB~AN}0>crhF=^oQ;A{Bdje_s5B2+54Zb2T?!AJNd`@ zZczy&!#M-_hisRsXX87v#x~ z@kakQU!UspKRrCWpD`cGEBaXZrW|SgzS1A|FYEXI?4571<_+p+ev*IOzssIb2l2D| zKh5!VJY}WCugwSM&vrfec@yeCY5A#R%%6|f#B)FOFz&3feh$}5iL3f5^fTZ3-~aK0 z|Ag^!J&icFSK;~n%sY?dih)ZEdPnGxVB#3zxjSk_Sc#Z zJ%0K9Nc5BKRVDfFwP=E&n@0>|Ks%YWXeqJU$)c7 z8~4}q3*xAMtS90>MnAcqeB{rqp8kyUjm_`R>G5%^>ZyKD89{!w*Ve0e>L-q6i(_$2 z{cG_(|6#{tkB?34`1d#Wo^OPocd~!C>yPjM`8@F_Q?`JI{k*VCVI ze)5@lJ&bqEALG49eC3-mBjd>5PJb>x-VsM#y+5($mA^a1^42HK+LFcm_ZRl>*Vpm8 zU4P7nH_yjQ-7G1uJ-@zh9?v)!caM)-uP6SvjgP!z|0BL0U+VtZdJ)xs)cjwYZ#^`w zf4+<3g?Q?(?bQnD5A}0D`*R%c^7-(3{&+n4YviXM`a^!U$MqQ=FQ|w7tXJi?$CtBH z{$*`G^!yQ5{omeS`F?|WKdFQIdp&!fkL2-7{cHW{`SW<3*F%4*U$sKa|KWNg^|P$- zqj-L|sg*})V-2_cz#Db%btJv^Q7b*`x)00hU+cNFV^e% zqo1#4|5m;!BdCY<+j`gN5A&0LR=;WkIo~*5hJ0;16@K9H(&LwpU+Ssx^c7BTmCw{q zU1NOg-yPo%5cBPActStO&$9P3>fiBvGd%p{*8b|lje0K6>!Cm6d{{o;SdZVEKPtOH zJ=^`y>tn>Tf9T&>f8-w?kEoyZdw(*X{M-90kFRS6wnf2=3h#Q(}S<=hZd^-|{n#wzXS}$Y1aO zKWTB)RqOW^PHzpb=TbNGqle$_=gE}!%=1(K%`@@%vg7?Td3}Talb^cT4*8Grd};Ih zIeYxx`IG1K)WdwB4*K8oM?dQEmw5WgII?S}Kck<+^BwZCT+7e?A&zB_Uw(a@IM(m= z9QJwq9v}68k^Yd6{49HX+^W}Kh^IgFwa4G?1M%c#+2iBZSI$oPm*ci1ZtQ==T_b)w ze_l@}p8ZRH>ZkvFpBVAA{aIaEZT-ANKdGPoP+vu^_)k47si&&r0ANG2BkI(Dv^ZeXD){~Vn-tGCE@Bbto56L^$ zANlKigZzw_^?H9|{$C{jc6_XPo%vJwrk0Uq`?W1D(4XUWKXupssQ9SoQ^arAv+N<` zWjmEVZjWd+&_*t>i_b*e)6)M)nC`^$WMQ$tH;Oj z{$I#n+n+LG%)fm7u;SW!jHhkqI{jSRzdb(A2maw!e9L=lkv`1hsfY3Q{BeBUN&I$y z(g*rO-pbd;+v~~a%j{pqOMGpwuW)+nW7NZZW5uC8s_jo1F~-O7 zJG`HEJ^$YKr^WHI~-aqs8NZ!mw> z^3&h;{Ybwl)a@p*lQ{ET;fzQva6dK8a$jFbJ*>&f%g!}G^{-urok z>VIv2$_l8f*Aw&kmDF?6;^EZp1{8j(<{<`lKx5Rpw{%p^mc)S?CKbiVj(yun|EA!)v z`^WL7&(u@*Pnn7QEia4V@reG9`zuztMnAXv6Z5}bPuY%-{5w8h9M9kP{`+Fb^oM%Z z$Gi9Vit%2a=ik_0zfC{a_8057^OMc@&#+_L^|2kVU+48z>ZcyIzcL?oe81UpKj}Z) zo7KPL`d+Mg{_x`^;&(hg#{PX9{bBylpRxWIG(XEX@{xa~|3{1$59ufM^?v63WWI4f zF0f>KYuBHNTd8MwK1Dp^>Gi~|iTbx6zm~6Wlb?Ee{gMABZcyY(d%D+ z{zx2s>h;9_dV=v*|E7$n?bQk~Kfgmi887v$}{b$+xAM@c2jQ3<}_p~MRyZx2LG4peKKF2EO$-h0`xSsR#EKtH;W%$e_^~V`*>r`9nZh=^$Y5u4)TrlNB;9W`}1+~(;w=dZ?BEJ zjz{9DgC+H~_-E(&iDNm7-#i~6{^pr{{AK%vg3MM)KljJRd1_*>}S@`c-Q*h z>yP)F)$`etSzgwUto_H!$j^MEj;gO>Z$E!Hneq<$x)T3I^4Iof>t&Yu`2g_;)-${w zNBt}-^UC`f=pWZm z?cZ5{o}KrfdTLoKq_>CHv-kbL`TT`?*k9F`DGTZS%<~`WSsQPU&*!J)-;Q6-PhY67 z+S9%thI+W4?XS$wD~HF&{M>Q=ob!kAzN+<)ezNTK=j(CAA6WkbcyiqGGhX`J^Doy! zJlpH>aXsg`d4K5tSby~AmBcgN_587=>VMVS#xd3t@z?1O`Kf2zzfsTSc|Fw4az0-2 z*Y;aIV|*MhZ`z7y{B1kKc&U5LpReyw|5`mg|MK;1`a}L6zkI!d`>Ct)Cs}FVBC*$+G8e~ItIjpu{EOg#CCAN#ZH?Rq^i-Z$^uzejj=GG(RYXFR<>%a31-llA&| zqd)hNpL~p$_2%*Phj{X`?DZ_azEA$KpHa^@=J|;q>&frCApT^^N~weTdi` zSmD#ub3A1N;u%j%TMP1Y|N3}imBEvZ{ClrQ9Z^5^Fn`!i72e*zcX<5m`|D)NO!Tp~ z*Eeu_>n`R4ar9@bCsrJ;KTv@-A@|^sYw~eRQA1iDgzde6=@y6K&$DM` z)PFqX@AQ!+{b3x$)6ez#V~uMZzx0QA@{_lHzt&Up{A_=W-+Mls&v(ebJwKze>(sw} zeK;Rqn9q!tdBBqKwC~T^yT5Lbzxpw?4z^{_AD-`cy(9YbFXsJWf7SkOo7?~WKe6I@ z@~`!$(&vqd{u56Bp|FpWt{P}u4@yvhvS?kvZ!mGCv&;6CRZKuz-81Ihr;XHq1K2s0*YkyQd zapM~G&`;`Li9aTuIO?4*`FtPsFkaT9u3k<)KF;SSaV*(RyWajJ^-w=?EQxQ+W3G=; z$L#(ies6x(`-kz0zOcPsf84r4J@lXL)c9+K81I{jCm(gQtnfVl8NQ#5da0|&$E_Xb zV=>?EoYzDBEBR}@)W06T>>=Y^$^T2#b3En9h^L>7zm5AN%%8RR7I$m0e0_lW*-np- zTf_Hzu>CPU`Z>%`@{i+^9S^k`OJDO8BZJcdGc4iZF_8| z$LIMN@#G_JtY>+?5y!IU&*%H(=lCM7>T87``hH9D-#in?ZsP zIsJSU`=Q1gH-2e8|LF_M9{z&rKVtsW_FEle{@Bt-h(B&|>@VgA{cm;cxc(XMS9zZN zYx7~2f9U7Do>s@LMVt@sc>ij?KVe=E`-}1R{Bi5k%;)Og)FN26U)$%whxZ#ZzFNQH zqy8Q5ACCDyyx)NO$NaIOv-9~j?So#Fmpvi>7@y}q z)IyJpE_nf9;f+sQaY-o_{_4ndd*853kkJ$D7xy*xuE!^#}GZb+erH=V(4&_Ag87XzNw}wf^+@ z>aaI3DQ>>-G4&MgHx2BL3Pu zp8PE7@1ftH*6TU!`C!kVk1y22{^b5~ym9>QIDd%zJFf5L{6Bm?M11}GDF^od_2g%K zjF4pN&OsOEE!K5NBK`Y_mAU^HSU_{UyqOZHhiBp zdD&j?XPmzc?^mD4v%R+7@Olt=S@!t7&o9E~;rb!@$lvSF^NpSRcgOXLIKG~y|J(EV zHDCSiZ(jTw^_)yuDRndddi{C4lb`$P|9t+mJ`C>{BChJI4aD=cC#Yxpc!?FSP!Dy} z|EjC z%h#W&qqbKYi21YQ`e)R$Q2^!_YAzSBpRz5aYYb$C6?&j%~-l$m=y@%!+6oOtT*^~9}f)InfAewMwSxc)GF|2%Ok z{TZJB($A`|Hn4m?OkTFr`C)~odSeP2I8JpCu{7$5V0c)miGuw={IpKd;Nz!pCZ1!Kj-JkzunIm??n7sJ$-*gKR3T`q{rW$ zpMEk<=Ep34$N6)dKMbFLCqLuw`SbCb@pAwA{)#n!f%!@O>+>PEME)Azlz*o#_E-Bp z_8p&Rk37fZXMa%-<@15{_`{y>^!)kyAoZ|)>Sf$LKA+zaPk%P*`7!!KJpCE-?>(Q1 z%C7VLm-?xP?J%DG-=`g(Uu3)|Q+9&9%+LJm>CfeVe`-BG)~x66YxVd1`Fi)fpNzNG zuN9X4p&phMzWd+vJ?#9X_dm9Doqlf5hlu|e@yr+UjrGUl#qfS$;#t3sH;+erIIx~8 z)KmSQG9&e{y|$ftzPT3P>xupKW%4t>$jfq;zxsJHWhS;WjyLW<&v@7JXO`2SSr7A# zc;?%fKhO8be_%g{$KUn*;nnc{y2R6;t@`O7ed_TspNH>nA^$ku7j(XK^!KLR;z?Ul zcl9^#zV&nY_+76jRvezclbuxw%_E_kP|g&X-<6J(aI*XRJT3kL?`q4&U}3Uon4PNq=g7&H7aB z$$zhExE{`YsPWeddH!(tcn>>&?(;J|-~4{{9-oib)U!5T;@kIo?D#z0@_Z&A^RC+S z|LOf>Y_C0^{W0d}+VMjC%`Tk%pdn(Vt!V=Z9VGh{Yl>r zuV?x5r{raRWR<5sW4w27|0sUP`Bglg z?zsNB_xWawtDe6z-xw!L`ZfQ&2L0iF`rG>%`}a=zPk#2-7@uo0pSR;9|2O9Oshef5 zCm!$q5&5|uLfp#y9F9lE%lLc#I9}ey{GopGv+VIv|HXOz>-|~wmiV!r*wT*qAMp=x z{#^TKY8AI7<8R0Bj`}0djd_2lzqZ#l*B14Bs_t)fuwJhx&mZV#^`pg){m(5hAJ+C4 z`EQ=t`}`>K50BU6Td8Nq_2+zir~aD1ZM-%99OkW`%h#8vqxxI%@%-y&=K0s-m;GTs zv0kOm8=q!Au>Fnx+{OMSp8PCXpU)RifAwR^4UhHY^AYOVj*mRU^FivU`f_u(ex_H{ z!+fLO+Fr%SjZZV)<0ae zkK_HV^k;kj?)5Fsx9_2!aX$8$ zc|WOp9B)*1gZSukHGm<2Ul(ApiFKTzCgwjF}5&>l*o~XFWb1@9vz(QxD6YJ{~W2 zd_E}Fe3t!1z4T+uAN4$Wcs+X`Pa}T#J~8?;_CM-BKd*=SSK{mVV!Y&M$@**Ww;^sV z|Gb~X*Rpn4?q9AKZO@10_ir$cv7Wv2A?mp}?B<(pc@ zww%R(mi))GAn~UBK^k)J%5LKxSxEi*X!AP{*dQC)X(uq-m(7J(iQ3< zp7By&uP1ID&(FuGpZq=k^q8YOTsSfCX4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam z=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam=ztFB zfDY(@4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@ z4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4(Nam=ztFBfDY(@4t(D_ zaHbuDR;ul?x@5_Gi*Z<}}`0l^?kttSr$+=7Kf8T?Ddm;RE z-CN;D|5w;sR>Lk_I^F)u-~FCP&pq7jF{f4zF&fBKO- zj_!ZShps;L@^gF2ydK+s`MGype#d*yz4Lt!y?b$Jzw+mw{m^N-Z@KjOAI*jw{qRl- z9~690@Ik@jUk7wR2XsIObU+7mKnHX{2XsIObU+7mKnHX{2XsIObU+7mKnHX{2XsIO zbU+7mKnHX{2XsIObU+7mKnHX{2XsIObU+7mKnHX{2XsIObU+7mKnHX{2XsIObU+7m zKnHX{2XsIObU+7mKnHX{2VOh}e)q1&zI5-mpF87m=yB+A_~IRh9)BKx9)BKxI-mnO zpaVLf13I7sI-mnOpaVLf13I7sI-mnOpaVLf13I7sI-mnOpaVLf13I7sI-mnOpaVLf z13I7sI-mnOpaVLf13I7sI-mnOpaVLf13I7sI-mnOpaVLf13I7sI-mnOpaVLf13I7s zI-mnOpaVLf13I7sI-mnOpaVLf13I7sI-mnOpaVLf13I7sI-mnOpaVLf13I7sI-mnO zpaVLf13I7sI-mnO@Zve}tB?J~C+~ja^Zt9^0nv-MA9PR$b Date: Fri, 8 Jan 2021 09:37:46 -0500 Subject: [PATCH 11/21] refactored for seamless integration of gender identification based on ML classifier in _init_ modified init so auto-detect gender if not provided --- gender_analysis/character.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index b41d5bc4..41ca3954 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -25,8 +25,11 @@ def __init__(self, name, document, gender=None, nicknames=[]): # maybe need to t :param nicknames: a list of strings of other references of that character, optional""" self.name = name self.document = document # change to an array of documents - self.gender = gender self.nicknames = nicknames + if gender: + self.gender = gender + self.gender = self.get_char_gender() # not sure if I could write like this + def __str__(self): character = self.name + ' in ' + str(self.document) From b308a9ca0345a686a721986fa46b635424c86218 Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Fri, 8 Jan 2021 10:31:51 -0500 Subject: [PATCH 12/21] created first pass for character_pos similar to gender_pos, character_pos gets the pos words for a given character --- gender_analysis/analysis/character_pos.py | 89 +++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 gender_analysis/analysis/character_pos.py diff --git a/gender_analysis/analysis/character_pos.py b/gender_analysis/analysis/character_pos.py new file mode 100644 index 00000000..d641358a --- /dev/null +++ b/gender_analysis/analysis/character_pos.py @@ -0,0 +1,89 @@ +from more_itertools import windowed +import nltk + +from gender_analysis.common import ADJ_TAGS, ADV_TAGS, PROPER_NOUN_TAGS, VERB_TAGS +from gender_analysis import common +pos_dict = {'adj': ADJ_TAGS, 'adv': ADV_TAGS, + 'proper_noun': PROPER_NOUN_TAGS, "verb": VERB_TAGS} + +# I've migrated functions from gender_pos to here and modify them for character, but maybe should +# add new functions in gender_pos instead + +# first pass on character adj based on gender pos +def find_char_pos(pos_to_find, char_to_find, word_window=5): + # pylint: disable=too-many-locals + """ + Takes in a document, a valid part-of-speech, and a Gender to look for, + and returns a dictionary of words that appear within a window of 5 words around each identifier. + + :param document: Document + :param pos_to_find: A valid part of speech tag from pos_dict: ['adj','adv','proper_noun','verb'] + :param word_window: number of words to search for in either direction of a gender instance + :param char_to_find: Character + :return: dict of words that appear around pronouns mapped to the number of occurrences + + >>> from gender_analysis import document + >>> from pathlib import Path + >>> from gender_analysis import common + >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': \ + '1966', 'filename': 'test_text_7.txt', 'filepath': Path(common.TEST_DATA_PATH, \ + 'document_test_files', 'test_text_7.txt')} + >>> scarlett = document.Document(document_metadata) + >>> find_gender_pos(scarlett, 'adj', common.MALE, genders_to_exclude=[common.FEMALE]) + {'handsome': 3, 'sad': 1} + + """ + output = {} + text = char_to_find.document.get_tokenized_text() + + if pos_to_find in pos_dict.keys(): + pos_tags = pos_dict[pos_to_find] + else: + return "Invalid part of speech" + # rewrite based on character class + identifiers_to_find = [char_to_find.name] + [char_to_find.nicknames] # identifiers: names and nicknames + + for words in windowed(text, 2 * word_window + 1): + if not words[word_window].lower() in identifiers_to_find: + continue + if bool(set(words)): + continue + + words = list(words) + for index, word in enumerate(words): + words[index] = word.lower() + + tags = nltk.pos_tag(words) + for tag_index, _ in enumerate(tags): + if tags[tag_index][1] in pos_tags: + word = words[tag_index] + if word in output.keys(): + output[word] += 1 + else: + output[word] = 1 + + return output + + +def find_char_adj(char_to_find, word_window=5): + # pylint: disable=too-many-locals + """ + Takes in a document and a Character to look for, and returns a dictionary of adjectives that + appear within a window of 5 words around each identifier + :param char_to_find: Character + :param word_window: number of words to search for in either direction of a gender instance + :return: dict of adjectives that appear around pronouns mapped to the number of occurrences + + >>> from gender_analysis import document + >>> from pathlib import Path + >>> from gender_analysis import common + >>> document_metadata = {'author': 'Hawthorne, Nathaniel', 'title': 'Scarlet Letter', 'date': \ + '1966', 'filename': 'test_text_7.txt', 'filepath': Path(common.TEST_DATA_PATH, \ + 'document_test_files', 'test_text_7.txt')} + >>> scarlett = document.Document(document_metadata) + >>> find_gender_adj(scarlett, common.MALE, genders_to_exclude=[common.FEMALE]) + {'handsome': 3, 'sad': 1} + + """ + + return find_char_pos('adj', char_to_find, word_window) From d9e76bfc703c5f93a677e2746cc5a51456e77f87 Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Fri, 8 Jan 2021 16:01:55 -0500 Subject: [PATCH 13/21] tuned character.py to make it include gender obj instead of strings --- gender_analysis/character.py | 11 +++++++---- gender_analysis/gender.py | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index 41ca3954..e64a1e56 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -8,9 +8,12 @@ from sklearn.metrics import confusion_matrix, classification_report from sklearn.linear_model import LogisticRegression from sklearn.svm import SVC +# need to get nonbinary training data +from gender_analysis.common import MALE as male, FEMALE as female, NONBINARY as nonbinary # load SVM classifier for gender detection -loaded_model = pickle.load(open('gender_classifier.sav', 'rb')) +# loaded_model = pickle.load(open('gender_classifier.sav', 'rb')) + class Character: """ @@ -132,7 +135,7 @@ def ascii_mean(name): return np.array(ascii_list).mean() @property - def get_char_gender(self): + def get_char_gender(self): # just binary for now! Need to add more customizability! """Use ML model to predict the gender of a character based on name return: a string indicating the gender of the character (i.e. 'Female'). If gender has been defined, then return the original gender. @@ -155,9 +158,9 @@ def get_char_gender(self): svc_op = loaded_model.predict(ndf.iloc[:, 1:].values) gender = svc_op[0] if gender == 'F': # currently only supports binary classes 'F' or 'M', need to add others - self.gender = 'Female' + self.gender = female else: - self.gender = 'Male' + self.gender = male return gender def get_char_adjectives(self): # don't know if this should be put to the analysis folder diff --git a/gender_analysis/gender.py b/gender_analysis/gender.py index 89075d82..865a3e56 100644 --- a/gender_analysis/gender.py +++ b/gender_analysis/gender.py @@ -1,5 +1,7 @@ from gender_analysis.pronouns import PronounSeries + + class Gender: """ Defines a gender that will be operated on in analysis functions From e046ef1f4fc2e36ed4c6df4f0b604db657b001df Mon Sep 17 00:00:00 2001 From: DocEon Date: Tue, 2 Feb 2021 11:39:19 -0500 Subject: [PATCH 14/21] Bugbash 1 Trying to isolate the three bugs we're working on! --- gender_analysis/character.py | 71 +++++++++++++++++++----------------- requirements.txt | 5 ++- 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index e64a1e56..ed5d2a7d 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -1,4 +1,3 @@ -from gender_analysis import document import pickle import pandas as pd import sklearn @@ -27,12 +26,13 @@ def __init__(self, name, document, gender=None, nicknames=[]): # maybe need to t :param gender: a gender object which is optional :param nicknames: a list of strings of other references of that character, optional""" self.name = name - self.document = document # change to an array of documents + self.document = document # change to an array of documents self.nicknames = nicknames - if gender: - self.gender = gender - self.gender = self.get_char_gender() # not sure if I could write like this - + self.gender = gender + if not gender: + print("Test") + new_gender = self.get_char_gender() + print(new_gender) def __str__(self): character = self.name + ' in ' + str(self.document) @@ -87,11 +87,13 @@ def get_overall_popularity(self, document): popularity += 1 return popularity - def get_staged_popularity(self, stage=10): # future work: make vis! + def get_staged_popularity(self, stage=10): + # future work: make vis! """return a list of length stage of the popularity of the character in that stage return: a list of counts of length stage, similar to get_overall_popularity""" all_text = self.document.get_tokenized_text() - splitted = self.split_list(all_text,num=stage) #not sure if I could do it with static method + splitted = self.split_list(all_text, num=stage) + # not sure if I could do it with static method staged = [] for t in splitted: staged.append(self.get_overall_popularity(splitted)) @@ -134,36 +136,39 @@ def ascii_mean(name): ascii_list = [ord(x) for x in name] return np.array(ascii_list).mean() - @property - def get_char_gender(self): # just binary for now! Need to add more customizability! - """Use ML model to predict the gender of a character based on name + def get_char_gender(self): + # just binary for now! Need to add more customizability! + """ + Use ML model to predict the gender of a character based on name return: a string indicating the gender of the character (i.e. 'Female'). If gender has been defined, then return the original gender. - Update Character object with a gender""" - if self.gender: + Update Character object with a gender + """ + if self.gender is not None: return self.gender - name_list = [self.name] - ndf = pd.DataFrame([], columns=['name', 'ascii_value', 'name_len', - 'num_vowels', 'num_consonents', 'last_letter_vowel', - ]) - ndf['name'] = name_list - ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) - ndf['name_len'] = ndf['name'].apply(lambda x: len(x)) - ndf['num_vowels'] = ndf['name'].apply(lambda x: self.letter_class(x)[0]) - ndf['num_consonents'] = ndf['name'].apply(lambda x: self.letter_class(x)[1]) - ndf['last_letter_vowel'] = ndf['name'].apply( - lambda x: 1 if x[-1] in ['a', 'e', 'i', 'o', 'u'] else 0) - ndf['ends_with_a'] = ndf['name'].apply(lambda x: 1 if x[-1] == 'a' else 0) - ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) - svc_op = loaded_model.predict(ndf.iloc[:, 1:].values) - gender = svc_op[0] - if gender == 'F': # currently only supports binary classes 'F' or 'M', need to add others - self.gender = female else: - self.gender = male - return gender + name_list = [self.name] + ndf = pd.DataFrame([], columns=['name', 'ascii_value', 'name_len', + 'num_vowels', 'num_consonents', 'last_letter_vowel', + ]) + ndf['name'] = name_list + ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) + ndf['name_len'] = ndf['name'].apply(lambda x: len(x)) + ndf['num_vowels'] = ndf['name'].apply(lambda x: self.letter_class(x)[0]) + ndf['num_consonents'] = ndf['name'].apply(lambda x: self.letter_class(x)[1]) + ndf['last_letter_vowel'] = ndf['name'].apply( + lambda x: 1 if x[-1] in ['a', 'e', 'i', 'o', 'u'] else 0) + ndf['ends_with_a'] = ndf['name'].apply(lambda x: 1 if x[-1] == 'a' else 0) + ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) + svc_op = loaded_model.predict(ndf.iloc[:, 1:].values) + gender = svc_op[0] + if gender == 'F': # currently only supports binary classes 'F' or 'M', need to add others + self.gender = female + else: + self.gender = male + return gender - def get_char_adjectives(self): # don't know if this should be put to the analysis folder + def get_char_adjectives(self): # don't know if this should be put to the analysis folder name = self.name pass diff --git a/requirements.txt b/requirements.txt index 140aef65..42d0c10e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,6 +12,7 @@ pylint requests seaborn scipy +sklearn wordcloud -coverage==5.3 -pytest==6.0.2 +coverage==5.4 +pytest==6.2.2 From 00c6ce24ff880116e244e64c9f7e35470c0a84a3 Mon Sep 17 00:00:00 2001 From: DocEon Date: Tue, 2 Feb 2021 17:18:22 -0500 Subject: [PATCH 15/21] Bug bashing! Making this function, doing some minor linting. --- gender_analysis/character.py | 29 ++++++++++++----------------- gender_analysis/document.py | 14 +++++++++----- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index ed5d2a7d..8fda5d44 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -1,17 +1,12 @@ import pickle import pandas as pd -import sklearn import numpy as np # Libraries for building classifiers - do I need to import those? -from sklearn.model_selection import train_test_split -from sklearn.metrics import confusion_matrix, classification_report -from sklearn.linear_model import LogisticRegression -from sklearn.svm import SVC # need to get nonbinary training data -from gender_analysis.common import MALE as male, FEMALE as female, NONBINARY as nonbinary +from gender_analysis.common import MALE, FEMALE # load SVM classifier for gender detection -# loaded_model = pickle.load(open('gender_classifier.sav', 'rb')) +loaded_model = pickle.load(open('gender_analysis/gender_classifier.sav', 'rb')) class Character: @@ -19,7 +14,7 @@ class Character: Defines a character that will be operated on in analysis functions """ - def __init__(self, name, document, gender=None, nicknames=[]): # maybe need to try/except? + def __init__(self, name, document, gender=None, nicknames=[]): # maybe need to try/except? """Initializes a character object which is associated with a document object :param name: a string of the name of the character :param document: a document object where the character exists @@ -30,9 +25,7 @@ def __init__(self, name, document, gender=None, nicknames=[]): # maybe need to t self.nicknames = nicknames self.gender = gender if not gender: - print("Test") - new_gender = self.get_char_gender() - print(new_gender) + self.gender = self.get_char_gender() def __str__(self): character = self.name + ' in ' + str(self.document) @@ -72,7 +65,7 @@ def get_overall_popularity(self): popularity += 1 return popularity - def get_overall_popularity(self, document): + def get_overall_popularity(self): """return the count of all occurrences of the character name and nicknames throughout the document gives more flexibility compared with the other get_overall_popularity func to customize @@ -81,9 +74,10 @@ def get_overall_popularity(self, document): # all_text = document.get_tokenized_text() this should be ideal but doesn't work with # current settings names = [self.name] + self.nicknames + lowered_names = [name.lower() for name in names] popularity = 0 - for t in document: - if t in names: + for t in self.document.get_tokenized_text(): + if t in lowered_names: popularity += 1 return popularity @@ -146,6 +140,7 @@ def get_char_gender(self): """ if self.gender is not None: return self.gender + else: name_list = [self.name] ndf = pd.DataFrame([], columns=['name', 'ascii_value', 'name_len', @@ -162,10 +157,10 @@ def get_char_gender(self): ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) svc_op = loaded_model.predict(ndf.iloc[:, 1:].values) gender = svc_op[0] - if gender == 'F': # currently only supports binary classes 'F' or 'M', need to add others - self.gender = female + if gender == 'F': # currently only supports binary classes 'F' or 'M' + gender = FEMALE else: - self.gender = male + gender = MALE return gender def get_char_adjectives(self): # don't know if this should be put to the analysis folder diff --git a/gender_analysis/document.py b/gender_analysis/document.py index a1b4e226..19817053 100644 --- a/gender_analysis/document.py +++ b/gender_analysis/document.py @@ -639,14 +639,18 @@ def update_metadata(self, new_metadata): setattr(self, key, new_metadata[key]) def get_char_list(self): - '''given a document object, find a list of characters with their frequency in the novels - input: a document object - output: a list of tuples with character names in descending sorted order that occurs - more than 10 times in the document''' + """ + given a document object, find a list of characters with their frequency in the novels + input: a document object + output: a list of tuples with character names in descending sorted order that occurs + more than 10 times in the document + """ + labels_char = [] labels = 'FACILITY,GPE,GSP,LOCATION,ORGANIZATION,PERSON' #this could be changed later document = self._load_document_text() - for sent in nltk.sent_tokenize(document): + sentences = nltk.sent_tokenize(document) + for sent in sentences: for chunk in nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize(sent))): if hasattr(chunk, 'label'): # print(type(chunk.label()), chunk.label(), ' '.join(c[0] for c in chunk)) From 1656655a094376228e96a9f1bcc78a20fa50f124 Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Thu, 4 Feb 2021 14:34:12 -0500 Subject: [PATCH 16/21] fixed unable to load model error and get char list --- gender_analysis/character.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index ed5d2a7d..35f658d3 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -11,7 +11,7 @@ from gender_analysis.common import MALE as male, FEMALE as female, NONBINARY as nonbinary # load SVM classifier for gender detection -# loaded_model = pickle.load(open('gender_classifier.sav', 'rb')) +loaded_model = pickle.load(open('gender_analysis/gender_classifier.sav', 'rb')) class Character: @@ -81,6 +81,8 @@ def get_overall_popularity(self, document): # all_text = document.get_tokenized_text() this should be ideal but doesn't work with # current settings names = [self.name] + self.nicknames + for n in names: + n = n.lower() popularity = 0 for t in document: if t in names: From e94481c9fa2ebeff498f8076b6bf9926c81c4ee4 Mon Sep 17 00:00:00 2001 From: Ken Alba Date: Mon, 8 Feb 2021 19:52:26 -0500 Subject: [PATCH 17/21] Adding similarity index stuff Warning: unstable push, just sharing with Funing! Added nickname list checking, similarity_index.py as a framework for other name disambiguation. --- gender_analysis/nickname_list.txt | 776 ++++++++++++++++++++++++++++ gender_analysis/similarity_index.py | 157 ++++++ 2 files changed, 933 insertions(+) create mode 100644 gender_analysis/nickname_list.txt create mode 100644 gender_analysis/similarity_index.py diff --git a/gender_analysis/nickname_list.txt b/gender_analysis/nickname_list.txt new file mode 100644 index 00000000..6fe6189a --- /dev/null +++ b/gender_analysis/nickname_list.txt @@ -0,0 +1,776 @@ +Ab = Abner +Ab = Albert +Abbie = Abigail +Abby = Abigail +Abe = Abel +Abe = Abiel +Abe = Abraham +Abe = Abram +Abram = Abraham +Acer = Acera +Ada = Adeline +Addie = Adelaide +Ag = Agatha +Aggie = Agnes +Aggy = Agatha +Agnes = Agatha +Agnes = Nancy +Agnes = Inez +Al = Alan +Al = Albert +Al = Alexander +Al = Alfred +Al = Allen +Alec = Alexander +Alex = Alexander +Alf = Alfons +Alf = Alfred +Amelia = Emile +Amy = Amanda +Amy = Amelia +Andrl = Andreas +Andy = Andreas +Andy = Andrew +Angie = Angela +Angie = Angeline +Ann = Deanne +Ann = Hannah +Ann = Susanna +Anna = Hannah +Anna = Susanna +Anne = Hannah +Anne = Susanna +Anner = Hannah +Annette = Ann +Annette = Anna +Anni = Anna +Anni = Annika +Annie = Ann +Annie = Anna +Annie = Hannah +Annie = Susanna +Anton = Antonin +Anty = Anastasia +Appy = Apollonia +Archy = Archibald +Arnie = Arnold +Arny = Arnold +Art = Artemis +Art = Arthur +Arty = Arthur +Bab = Barbara +Babe = Mary +Babs = Barbara +Barb = Barbara +Barney = Barnabas +Bart = Bartholomew +Bartl = Bartholomew +Barty = Bartholomew +Bass = Sebastian +Bastl = Sebastian +Bea = Beatta +Bea = Beatrice +Beat = Beatrice +Beattie = Beatrice +Bebe = Beatrice +Becky = Rebecca +Bell = Isabell +Bell = Isabella +Bella = Arabella +Bella = Belinda +Bella = Elizabeth +Bella = Isabel +Bella = Isabella +Bella = Mirabel +Belle = Mabel +Belle = Sybil +Ben = Benedict +Ben = Benjamin +Ben = Ebenezer +Beppe = Giuseppe +Beppl = Josefa +Beppo = Josef +Bern = Bernice +Bert = Egbert +Bertie = Albert +Bertie = Gilbert +Bess = Elizabeth +Bessie = Elizabeth +Beth = Elizabeth +Beto = Alberto +Betsy = Elizabeth +Betty = Elizabeth +Bev = Beverly +Biddy = Obedience +Bill = William +Bob = Robert +Bobbie = Robert +Brook = Brooklyn +Bud = Jack +Burt = Burton +Burt = Egbert +Cal = Caleb +Cal = Calvin +Callie = Caroline +Carrie = Caroline +Carol = Caroline +Cassie = Casalena +Cassie = Cassandra +Cathy = Catherine +Caty = Catherine +Cecily = Cecilia +Charlie = Charles +Cheri = Cheryl +Cherie = Geraldine +Chet = Chester +Chris = Christian +Chris = Christine +Chris = Crystal +Chuck = Charles +Cindy = Cynthia +Cindy = Lucinda +Cissy = Cecilia +Cissy = Clarissa +Claus = Nicholas +Cleat = Cleatus +Clem = Clement +Clem = Clementine +Cliff = Clifford +Cliff = Clifton +Clo = Chloe +Connie = Constance +Connie = Conrad +Connie = Cornelia +Conny = Cornelia +Cora = Corinne +Corky = Courtney +Cory = Cornelius +Creasey = Lucretia +Crissy = Christina +Crissy = Christine +Cy = Cyrus +Cyndi = Cynthia +Daisy = Margaret +Damerl = Thomas +Dan = Daniel +Danny = Daniel +Dave = David +Davy = David +Deb = Deborah +Debbie = Debra +Debby = Deborah +Dee = Deanne +Deedee = Diedre +Delia = Bridget +Delia = Cordelia +Delia = Fidelia +Della = Delilah +Della = Drucilla +Della = Druzilla +Derick = Frederick +Dewey = Duane +Di = Diana +Di = Diane +Dicey = Edith +Dicey = Elizabeth +Dicey = Eurydice +Dicey = Laodicea +Dick = Richard +Didi = Diana +Didi = Diane +Dierk = Diedrich +Dodie = Delores +Dolly = Dorothy +Dolly = Idalia +Dolly = Margaret +Dolly = Martha +Donnette = Donnetta +Dora = Dorothy +Dora = Eudora +Dora = Isadora +Dot = Dorothy +Dotty = Dorothy +Doug = Douglas +Drew = Andrew +Eck = Alexanr +Ed = Edmund +Ed = Edward +Ed = Edgar +Edie = Edith +Effie = Euphemia +Elaine = Eleanor +Eli = Elias +Eli = Elijah +Eli = Elisha +Eliza = Elizabeth +Ella = Eleanor +Ella = Gabriella +Ella = Luella +Ellen = Eleanor +Ellie = Danielle +Ellie = Eleanor +Ellie = Emily +Ellie = Gabriella +Ellie = Luella +Elly = Eleanor +Elly = Elizabeth +Eloise = Heloise +Elsie = Elizabeth +Emily = Emeline +Emma = Emily +Eph = Ephraim +Erma = Emily +Erna = Earnestine +Ernie = Earnest +Ernie = Earnestine +Essie = Esther +Etta = Loretta +Ev = Evangeline +Ev = Evelyn +Eve = Evelyn +Evie = Evelyn +Fan = Frances +Fanny = Frances +Fanny = Veronica +Fate = Lafayette +Fay = Faith +Felty = Valentine +Ferdie = Ferdinand +Fern = Margaret +Ferry = Frank +Ferry = Franz +Ferry = Xaver +Fina = Josephine +Fini = Josefine +Flo = Florence +Flora = Florence +Flossie = Florence +Fonzo = Alfons +Fran = Frances +Frances = Franziska +Frank = Francis +Frank = Franklin +Frankie = Frances +Franzl = Franz +Fred = Ferdinand +Fred = Fredrick +Fred = Frederick +Fred = Gottfried +Freddie = Frederick +Fritz = Frederick +Gab = Gabriel +Gabi = Gabriella +Gabby = Gabrielle +Gabe = Gabriel +Gatty = Gertrude +Gene = Eugene +Gennie = Genevieve +Genny = Gwenevere +Geoff = Geoffrey +Gerry = Gerald +Gertie = Gertrude +Girgl = Georg +Gina = Virginia +Glen = Glenys +Greg = Gregory +Gretl = Margaret +Guiseppe = Joseph +Gus = Augustus +Gus = Gustaf +Gus = Gustav +Gwen = Gwendolyn +Hal = Henry +Ham = Hamilton +Hank = Henry +Hanna = Johanna +Hans = Johan +Hans = Johann +Hans = Johannes +Hansl = Hans +Harley = Harlan +Harry = Harold +Harry = Harriet +Harry = Henry +Harry = Horace +Hattie = Harriet +Helen = Eleanor +Heiner = Heinrich +Heinz = Heinrich +Hester = Esther +Hettie = Henrietta +Hettie = Mehetabel +Hetty = Mehetabel +Hias = Matthias +Hiasl = Matthias +Hilda = Hildegarde +Ibby = Elizabeth +Ibe = Hepzibah +Iggy = Ignatius +Ike = Ira +Issy = Isabella +Issy = Isadora +Jack = John +Jack = Jackson +Jackie = Jacqueline +Jake = Jacob +Jakl = Jakob +Jamie = James +Jan = Jennifer +Jane = Janet +Jane = Virginia +Janet = Jane +Jed = Jedediah +Jeff = Jeffrey +Jennifer = Winifred +Jen = Jane +Jennie = Jane +Jenny = Genevieve +Jenny = Jennifer +Jennie = Virginia +Jeremy = Jeremiah +Jerry = Jeremiah +Jerry = Jerold +Jerry = Gerald +Jill = Julia +Jim = James +Jimmy = James +Jo = Joanna +Joe = Joseph +Joey = Joseph +Johnny = John +Jon = Jonathan +Jos = Josef +Josh = Joshua +Joshua = Jasper +Josie = Josephine +Joy = Joyce +Judy = Judith +Kata = Katarina +Kate = Catherine +Kathy = Katherine +Kathy = Kathlene +Kati = Katarina +Katie = Katherine +Katie = Katja +Kay = Kathryn +Ken = Kenneth +Kenny = Kenneth +Kissy = Calista +Kit = Christopher +Kitty = Catherine +Klaus = Nicholas +Lafe = Lafayette +Lana = Eleanor +Larry = Lawrence +Lawrey = Lawrence +Len = Leonard +Lena = Florina +Lena = Magdalena +Lena = Paulina +Lena = Pauline +Lance = LeRoy +Lenny = Leonard +Leno = Felipe +Lenora = Eleanor +Leo = Leonard +Leon = Leonard +Les = Leslie +Lettie = Letitia +Lew = Lewis +Liam = William +Libby = Elizabeth +Liddie = Lydia +Lila = Delilah +Lilly = Lydia +Lina = Frances +Lisa = Elisa +Lisl = Elizabeth +Lissa = Elizabeth +Lissi = Elizabeth +Liz = Elizabeth +Liza = Elizabeth +Lizzie = Elizabeth +Lola = Delores +Lora = Loretta +Lorene = Florina +Lorrie = Lorraine +Lottie = Charlotte +Lou = Louis +Lou = Louise +Louie = Louis +Louis = Alois +Lucy = Lucille +Lucy = Lucinda +Lula = Luella +Lulia = Eulalia +Luke = Lukas +Mabel = Mehitable +Maddie = Madeline +Maddy = Madeline +Madge = Margaret +Maggie = Margaret +Maggy = Margaret +Mame = Margaret +Mame = Mary +Mamie = Margaret +Mamie = Mary +Manda = Amanda +Mandy = Amanda +Mandy = Samantha +Manny = Emanuel +Manthy = Samantha +Marce = Marcella +Marcy = Marcia +Marge = Margaret +Marge = Marjorie +Margie = Margaret +Margie = Marjorie +Mare = Maria +Marty = Martha +Marv = Marvin +Mat = Mathew +Matt = Mathew +Matt = Matthias +Mattie = Martha +Maud = Magdalene +Maud = Matilda +Maude = Magdalene +Maude = Matilda +Maury = Maurice +Max = Maximilian +Max = Maxwell +May = Margaret +Meg = Margaret +Mel = Melvin +Mena = Philomena +Merv = Mervin +Meta = Margareta +Michl = Michael +Mick = Michael +Mickey = Michael +Midge = Margaret +Mike = Michael +Millie = Amelia +Millie = Emeline +Millie = Mildred +Milly = Millicent +Milt = Milton +Mimi = Mary +Mimi = Wilhelmina +Mina = Wilhelmina +Mini = Minerva +Minnie = Minerva +Minnie = Philomina +Minnie = Philomine +Mira = Elmira +Mira = Mirabel +Mischa = Michael +Mitch = Mitchell +Moe = Maureen +Moll = Martha +Moll = Mary +Molly = Martha +Molly = Mary +Molly = Magdalena +Mona = Ramona +Moni = Monica +Morey = Morris +Mort = Mortimer +Mort = Morton +Morty = Mortimer +Morty = Morton +Mur = Muriel +Myra = Almira +Nab = Abel +Nabby = Abigail +Nacho = Ignacio +Nadia = Nadine +Nan = Ann +Nan = Hannah +Nan = Joanne +Nan = Nancy +Nana = Ann +Nana = Hannah +Nana = Nancy +Nancy = Ann +Nancy = Anna +Nancy = Agnes +Nancy = Frances +Nannie = Nancy +Nanny = Nancy +Nate = Nathan +Nate = Nathaniel +Nazi = Ignazius +Ned = Edmund +Ned = Edward +Ned = Norton +Neely = Cornelia +Neil = Cornelius +Neil = Edward +Nell = Cornelia +Nell = Eleanor +Nell = Ellen +Nell = Helen +Nellie = Helen +Nelly = Cornelia +Nelly = Eleanor +Nelly = Helen +Nessie = Agnes +Nettie = Annette +Nettie = Jeanette +Netty = Henrietta +Nicie = Eunice +Nick = Dominic +Nick = Nicholas +Nicy = Eunice +Nikki = Nicole +Nina = Ann +Nita = Anita +Nita = Juanita +Noni = Ione +Noni = Nora +Noni = Eleanor +Noni = Elnora +Nora = Eleanor +Nora = Elnora +Nora = Honora +Norm = Norman +Obed = Obediah +Ollie = Oliver +Ora = Aurillia +Ora = Corinne +Pablo = Paul +Pacho = Francisco +Paco = Francisco +Paddy = Patrick +Pam = Pamela +Pancho = Francisco +Pat = Martha +Pat = Matilda +Pat = Patricia +Pat = Patrick +Patsy = Martha +Patsy = Matilda +Patsy = Patricia +Patty = Martha +Patty = Matilda +Patty = Patricia +Peg = Margaret +Peggy = Margaret +Penny = Penelope +Pepa = Josefa +Pepe = José +Peppe = Giuseppe +Percy = Percival +Pete = Peter +Pete = Petr +Phelia = Orphelia +Phil = Philip +Phyl = Phyllis +Polly = Mary +Polly = Paula +Pug = Raymond +Prissy = Priscilla +Prudy = Prudence +Quil = Aquilla +Quillie = Aquilla +Ran = Randall +Randy = Miranda +Randy = Randall +Randy = Randolph +Rasmus = Erasmus +Ray = Raymond +Reba = Rebecca +Reg = Reginald +Reggie = Reginald +Rena = Irene +Rene = Irene +Rich = Richard +Richie = Richard +Rick = Eric +Rick = Frederick +Rick = Garrick +Rick = Patrick +Rick = Richard +Rick = Roderick +Rita = Clarita +Rita = Margaret +Rita = Margarita +Rita = Norita +Rob = Robert +Rod = Roderick +Rod = Rodney +Rod = Rodrigo +Rodie = Rhoda +Ron = Aaron +Ron = Reginald +Ron = Ronald +Ronnie = Veronica +Ronny = Ronald +Ros = Rosanne +Rosie = Rosalind +Rosie = Rose +Rosie = Rosemary +Rosie = Rosetta +Rowena = Rhoana +Roxy = Roxanne +Roy = Leroy +Rudi = Rudolf +Rudy = Rudolph +Russ = Russell +Sadie = Sally +Sadie = Sarah +Sal = Sarah +Sally = Sarah +Sattie = Sarah +Sam = Samuel +Sandy = Alexander +Sandy = Sandra +Sarah = Susan +Schorsch = Georg +Seby = Sebastian +Sena = Sarah +Sene = Asenath +Sena = Sarah +Senga = Agnes +Senie = Asenath +Sepp = Josef +Sepp = Joseph +Seppl = Josef +Sherm = Sherman +Shirley = Charlotte +Si = Cyrus +Si = Matthias +Si = Silas +Sibella = Isabella +Sid = Sidney +Silla = Drusilla +Silla = Priscilla +Silvie = Silvia +Sis = Cecilia +Sis = Frances +Sissi = Elizabeth +Sissy = Cecilia +Sol = Solomon +Stacia = Eustacia +Stacy = Anastasia +Stacy = Eustacia +Stan = Stanislas +Stan = Stanly +Star = Stella +Stasi = Anastasia +Steff = Stefan +Steffl = Stefan +Stella = Estella +Stella = Estelle +Stella = Esther +Steve = Steven +Steven = Stephen +Stew = Stewart +Stophel = Christopher +Sue = Susan +Sue = Suzanne +Sukey = Suzanna +Susan = Sarah +Susan = Susanna +Susie = Susan +Susie = Suzanne +Suzy = Susan +Suzy = Suzanne +Tad = Edward +Tad = Thadeus +Ted = Edmund +Ted = Edward +Ted = Theodore +Teddy = Edward +Teddy = Theodore +Tempie = Temperance +Telly = Aristotle +Tennie = Tennessee +Terry = Theresa +Terza = Theresa +Tess = Elizabeth +Tess = Theresa +Thady = Thaddeus +Theo = Theobald +Theo = Theodore +Tia = Antonia +Tibbie = Isabella +Tilda = Matilda +Tilly = Matilda +Tilly = Otilia +Tim = Timothy +Timmy = Timothy +Tina = Albertina +Tina = Augustina +Tina = Christina +Tina = Christine +Tina = Earnestine +Tina = Justina +Tina = Martina +Tish = Letitia +Tobi = Tobias +Tobi = Tobiah +Toby = Tobias +Tom = Thomas +Toni = Anton +Toni = Antonia +Tony = Anthony +Tony = Anton +Tracy = Theresa +Trina = Katherina +Trixie = Beatrice +Trixie = Beatrix +Traudl = Edeltraud +Trudi = Gertrude +Trudy = Gertrude +Ursie = Ursula +Ursl = Ursula +Ursy = Ursula +Uschi = Ursula +Van = Evangeline +Vangie = Evangeline +Vern = Vernon +Vernie = Veronica +Vi = Viola +Vi = Violet +Vic = Victor +Vicki = Victoria +Vicky = Victoria +Vin = Galvin +Vin = Vincent +Vina = Alvina +Vina = Lavina +Vinny = Vincent +Virg = Virgil +Virgie = Virginia +Viv = Vivian +Vonnie = Yvonne +Vroni = Veronika +Wally = Wallace +Wally = Walter +Walt = Walter +Web = Webster +Wendy = Gwendolen +Wes = Wesley +Wilhemine = Guilelminus +Will = William +William = Guilelmus +Willie = Wilhelmina +Willy = William +Winn = Edwin +Winnie = Edwina +Winnie = Winifred +Woody = Woodrow +Xander = Alexander +Xina = Christina +Yost = Josef +Zac = Isaac +Zach = Zachariah +Zach = Zachary +Zak = Isaac +Zeb = Zebulon +Zed = Zedekiah +Zeke = Ezekiel +Zena = Albertina +Zeph = Zephaniah diff --git a/gender_analysis/similarity_index.py b/gender_analysis/similarity_index.py new file mode 100644 index 00000000..7e05e4d8 --- /dev/null +++ b/gender_analysis/similarity_index.py @@ -0,0 +1,157 @@ +from gender_analysis.character import Character + + +def get_conflated_characters(char_list, document): + + """ +Takes in a list of characters and a document and runs through a human-computer collaboration +to determine which names are nicknames of one another. Creates a dictionary of Character objects. +""" + similarity_dict = {} + conflated_characters = [] + for name in char_list: + similarity_dict[name] = [ + (potential_nickname, get_similarity_index(name, potential_nickname)) for potential_nickname in + char_list] + most_likely_candidates = sorted(similarity_dict[name])[:5] + + print("Select nicknames for ", name, " from the following candidates:") + for n in len(most_likely_candidates): + print(n, ": ", most_likely_candidates[n]) + nickname_indices = input( + "Key in the numbers for nickname matches separated by spaces [e.g. '1 4 5'].").split( + " ") + nicknames = [most_likely_candidates[index][0] for index in nickname_indices] + for n in len(nicknames): + print(n, ": ", nicknames[n]) + canonical_name = nicknames[input( + "Choose the Canonical Name for this character. " + "Ideally, canonical names should be Firstname Lastname with no titles.")] + gender = input("Select a gender for the character, or let the computer take its best guess.") + # Handle this. + + new_character = Character(canonical_name, document, nicknames=[nicknames]) + conflated_characters[canonical_name] = new_character + # We'll want to remove all selected names/nicknames from the character list + # before proceeding in the interest of efficiency. + + return conflated_characters + + +def get_similarity_index(name, potential_nickname): + """ + Takes a canonical name and a potential nickname, calculates a few different similarit indices, conflates them, and returns + a confidence index that determines the likelihood of potential_nickname being a nickname for name. + """ + + total_similarity_index = 0 + + # Each of these indices should give a result between 0 and 1, + # with 0 meaning 'no chance of similarity' and 1 as 'exact match'. + + ngram_word_similarity_index = get_ngram_word_similarity_index(name, potential_nickname) + ngram_char_similarity_index = get_ngram_char_similarity_index(name, potential_nickname) + manual_nickname_checker_index = get_manual_nickname_checker_index(name, potential_nickname) + honorific_similarity_index = get_honorific_similarity_index(name, potential_nickname) + + total_similarity_index = ( + ngram_word_similarity_index + ngram_char_similarity_index + manual_nickname_checker_index + honorific_similarity_index) / 4 + + return total_similarity_index + + +def get_ngram_word_similarity_index(name, potential_nickname): + """ + Takes a canonical name and a potential nickname, calculates how many ngrams within 'name' match within 'potential_nickname'. + Returns a number between 0 and 1. + """ + + nwsi = 0 + + name_ngrams = name.split(" ") + nickname_ngrams = potential_nickname.split(" ") + + for ngram in name_ngrams: + if ngram in nickname_ngrams: + nwsi += 1 + + nwsi = nwsi / len(name_ngrams) + + return nwsi + + +def get_ngram_char_similarity_index(name, potential_nickname): + """ + Takes a canonical name and a potential nickname, calculates how many char-based + ngrams within 'name' match within 'potential_nickname'. + Returns a number between 0 and 1. + """ + + ncsi = 0 + + # compare substrings + return ncsi + +def get_honorific_similarity_index(name, potential_nickname): + """ + Takes a canonical name and potential nickname, checks for honorific similarities, ayda yada. + """ + + hsi = 0 + + return hsi + + +def prepare_nickname_checker(path_to_nickname_list = "gender_analysis/nickname_list.txt"): + """ + Turns the nickname list into a set of checkers. + """ + + nickname_list_raw = open(path_to_nickname_list, "r") + nickname_list = [line for line in nickname_list_raw] + nickname_name_list = [] + for name_pair in nickname_list: + pair = name_pair.split(" = ") + try: + tuple_pair = (pair[0].strip(), pair[1].strip()) + except IndexError: + print(pair, " is an invalid pair.") + nickname_name_list.append(tuple_pair) + + return nickname_name_list + + +def run_nickname_check(char_list): + + char_list_dict = {} + nickname_list = prepare_nickname_checker() + for name in char_list: + char_list_dict[name] = [] + for nickname in char_list: + if name != nickname: + mnci = get_manual_nickname_checker_index(name, nickname, nickname_list) + char_list_dict[name].append((nickname, mnci)) + print(name, "matches", nickname) + + return char_list_dict + +def get_manual_nickname_checker_index(name, potential_nickname, nickname_list): + """ + Takes canonical name and potential nickname, uses handwritten nickname_list to check + for similarities. + """ + + mnci = 0 + if name == potential_nickname: + print("Exact match. Not interesting. mnci = -1") + mnci = -1 + return mnci + + else: + for nick_pair in nickname_list: + if name in nick_pair: + if potential_nickname in nick_pair: + print("Match between ", name, " and ", potential_nickname) + mnci = 1 + + return mnci From 9f7a6f20e2e841f6637193db8bdad4dd93f76d02 Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Mon, 8 Feb 2021 21:07:30 -0500 Subject: [PATCH 18/21] revised char_disambiguation and create_char_objects - refined disambiguation to filter duplicates - create char objects filter duplicates on another level for char clusters --- gender_analysis/character.py | 1 - gender_analysis/document.py | 180 ++++++++++++++++++++++++++++++++--- 2 files changed, 169 insertions(+), 12 deletions(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index e2ab8565..8ddc2d3c 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -1,7 +1,6 @@ import pickle import pandas as pd import numpy as np -# Libraries for building classifiers - do I need to import those? # need to get nonbinary training data from gender_analysis.common import MALE, FEMALE diff --git a/gender_analysis/document.py b/gender_analysis/document.py index 19817053..2a2f1864 100644 --- a/gender_analysis/document.py +++ b/gender_analysis/document.py @@ -13,6 +13,10 @@ from gender_analysis import character from gender_analysis.character import Character +BINARY_HONORIFICS = ['Mr.', 'Mrs.', 'Ms.', 'Miss', 'Madam', 'Lord'] +NEUTRAL_HONORIFICS = ['Mx', 'Dr.'] +HONORIFICS = BINARY_HONORIFICS + NEUTRAL_HONORIFICS + class Document: """ @@ -660,7 +664,7 @@ def get_char_list(self): cat = char_dict[ch[0]] cat[ch[1]] = cat.get(ch[1], 0) + 1 people = char_dict['PERSON'] - people_sorted = [(p, people[p]) for p in people] + people_sorted = [(p, people[p]) for p in people if p not in HONORIFICS] people_sorted = sorted(people_sorted, key=lambda p: p[1], reverse=True) cutoff = len(people_sorted) # index for cutoff threshold of char names, customizable later? for i in range(len(people_sorted)): @@ -669,15 +673,169 @@ def get_char_list(self): break return people_sorted[:cutoff] - def create_char_objects(self, char_list): - """a helper function used in joint with the above get_char_list function - given a list of tuples of char names and frequency in the document, create - a list of char objects using ML gender identification models""" + @staticmethod + def filter_honr(name): + name = name.split(' ') + return [n for n in name if n not in HONORIFICS] + + def char_name_disambiguation(self): + """given a list of char names in a document, group them by potential nicknames + :param a list of character as well as their freq from get_char_list + :return: a list of list of character names and freq where the first one is the name, + followed by nicknames""" + char_list = self.get_char_list() to_return = [] - for char in char_list: - name = char[0] - # gender identification - new_char = Character(name) - to_return.append(new_char) - + for i in range(len(char_list)-1): + char_cluster = [char_list[i]] + for j in range(i+1, len(char_list)): + if set(self.filter_honr(char_list[i][0])).intersection( + set(self.filter_honr(char_list[j][0]))): + char_cluster.append(char_list[j]) + to_return.append(char_cluster) return to_return + + @staticmethod + def get_intersection_measure_index(name,potential_nickname): + '''use set intersections to calculate the similarity measure between the name & nickname''' + pass + + ''''@staticmethod + def get_ngram_word_similarity_index(name, potential_nickname): + """ + Takes a canonical name and a potential nickname, calculates how many ngrams within 'name' match within 'potential_nickname'. + Returns a number between 0 and 1. + """ + + nwsi = 0 + name_ngrams = name.split(" ") + nickname_ngrams = potential_nickname.split(" ") + + for ngram in name_ngrams: + if ngram in nickname_ngrams: + nwsi += 1 + + nwsi = nwsi / len(name_ngrams) + + return nwsi''' + + ''''@staticmethod + def get_similarity_index(name, potential_nickname): + """ + Takes a canonical name and a potential nickname, calculates a few different similarit indices, conflates them, and returns + a confidence index that determines the likelihood of potential_nickname being a nickname for name. + """ + + total_similarity_index = 0 + # Each of these indices should give a result between 0 and 1, with 0 meaning + # 'no chance of similarity' and 1 as 'exact match'. + + ngram_word_similarity_index = get_ngram_word_similarity_index(name, potential_nickname) + #ngram_char_similarity_index = get_ngram_char_similarity_index(name, potential_nickname) + #manual_nickname_checker_index = get_manual_nickname_checker_index(name, potential_nickname) + #honorific_similarity_index = get_honorific_similarity_index(name, potential_nickname) + #total_similarity_index = ( + # ngram_word_similarity_index + ngram_char_similarity_index + manual_nickname_checker_index + honorific_similarity_index) / 4 + total_similarity_index = ngram_word_similarity_index + return total_similarity_index''' + + '''def get_conflated_characters(self,char_list): + + """ + Takes in a list of characters and a document and runs through a human-computer collaboration + to determine which names are nicknames of one another. Creates a dictionary of Character objects. + """ + + similarity_dict = {} + conflated_characters = [] + + for name in char_list: + similarity_dict[name] = [ + (potential_nickname, get_similarity_index(potential_nickname) for name in char_list] + most_likely_candidates = sorted(similarity_dict[name])[:5] + + print("Select nicknames for ", name, " from the following candidates:") + for n in len(most_likely_candidates): + print(n, ": ", most_likely_candidates[n]) + nickname_indices = input( + "Key in the numbers for nickname matches separated by spaces [e.g. '1 4 5'].").split(" ") + + nicknames = [most_likely_candidates[index][0] for index in nickname_indices] + for n in len(nicknames): + print(n, ": ", nicknames[n]) + + canonical_name = nicknames[input( + "Choose the Canonical Name for this character. Ideally, canonical names should be Firstname Lastname with no titles.")] + gender = input("Select a gender for the character, or let the computer take its best guess.") + # Handle this. + + new_character = Character(canonical_name, document, gender=gender_result, nicknames=[nicknames]) + conflated_characters[canonical_name] = new_character + # We'll want to remove all selected names/nicknames from the character list before proceeding in the interest of efficiency. + return conflated_characters''' + + + '''def prepare_nickname_checker(path_to_nickname_list="gender_analysis/nickname_list.txt"): + """ + Turns the nickname list into a set of checkers. + """ + nickname_list_raw = open(path_to_nickname_list, "r") + nickname_list = [line for line in nickname_list_raw] + nickname_name_list = [] + for name_pair in nickname_list: + pair = name_pair.split(" = ") + try: + tuple_pair = (pair[0].strip(), pair[1].strip()) + except IndexError: + print(pair, " is an invalid pair.") + nickname_name_list.append(tuple_pair) + return nickname_name_list + + def run_nickname_check(char_list): + char_list_dict = {} + nickname_list = prepare_nickname_checker() + for name in char_list: + char_list_dict[name] = [] + for nickname in char_list: + if name != nickname: + mnci = get_manual_nickname_checker_index(name, nickname, nickname_list) + char_list_dict[name].append((nickname, mnci)) + print(name, "matches", nickname) + return char_list_dict''' + + '''def get_manual_nickname_checker_index(name, potential_nickname, nickname_list): + """ + Takes canonical name and potential nickname, uses handwritten nickname_list to check + for similarities. + """ + + mnci = 0 + if name == potential_nickname: + print("Exact match. Not interesting. mnci = -1") + mnci = -1 + return mnci + else: + for nick_pair in nickname_list: + if name in nick_pair: + if potential_nickname in nick_pair: + print("Match between ", name, " and ", potential_nickname) + mnci = 1 + return mnci''' + + def create_char_objects(self): + """Creates a list of char objects through calling + char_name_disambiguation, filter out duplicates, and uses ML gender classification models""" + to_return = [] + char_names = set() + char_list = self.char_name_disambiguation() + for char in char_list: + name = char[0][0] + if name in char_names: #duplicates + continue + if len(char)>1: + nicknames = [ch[0] for ch in char[1:]] + new_char = Character(name, self, icknames=nicknames) + # to_return.append(new_char) + else: + new_char = Character(name, self) + to_return.append(new_char) + return to_return From 1fbf6ec1ecd2032448002a7bf4e7d43e92559d76 Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Mon, 8 Feb 2021 21:52:43 -0500 Subject: [PATCH 19/21] fixed make_char_name bugs and refactor --- gender_analysis/character.py | 2 +- gender_analysis/document.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index 8ddc2d3c..ea0f35c7 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -27,7 +27,7 @@ def __init__(self, name, document, gender=None, nicknames=[]): # maybe need to self.gender = self.get_char_gender() def __str__(self): - character = self.name + ' in ' + str(self.document) + character = self.name + str(self.gender) + ' in ' + str(self.document) + 'with ' + 'nicknames: ' + str(self.nicknames) return character def __repr__(self): diff --git a/gender_analysis/document.py b/gender_analysis/document.py index 2a2f1864..a38c8e30 100644 --- a/gender_analysis/document.py +++ b/gender_analysis/document.py @@ -829,12 +829,14 @@ def create_char_objects(self): char_list = self.char_name_disambiguation() for char in char_list: name = char[0][0] - if name in char_names: #duplicates + if name in char_names: continue + char_names.add(name) if len(char)>1: nicknames = [ch[0] for ch in char[1:]] - new_char = Character(name, self, icknames=nicknames) - # to_return.append(new_char) + for n in nicknames: + char_names.add(n) + new_char = Character(name, self, nicknames=nicknames) else: new_char = Character(name, self) to_return.append(new_char) From 949b1bb6a5aa2b9a685b2e79a77108001523f75a Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Tue, 9 Feb 2021 11:21:27 -0500 Subject: [PATCH 20/21] expanded honorifics list and robust gender detection functionality - gender detection module could detect based on honorifics --- gender_analysis/character.py | 41 ++++++++++++++++++++++-------------- gender_analysis/document.py | 25 ++++++++++++++++------ 2 files changed, 44 insertions(+), 22 deletions(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index ea0f35c7..c259475d 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -4,6 +4,7 @@ # need to get nonbinary training data from gender_analysis.common import MALE, FEMALE +from gender_analysis.document import FEMALE_HONORIFICS, MALE_HONORIFICS, HONORIFICS # load SVM classifier for gender detection loaded_model = pickle.load(open('gender_analysis/gender_classifier.sav', 'rb')) @@ -141,25 +142,33 @@ def get_char_gender(self): return self.gender else: - name_list = [self.name] - ndf = pd.DataFrame([], columns=['name', 'ascii_value', 'name_len', + # check the gender based on honorifics first + name = self.name + name_split = name.split(' ') + if name_split[0] in FEMALE_HONORIFICS: + gender = FEMALE + elif name_split[0] in MALE_HONORIFICS: + gender = MALE + else: + name_list = [self.name] + ndf = pd.DataFrame([], columns=['name', 'ascii_value', 'name_len', 'num_vowels', 'num_consonents', 'last_letter_vowel', ]) - ndf['name'] = name_list - ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) - ndf['name_len'] = ndf['name'].apply(lambda x: len(x)) - ndf['num_vowels'] = ndf['name'].apply(lambda x: self.letter_class(x)[0]) - ndf['num_consonents'] = ndf['name'].apply(lambda x: self.letter_class(x)[1]) - ndf['last_letter_vowel'] = ndf['name'].apply( + ndf['name'] = name_list + ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) + ndf['name_len'] = ndf['name'].apply(lambda x: len(x)) + ndf['num_vowels'] = ndf['name'].apply(lambda x: self.letter_class(x)[0]) + ndf['num_consonents'] = ndf['name'].apply(lambda x: self.letter_class(x)[1]) + ndf['last_letter_vowel'] = ndf['name'].apply( lambda x: 1 if x[-1] in ['a', 'e', 'i', 'o', 'u'] else 0) - ndf['ends_with_a'] = ndf['name'].apply(lambda x: 1 if x[-1] == 'a' else 0) - ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) - svc_op = loaded_model.predict(ndf.iloc[:, 1:].values) - gender = svc_op[0] - if gender == 'F': # currently only supports binary classes 'F' or 'M' - gender = FEMALE - else: - gender = MALE + ndf['ends_with_a'] = ndf['name'].apply(lambda x: 1 if x[-1] == 'a' else 0) + ndf['ascii_value'] = ndf['name'].apply(lambda x: self.ascii_mean(x).round(3)) + svc_op = loaded_model.predict(ndf.iloc[:, 1:].values) + gender = svc_op[0] + if gender == 'F': # currently only supports binary classes 'F' or 'M' + gender = FEMALE + else: + gender = MALE return gender def get_char_adjectives(self): # don't know if this should be put to the analysis folder diff --git a/gender_analysis/document.py b/gender_analysis/document.py index a38c8e30..f705a1ed 100644 --- a/gender_analysis/document.py +++ b/gender_analysis/document.py @@ -13,9 +13,22 @@ from gender_analysis import character from gender_analysis.character import Character -BINARY_HONORIFICS = ['Mr.', 'Mrs.', 'Ms.', 'Miss', 'Madam', 'Lord'] -NEUTRAL_HONORIFICS = ['Mx', 'Dr.'] -HONORIFICS = BINARY_HONORIFICS + NEUTRAL_HONORIFICS +FEMALE_HONORIFICS = ["Miss", "Mrs", "Ms", "Mistress", "Madam", "Ma'am", "Dame", + "Lady", "Her Honour", "Her Honor", "My Lady", "Your Ladyship", + "Sr", "Sister", "Sayyidah"] +MALE_HONORIFICS = ["Master", "Mr", "Sir", "Gentleman", "Sire", "Lord", "His Honour", + "His Honor", "My Lord", "Your Lordship", "Master", "Esquire", "Esq", + "His Holiness", "Pope", "His All Holiness", "His Beatitude", "The Reverend", + "Rev", "Fr", "Father", "Pr", "Pastor", "Br", "Brother", "Rabbi", "Imam", + "Mufti", "Sayyid"] +# BINARY_HONORIFICS = ['Mr.', 'Mrs.', 'Ms.', 'Miss', 'Madam', 'Lord'] +NEUTRAL_HONORIFICS = ["Mx", "Excellency", "Excellence", "Your Honor", "The Honorable", + "The Honourable", "The Hon", "Hon", "The Hon'ble", "The Right Honourable", + "The Most Honourable", "Dr", "Doctor", "Professor", "QC", "Cl", "S Cl", + "Counsel", "Senior Counsel", "Eur Ing", "Vice-Chancellor", "Principal", + "President", "Warden", "Dean", "Regent", "Rector", "Provost", "Director", + "Chief Executive", "Venerable", "Eminent"] +HONORIFICS = FEMALE_HONORIFICS + MALE_HONORIFICS + NEUTRAL_HONORIFICS class Document: @@ -821,12 +834,12 @@ def run_nickname_check(char_list): mnci = 1 return mnci''' - def create_char_objects(self): - """Creates a list of char objects through calling + def create_char_objects(self, char_list): + """helper function to use alongside of the name disambiguation + Creates a list of char objects through calling char_name_disambiguation, filter out duplicates, and uses ML gender classification models""" to_return = [] char_names = set() - char_list = self.char_name_disambiguation() for char in char_list: name = char[0][0] if name in char_names: From f049986a78b1bfcdb58a7d822bc478dfaf403425 Mon Sep 17 00:00:00 2001 From: fyang3 <42852118+fyang3@users.noreply.github.com> Date: Thu, 15 Apr 2021 12:01:59 -0400 Subject: [PATCH 21/21] added honorifics for a more comprehensive coverage refactored the code --- gender_analysis/character.py | 18 +++++++++++++++++- gender_analysis/document.py | 21 ++------------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/gender_analysis/character.py b/gender_analysis/character.py index c259475d..e55b1c43 100644 --- a/gender_analysis/character.py +++ b/gender_analysis/character.py @@ -4,10 +4,26 @@ # need to get nonbinary training data from gender_analysis.common import MALE, FEMALE -from gender_analysis.document import FEMALE_HONORIFICS, MALE_HONORIFICS, HONORIFICS +#from gender_analysis.document import FEMALE_HONORIFICS, MALE_HONORIFICS, HONORIFICS # load SVM classifier for gender detection loaded_model = pickle.load(open('gender_analysis/gender_classifier.sav', 'rb')) +FEMALE_HONORIFICS = ["Miss", "Mrs", "Ms", "Mistress", "Madam", "Ma'am", "Dame", + "Lady", "Her Honour", "Her Honor", "My Lady", "Your Ladyship", + "Sr", "Sister", "Sayyidah"] +MALE_HONORIFICS = ["Master", "Mr", "Sir", "Gentleman", "Sire", "Lord", "His Honour", + "His Honor", "My Lord", "Your Lordship", "Master", "Esquire", "Esq", + "His Holiness", "Pope", "His All Holiness", "His Beatitude", "The Reverend", + "Rev", "Fr", "Father", "Pr", "Pastor", "Br", "Brother", "Rabbi", "Imam", + "Mufti", "Sayyid"] +# BINARY_HONORIFICS = ['Mr.', 'Mrs.', 'Ms.', 'Miss', 'Madam', 'Lord'] +NEUTRAL_HONORIFICS = ["Mx", "Excellency", "Excellence", "Your Honor", "The Honorable", + "The Honourable", "The Hon", "Hon", "The Hon'ble", "The Right Honourable", + "The Most Honourable", "Dr", "Doctor", "Professor", "QC", "Cl", "S Cl", + "Counsel", "Senior Counsel", "Eur Ing", "Vice-Chancellor", "Principal", + "President", "Warden", "Dean", "Regent", "Rector", "Provost", "Director", + "Chief Executive", "Venerable", "Eminent"] +HONORIFICS = FEMALE_HONORIFICS + MALE_HONORIFICS + NEUTRAL_HONORIFICS class Character: """ diff --git a/gender_analysis/document.py b/gender_analysis/document.py index f705a1ed..8037a600 100644 --- a/gender_analysis/document.py +++ b/gender_analysis/document.py @@ -11,26 +11,9 @@ from gender_analysis import common from gender_analysis import character -from gender_analysis.character import Character - -FEMALE_HONORIFICS = ["Miss", "Mrs", "Ms", "Mistress", "Madam", "Ma'am", "Dame", - "Lady", "Her Honour", "Her Honor", "My Lady", "Your Ladyship", - "Sr", "Sister", "Sayyidah"] -MALE_HONORIFICS = ["Master", "Mr", "Sir", "Gentleman", "Sire", "Lord", "His Honour", - "His Honor", "My Lord", "Your Lordship", "Master", "Esquire", "Esq", - "His Holiness", "Pope", "His All Holiness", "His Beatitude", "The Reverend", - "Rev", "Fr", "Father", "Pr", "Pastor", "Br", "Brother", "Rabbi", "Imam", - "Mufti", "Sayyid"] -# BINARY_HONORIFICS = ['Mr.', 'Mrs.', 'Ms.', 'Miss', 'Madam', 'Lord'] -NEUTRAL_HONORIFICS = ["Mx", "Excellency", "Excellence", "Your Honor", "The Honorable", - "The Honourable", "The Hon", "Hon", "The Hon'ble", "The Right Honourable", - "The Most Honourable", "Dr", "Doctor", "Professor", "QC", "Cl", "S Cl", - "Counsel", "Senior Counsel", "Eur Ing", "Vice-Chancellor", "Principal", - "President", "Warden", "Dean", "Regent", "Rector", "Provost", "Director", - "Chief Executive", "Venerable", "Eminent"] -HONORIFICS = FEMALE_HONORIFICS + MALE_HONORIFICS + NEUTRAL_HONORIFICS - +from gender_analysis.character import Character +from gender_analysis.character import HONORIFICS class Document: """ The Document class loads and holds the full text and