code: def make_compound_word(self, start_index, how_many):
          
          if not self.quiet:
              compound_word = ""
              for word in self.unit_list[start_index:start_index + how_many]:
                  compound_word += " " + word.text
              print compound_word.strip(), "-->","_".join(compound_word.split())
  
          #combine text
          for other_unit in range(1, how_many):
              self.unit_list[start_index].original_text.append(self.unit_list[start_index + other_unit].text)
              self.unit_list[start_index].text += "_" + self.unit_list[start_index + other_unit].text
  
          #start time is the same. End time is the end time of the LAST word
          self.unit_list[start_index].end_time = self.unit_list[start_index + how_many - 1].end_time
  
          #shorten unit_list
          self.unit_list = self.unit_list[:start_index + 1] + self.unit_list[start_index + how_many:]
docs: Combines two Units in self.unit_list to make a compound word token.
  
          :param int start_index: Index of first Unit in self.unit_list to be combined
          :param int how_many: Index of how many Units in self.unit_list to be combined.
  
          Modifies:
                  - self.unit_list: Modifies the Unit corresponding to the first word
                      in the compound word. Changes the .text property to include .text
                      properties from subsequent Units, separted by underscores. Modifies
                      the .original_text property to record each componentword separately.
                      Modifies the .end_time property to be the .end_time of the final unit
                      in the compound word.  Finally, after extracting the text and timing
                      information, it removes all units in the compound word except for the
                      first.
  
          .. note: This method is only used with semantic processing, so we don't need to worry
              about the phonetic representation of Units.