def test_dependency_parsing(self): predictor = pretrained.biaffine_parser_stanford_dependencies_todzat_2017() sentence = """He ate spaghetti with chopsticks.""" result = predictor.predict_json({"sentence": sentence}) # Note that this tree is incorrect. We are checking here that the decoded # tree is _actually a tree_ - in greedy decoding versions of the dependency # parser, this sentence has multiple heads. This test shouldn't really live here, # but it's very difficult to re-create a concrete example of this behaviour without # a trained dependency parser. assert result['words'] == ['He', 'ate', 'spaghetti', 'with', 'chopsticks', '.'] assert result['pos'] == ['PRP', 'VBD', 'NNS', 'IN', 'NNS', '.'] assert result['predicted_dependencies'] == ['nsubj', 'root', 'dobj', 'prep', 'pobj', 'punct'] assert result['predicted_heads'] == [2, 0, 2, 2, 4, 2]
def main(args): if args.tagger == "srl": model = srl_with_elmo_luheng_2018() tagger_function = model.predict elif args.tagger == "oie": model = open_information_extraction_stanovsky_2018() tagger_function = lambda sentence: model.predict_json( {"sentence": sentence}) elif args.tagger == "dep": model = biaffine_parser_stanford_dependencies_todzat_2017() tagger_function = lambda sentence: get_verb_info_from_graph( get_nx_graph_from_dep(model.predict(sentence))) else: raise RuntimeError(f"Unknown tagger type: {args.tagger}") if args.include_coref: coref_model = neural_coreference_resolution_lee_2017() else: coref_model = None if args.verbose: logging.basicConfig(level=logging.INFO) make_files_for_semparse(args.data_files_path, args.output_path, tagger_function, coref_model)
def test_dependency_parsing(self): predictor = pretrained.biaffine_parser_stanford_dependencies_todzat_2017( ) sentence = """He ate spaghetti with chopsticks.""" result = predictor.predict_json({"sentence": sentence}) # Note that this tree is incorrect. We are checking here that the decoded # tree is _actually a tree_ - in greedy decoding versions of the dependency # parser, this sentence has multiple heads. This test shouldn't really live here, # but it's very difficult to re-create a concrete example of this behaviour without # a trained dependency parser. assert result["words"] == [ "He", "ate", "spaghetti", "with", "chopsticks", "." ] assert result["pos"] == ["PRP", "VBD", "NNS", "IN", "NNS", "."] assert result["predicted_dependencies"] == [ "nsubj", "root", "dobj", "prep", "pobj", "punct", ] assert result["predicted_heads"] == [2, 0, 2, 2, 4, 2]