def change_synset(wn): mode = None while mode != "a" and mode != "d": mode = input("(A)dd synset/(d)elete synset: ").lower() if mode == "d": synset = enter_synset(wn) reason = input("Reason for deletion with (#IssueNo): ") supersede_synset = enter_synset(wn, "superseding ") if mode == "a": definition = input("Definition: ") lexfile = input("Lexicographer file: ") pos = input( "Part of speech (n)oun/(v)erb/(a)djective/adve(r)b/(s)atellite: " ).lower() if mode == "a": new_id = change_manager.add_synset(wn, definition, lexfile, pos) while True: lemma = input("Add Lemma (blank to stop): ") if lemma: change_manager.add_entry(wn, wn.synset_by_id(new_id), lemma) else: break print("New synset created with ID %s. Add at least one relation:" % new_id) change_relation(wn, new_id) elif mode == "d": change_manager.delete_synset(wn, synset, supersede_synset, reason) return True
def change_entry(wn, change_list): action = input("[A]dd/[D]elete/[M]ove? ").upper() while action != "A" and action != "D" and action != "M": print("Bad action") action = input("[A]dd/[D]elete/[M]ove? ").upper() synset = enter_synset(wn) entries = wn.members_by_id(synset.id) if entries: print("Entries: " + ", ".join(entries)) else: print("No entries") if action == "A": lemma = input("New entry: ") elif action == "D": lemma = input("Entry to remove: ") elif action == "M": lemma = input("Entry to move: ") if action == "A": change_manager.add_entry(wn, synset, lemma, change_list=change_list) elif action == "D": change_manager.delete_entry( wn, synset, "ewn-%s-%s" % (wordnet.escape_lemma(lemma), synset.part_of_speech.value), change_list=change_list) elif action == "M": target_synset = enter_synset(wn, "target ") if synset.lex_name == target_synset.lex_name: change_manager.change_entry(wn, synset, target_synset, lemma, change_list=change_list) else: print( "Moving across lexicographer files so implementing change as delete then add" ) change_manager.delete_entry( wn, synset, "ewn-%s-%s" % (wordnet.escape_lemma(lemma), synset.part_of_speech.value), change_list=change_list) change_manager.add_entry(wn, target_synset, lemma, change_list=change_list) return True
def main(): parser = argparse.ArgumentParser( description="Add or remove an entry from a synset") parser.add_argument('synset', metavar='SYNSET_ID', type=str, help="The ID of the synset to change") parser.add_argument('lemma', metavar='LEMMA', type=str, help="The lemma to change") parser.add_argument('--add', action='store_true', help="Add this relation as a new relation") parser.add_argument('--delete', action='store_true', help="Remove this relation (do not replace or change)") parser.add_argument( '-n', metavar='N', type=int, default=-1, help= "The position of this synset within the list of senses for the entry") parser.add_argument('-i', metavar='IDX', type=int, default=-1, help="The position of this lemma in the synset") args = parser.parse_args() wn = change_manager.load_wordnet() synset = wn.synset_by_id(args.synset) if not synset: print("Could not find synset") sys.exit(-1) if args.add: change_manager.add_entry(wn, synset, args.lemma, args.i, args.n) elif args.delete: change_manager.delete_entry( wn, synset, "ewn-%s-%s" % (change_manager.escape_lemma( args.lemma), synset.part_of_speech.value)) else: print("No action chosen") sys.exit(-1)
def change_synset(wn, change_list): mode = None while mode != "a" and mode != "d": mode = input("(A)dd synset/(d)elete synset: ").lower() if mode == "d": synset = enter_synset(wn) reason = input("Reason for deletion with (#IssueNo): ") while not re.match("\w+.*\(#\d+\)$", reason): print( "Bad reason please state at least one word with the issue number in parentheses, e.g., duplicate (#123)" ) reason = input("Reason for deletion with (#IssueNo): ") supersede_synset = enter_synset(wn, "superseding ") if mode == "a": definition = input("Definition: ") lexfile = input("Lexicographer file: ") pos = input( "Part of speech (n)oun/(v)erb/(a)djective/adve(r)b/(s)atellite: " ).lower() if mode == "a": new_id = change_manager.add_synset(wn, definition, lexfile, pos, change_list=change_list) while True: lemma = input("Add Lemma (blank to stop): ") if lemma: change_manager.add_entry(wn, wn.synset_by_id(new_id), lemma, change_list=change_list) else: break print("New synset created with ID %s. Add at least one relation:" % new_id) change_relation(wn, change_list, new_id) elif mode == "d": change_manager.delete_synset(wn, synset, supersede_synset, reason, change_list=change_list) return True
def main(): parser = argparse.ArgumentParser( description="Add or remove an entry from a synset") parser.add_argument('synset', metavar='SYNSET_ID', type=str, nargs="?", help="The ID of the synset to change") parser.add_argument('lemma', metavar='LEMMA', type=str, nargs="?", help="The lemma to change") parser.add_argument('--add', action='store_true', help="Add this relation as a new relation") parser.add_argument('--delete', action='store_true', help="Remove this relation (do not replace or change)") parser.add_argument( '-n', metavar='N', type=int, default=-1, help= "The position of this synset within the list of senses for the entry") parser.add_argument('-i', metavar='IDX', type=int, default=-1, help="The position of this lemma in the synset") args = parser.parse_args() if args.add: action = "A" elif args.delete: action = "D" else: action = input("[A]dd/[D]elete? ").upper() if action != "A" and action != "D": print("Bad action") sys.exit(-1) wn = change_manager.load_wordnet() if not args.synset: synset_id = "ewn-" + input("Enter synset ID : ewn-") else: synset_id = args.synset synset = wn.synset_by_id(synset_id) entries = wn.members_by_id(synset_id) if entries: print("Entries: " + ", ".join(entries)) else: print("No entries") if not args.lemma: if action == "A": lemma = input("New entry: ") elif action == "D": lemma = input("Entry to remove: ") else: lemma = args.lemma if not synset: print("Could not find synset") sys.exit(-1) if action == "A": change_manager.add_entry(wn, synset, lemma, args.i, args.n) elif action == "D": change_manager.delete_entry( wn, synset, "ewn-%s-%s" % (change_manager.escape_lemma(lemma), synset.part_of_speech.value))
def main(): parser = argparse.ArgumentParser( description="Add or remove an entry from a synset") parser.add_argument('synset', metavar='SYNSET_ID', type=str, nargs="?", help="The ID of the synset to change") parser.add_argument('lemma', metavar='LEMMA', type=str, nargs="?", help="The lemma to change") parser.add_argument('--add', action='store_true', help="Add this entry to a synset") parser.add_argument('--delete', action='store_true', help="Remove this entry from a synset") parser.add_argument('--move', action='store_true', help="Change this entry to another synset") parser.add_argument('--target', type=str, help="The target for a change") parser.add_argument( '-n', metavar='N', type=int, default=-1, help= "The position of this synset within the list of senses for the entry") parser.add_argument('-i', metavar='IDX', type=int, default=-1, help="The position of this lemma in the synset") args = parser.parse_args() if args.add: action = "A" elif args.delete: action = "D" elif args.move: action = "M" else: action = input("[A]dd/[D]elete/[M]ove? ").upper() if action != "A" and action != "D" and action != "M": print("Bad action") sys.exit(-1) wn = change_manager.load_wordnet() if not args.synset: synset_id = "oewn-" + input("Enter synset ID : oewn-") else: synset_id = args.synset synset = wn.synset_by_id(synset_id) entries = wn.members_by_id(synset_id) if entries: print("Entries: " + ", ".join(entries)) else: print("No entries") if not args.lemma: if action == "A": lemma = input("New entry: ") elif action == "D": lemma = input("Entry to remove: ") elif action == "M": lemma = input("Entry to move: ") else: lemma = args.lemma if not synset: print("Could not find synset") sys.exit(-1) if action == "M" and not args.target: args.target = "oewn-" + input("Target synset: oewn-") if action == "A": change_manager.add_entry(wn, synset, lemma, args.i, args.n) elif action == "D": change_manager.delete_entry( wn, synset, "oewn-%s-%s" % (wordnet.escape_lemma(lemma), synset.part_of_speech.value)) elif action == "M": target_synset = wn.synset_by_id(args.target) if not target_synset: print("Could not find synset") sys.exit(-1) if synset.lex_name == target_synset.lex_name: change_manager.change_entry(wn, synset, target_synset, lemma) else: print( "Moving across lexicographer files so implementing change as delete then add" ) change_manager.delete_entry( wn, synset, "oewn-%s-%s" % (wordnet.escape_lemma(lemma), synset.part_of_speech.value)) change_manager.add_entry(wn, target_synset, lemma, args.i, args.n) change_manager.save_all_xml(wn)