code: def get_context_overlap(context, question):
      """Get the context overlap.
  
      :param context: The context.
      :type context: str
      :param question: The question.
      :type question: str
      :return: The context overlap.
      :rtype: float
      """
      global nlp
      if nlp is None:
          nlp = spacy.load("en_core_web_sm")
  
      doc_q = nlp(question)
      doc_c = nlp(context)
  
      # get tokens in base form
      tokens_q = set(
          [token.lemma_ for token in doc_q if is_base_token(token)]
      )
      tokens_c = set(
          [token.lemma_ for token in doc_c if is_base_token(token)]
      )
  
      intersection = tokens_q.intersection(tokens_c)
  
      # size of intersection token set / size of question token set
      overlap_ratio = len(intersection) / len(tokens_q)
  
      return round(overlap_ratio, 3)
  
file_path: responsible-ai-toolbox/responsibleai_text/responsibleai_text/utils/feature_extractors.py
imports: import re
  from typing import List, Optional, Union
  import pandas
  import spacy
  from negspacy.termsets import termset
  from tqdm import tqdm
  from nlp_feature_extractors import attribute_extractors
  from responsibleai_text.common.constants import ModelTask, QuestionAnsweringFields
label_desc: Use image node_id 10 for calling a global function with example usage: get_context_overlap(context, question) and returns: round