def METHOD_NAME(self, query, texts):
    """
    Explains the importance of each input token in text for a list of queries.
    Args:
        query: input query
        texts: list of text
    Returns:
        list of {"id": value, "text": value, "score": value, "tokens": value} covering each input text element
    """
    # Explain results
    results = []
    # Parse out similar clauses, if necessary
    if self.database:
        # Parse query
        query = self.database.parse(query)
        # Extract query from similar clause
        query = " ".join([" ".join(clause) for clause in query["similar"]]) if "similar" in query else None
    # Return original texts if query, text or score not present
    if not query or not texts or "score" not in texts[0] or "text" not in texts[0]:
        return texts
    # Calculate result per input text element
    for result in texts:
        text = result["text"]
        tokens = text if isinstance(text, list) else text.split()
        # Create permutations of input text, masking each token to determine importance
        permutations = []
        for i in range(len(tokens)):
            data = tokens.copy()
            data.pop(i)
            permutations.append([" ".join(data)])
        # Calculate similarity for each input text permutation and get score delta as importance
        scores = [(i, result["score"] - np.abs(s)) for i, s in self.embeddings.similarity(query, permutations)]
        # Append tokens to result
        result["tokens"] = [(tokens[i], score) for i, score in sorted(scores, key=lambda x: x[0])]
        # Add data sorted in index order
        results.append(result)
    # Sort score descending and return
    return sorted(results, key=lambda x: x["score"], reverse=True)