title: Python: reducing cyclomatic complexity
body: <p>I need help in reducing the cyclomatic complexity of the following code:    </p>
  
  <pre><code>def avg_title_vec(record, lookup):
      avg_vec = []
      word_vectors = []
      for tag in record['all_titles']:
          titles = clean_token(tag).split()
          for word in titles:
              if word in lookup.value:
                  word_vectors.append(lookup.value[word])
      if len(word_vectors):
          avg_vec = [
              float(val) for val in numpy.mean(
                  numpy.array(word_vectors),
                  axis=0)]
  
      output = (record['id'],
                ','.join([str(a) for a in avg_vec]))
      return output
  </code></pre>
  
  <p>Example input:  </p>
  
  <pre><code>record ={'all_titles': ['hello world', 'hi world', 'bye world']}
  
  lookup.value = {'hello': [0.1, 0.2], 'world': [0.2, 0.3], 'bye': [0.9, -0.1]}
  
  def clean_token(input_string):
      return input_string.replace("-", " ").replace("/", " ").replace(
      ":", " ").replace(",", " ").replace(";", " ").replace(
      ".", " ").replace("(", " ").replace(")", " ").lower()
  </code></pre>
  
  <p>So all the words that are present in the lookup.value, I am taking average of the their vector form.</p>