docstr: The ATIRE BM25 variant uses an idf function which uses a log(idf) score. To prevent negative idf scores,
  this algorithm also adds a floor to the idf value of epsilon.
  See [Trotman, A., X. Jia, M. Crane, Towards an Efficient and Effective Search Engine] for more info
  :param query:
  :return:
docstr_tok: ["The","ATIRE","BM25","variant","uses","an","idf","function","which","uses","a","log","(","idf",")","score",".","To","prevent","negative","idf","scores",",","this","algorithm","also","adds","a","floor","to","the","idf","value","of","epsilon",".","See","[","Trotman",",","A.",",","X.","Jia",",","M.","Crane",",","Towards","an","Efficient","and","Effective","Search","Engine","]","for","more","info",":","param","query",":",":","return",":"]
code: def get_scores(self, query):
      """
      The ATIRE BM25 variant uses an idf function which uses a log(idf) score. To prevent negative idf scores,
      this algorithm also adds a floor to the idf value of epsilon.
      See [Trotman, A., X. Jia, M. Crane, Towards an Efficient and Effective Search Engine] for more info
      :param query:
      :return:
      """
      score = np.zeros(self.corpus_size)
      doc_len = np.array(self.doc_len)
      for q in query:
          q_freq = np.array(
              [(doc.get(q) or 0) for doc in self.doc_freqs]
          )
          score += (self.idf.get(q) or 0) * (
              q_freq
              * (self.k1 + 1)
              / (
                  q_freq
                  + self.k1
                  * (1 - self.b + self.b * doc_len / self.avgdl)
              )
          )
      return score
  
imports: from nboost.plugins import Plugin
  from nboost.delegates import ResponseDelegate
  from nboost.database import DatabaseRow
  import numpy
  from multiprocessing import Pool, cpu_count
  import math
  from nltk.stem import PorterStemmer
  from nltk.tokenize import word_tokenize
  from nltk.corpus import stopwords
  import nltk
label_desc: Use image node_id 3 for calling the BM25Okapi obj's underlying member method code with example usage: obj.get_scores(query) and returns: score