import re


def keyword_score(title, desc, keywords):
  """Return match score for column title:desc given keyword list.
  
  Args:
    title: str of column title
    desc: str of column description
    keywords: list of keywords to match
  Returns:
    int of weighted keyword matches
  """
  score = 0
  title_words = set(re.split("[^a-z]+", title.lower()))
  desc_words = set(re.split("[^a-z]+", desc.lower()))
  score += 2.0 * len(keywords & title_words)
  score += 1.0 * len(keywords & desc_words)
  return score