class_docstr: takes as input a string or a list of words and checks if it is inside p_e_m
  if yes it returns the candidate entities otherwise it returns None.
  it also checks if string.lower() inside p_e_m and if string.lower() inside p_e_m_low
class_docstr_tok: ["takes","as","input","a","string","or","a","list","of","words","and","checks","if","it","is","inside","p_e_m","if","yes","it","returns","the","candidate","entities","otherwise","it","returns","None",".","it","also","checks","if","string.lower","(",")","inside","p_e_m","and","if","string.lower","(",")","inside","p_e_m_low"]
code: def __init__(self, p_e_m_data_path="data/basic_data/p_e_m_data/"):
      print("Reading p_e_m dictionaries")
      # return
      wall_start = time.time()
      self.lower_org = []
      self.lower_lower = []
      self.p_e_m = pickle.load(
          open(os.path.join(p_e_m_data_path, "p_e_m_dict.pickle"), "rb")
      )
      self.p_e_m_lower = pickle.load(
          open(
              os.path.join(p_e_m_data_path, "p_e_m_lower_dict.pickle"),
              "rb",
          )
      )
      self.mention_total_freq = pickle.load(
          open(
              os.path.join(
                  p_e_m_data_path, "mention_total_freq.pickle"
              ),
              "rb",
          )
      )
      print(
          "The reading took:",
          (time.time() - wall_start) / 60,
          " minutes",
      )
  
file_path: BLINK/blink/candidate_retrieval/dataset.py
imports: import re
  import pickle
  import os
  import time
  import numpy
label_desc: Use image node_id 1 to create a new FetchCandidateEntities object from inherited base classes: object with example: obj = FetchCandidateEntities(p_e_m_data_path)