Exemple #1
0
 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]
Exemple #2
0
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)
Exemple #3
0
 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]