class_docstr: Main data class: encapsulate list of utterances, mentions and speakers
  Process utterances to extract mentions and pre-compute mentions features
docstr: Features for pair of mentions (same speakers, speaker mentioned, string match)
docstr_tok: ["Features","for","pair","of","mentions","(","same","speakers",",","speaker","mentioned",",","string","match",")"]
code: def get_pair_mentions_features(self, m1, m2):
      """Features for pair of mentions (same speakers, speaker mentioned, string match)"""
      features_ = {
          "00_SameSpeaker": 1
          if self.consider_speakers and m1.speaker == m2.speaker
          else 0,
          "01_AntMatchMentionSpeaker": 1
          if self.consider_speakers and m2.speaker_match_mention(m1)
          else 0,
          "02_MentionMatchSpeaker": 1
          if self.consider_speakers and m1.speaker_match_mention(m2)
          else 0,
          "03_HeadsAgree": 1 if m1.heads_agree(m2) else 0,
          "04_ExactStringMatch": 1 if m1.exact_match(m2) else 0,
          "05_RelaxedStringMatch": 1 if m1.relaxed_match(m2) else 0,
          "06_SentenceDistance": m2.utterances_sent
          - m1.utterances_sent,
          "07_MentionDistance": m2.index - m1.index - 1,
          "08_Overlapping": 1
          if (
              m1.utterances_sent == m2.utterances_sent
              and m1.end > m2.start
          )
          else 0,
          "09_M1Features": m1.features_,
          "10_M2Features": m2.features_,
          "11_DocGenre": self.genre_,
      }
      pairwise_features = [
          np.array(
              [
                  features_["00_SameSpeaker"],
                  features_["01_AntMatchMentionSpeaker"],
                  features_["02_MentionMatchSpeaker"],
                  features_["03_HeadsAgree"],
                  features_["04_ExactStringMatch"],
                  features_["05_RelaxedStringMatch"],
              ]
          ),
          encode_distance(features_["06_SentenceDistance"]),
          encode_distance(features_["07_MentionDistance"]),
          np.array(features_["08_Overlapping"], ndmin=1),
          m1.features,
          m2.features,
          self.genre,
      ]
      return (features_, np.concatenate(pairwise_features, axis=0))
  
imports: import re
  import io
  from six import string_types, integer_types
  from spacy.tokens import Span, Token
  from neuralcoref.train.compat import unicode_
  from neuralcoref.train.utils import encode_distance, parallel_process
  import spacy
  import numpy
label_desc: Use image node_id 12 for calling the Document obj's underlying member method code with example usage: obj.get_pair_mentions_features(m1, m2) and returns: features_,  np