| from sftp import SpanPredictor | |
| # Specify the path to the model and the device that the model resides. | |
| # Here we use -1 device, which indicates CPU. | |
| predictor = SpanPredictor.from_path( | |
| '/home/gqin2/public/release/sftp/0.0.2/framenet/model.tar.gz', # MODIFY THIS | |
| cuda_device=-1, | |
| ) | |
| # Input sentence could be a string. It will be tokenized by SpacyTokenizer, and the tokens will be returned | |
| # along with the predictions. | |
| input1 = "Bob saw Alice eating an apple." | |
| print("Example 1 with input:", input1) | |
| output1 = predictor.predict_sentence(input1) | |
| output1.span.tree(output1.sentence) | |
| # Input sentence might already be tokenized. In this situation, we'll respect the tokenization. | |
| # The output will be based on the given tokens. | |
| input2 = ["Bob", "saw", "Alice", "eating", "an", "apple", "."] | |
| print('-'*20+"\nExample 2 with input:", input2) | |
| output2 = predictor.predict_sentence(input2) | |
| output2.span.tree(output2.sentence) | |
| # To be efficient, you can input all the sentences as a whole. | |
| # Note: The predictor will do batching itself. | |
| # Instead of specifying the batch size, you should specify `max_tokens`, which | |
| # indicates the maximum tokens that could be put into one batch. | |
| # The predictor will dynamically batch the input sentences efficiently, | |
| # and the outputs will be in the same order as the inputs. | |
| output3 = predictor.predict_batch_sentences([input1, input2], max_tokens=512) | |
| print('-'*20+"\nExample 3 with both inputs:") | |
| for i in range(2): | |
| output3[i].span.tree(output3[i].sentence) | |
| # For SRL, we can limit the decoding depth if we only need the events prediction. (save 13% time) | |
| # And can possibly limit #spans to speedup. | |
| predictor.economize(max_decoding_spans=20, max_recursion_depth=1) | |
| output4 = predictor.predict_batch_sentences([input2], max_tokens=512) | |
| print('-'*20+"\nExample 4 with input:", input2) | |
| output4[0].span.tree(output4[0].sentence) | |