class_docstr: The UnitConversion logic adapter parse inputs to convert values
  between several metric units.
  
  For example:
      User: 'How many meters are in one kilometer?'
      Bot: '1000.0'
  
  :kwargs:
      * *language* (``object``) --
      The language is set to ``chatterbot.languages.ENG`` for English by default.
class_docstr_tok: ["The","UnitConversion","logic","adapter","parse","inputs","to","convert","values","between","several","metric","units",".","For","example",":","User",":","'How","many","meters","are","in","one","kilometer","?","'","Bot",":","'1000.0'",":","kwargs",":","*","*","language","*","(","``","object","``",")","--","The","language","is","set","to","``","chatterbot.languages.ENG","``","for","English","by","default","."]
code: def process(
      self, statement, additional_response_selection_parameters=None
  ):
      response = Statement(text="")
      input_text = statement.text
      try:
          # Use the result cached by the process method if it exists
          if input_text in self.cache:
              response = self.cache[input_text]
              self.cache = {}
              return response
  
          for pattern, func in self.patterns:
              p = pattern.match(input_text)
              if p is not None:
                  response = func(p)
                  if response.confidence == 1.0:
                      break
      except Exception:
          response.confidence = 0.0
      finally:
          return response
  
file_path: ChatterBot/chatterbot/logic/unit_conversion.py
imports: from chatterbot.logic import LogicAdapter
  from chatterbot.conversation import Statement
  from chatterbot.exceptions import OptionalDependencyImportError
  from chatterbot import languages
  from chatterbot import parsing
  from mathparse import mathparse
  import re
label_desc: Use image node_id 6 for calling the UnitConversion obj's underlying member method code with example usage: obj.process(statement, additional_response_selection_parameters) and returns: response, response