Allennlp Text Label Prediction Function

  • Share this:

Code introduction


This function uses the Allennlp library to predict the label of a given text. It first loads a pre-trained model and vocabulary. Then, it splits the input text into words and finds the index of each word in the vocabulary. Next, it creates an instance and passes it to the model for prediction. Finally, it returns the predicted label.


Technology Stack : Allennlp, Vocabulary, Model, Instance, Predictor

Code Type : The type of code

Code Difficulty : Intermediate


                
                    
import random
import allennlp.predictors.predictor
from allennlp.data.vocabulary import Vocabulary
from allennlp.models import Model
from allennlp.data import Instance

def random_predictor(input_text, model_path):
    # Load a pre-trained model
    vocab = Vocabulary.from_file('vocab.json')
    model = Model.load(model_path, vocab)
    
    # Create an instance for the input text
    instance = Instance.from_tensor_dict({
        'input_tokens': input_text.split(),
        'input_ids': [vocab.get_token_index(token) for token in input_text.split()],
        'segment_ids': [0] * len(input_text.split())
    })
    
    # Predict using the model
    predictor = allennlp.predictors.predictor.Predictor(model, vocab)
    prediction = predictor.predict(instance)
    
    return prediction['label']