(doc_spans, cur_span_index, position)
return cur_span_index == best_span_index
Check if this is the 'max context' doc span for the token.
Check if this is the 'max context' doc span for the token.
Check if this is the max context doc span for the token .
def _check_is_max_context(doc_spans, cur_span_index, position):
  """Check if this is the 'max context' doc span for the token."""

  # Because of the sliding window approach taken to scoring documents, a single
  # token can appear in multiple documents. E.g.
  #  Doc: the man went to the store and bought a gallon of milk
  #  Span A: the man went to the
  #  Span B: to the store and bought
  #  Span C: and bought a gallon of
  #  ...
  #
  # Now the word 'bought' will have two scores from spans B and C. We only
  # want to consider the score with "maximum context", which we define as
  # the *minimum* of its left and right context (the *sum* of left and
  # right context will always be the same, of course).
  #
  # In the example the maximum context for 'bought' would be span C since
  # it has 1 left context and 3 right context, while span B has 4 left context
  # and 0 right context.
  best_score = None
  best_span_index = None
  for (span_index, doc_span) in enumerate(doc_spans):
    end = doc_span.start + doc_span.length - 1
    if position < doc_span.start:
      continue
    if position > end:
      continue
    num_left_context = position - doc_span.start
    num_right_context = end - position
    score = min(num_left_context, num_right_context) + 0.01 * doc_span.length
    if best_score is None or score > best_score:
      best_score = score
      best_span_index = span_index

  return cur_span_index == best_span_index
def _check_is_max_context ( doc_spans , cur_span_index , position ) : # Because of the sliding window approach taken to scoring documents, a single # token can appear in multiple documents. E.g. #  Doc: the man went to the store and bought a gallon of milk #  Span A: the man went to the #  Span B: to the store and bought #  Span C: and bought a gallon of #  ... # # Now the word 'bought' will have two scores from spans B and C. We only # want to consider the score with "maximum context", which we define as # the *minimum* of its left and right context (the *sum* of left and # right context will always be the same, of course). # # In the example the maximum context for 'bought' would be span C since # it has 1 left context and 3 right context, while span B has 4 left context # and 0 right context. best_score = None best_span_index = None for ( span_index , doc_span ) in enumerate ( doc_spans ) : end = doc_span . start + doc_span . length - 1 if position < doc_span . start : continue if position > end : continue num_left_context = position - doc_span . start num_right_context = end - position score = min ( num_left_context , num_right_context ) + 0.01 * doc_span . length if best_score is None or score > best_score : best_score = score best_span_index = span_index return cur_span_index == best_span_index