code: private boolean termsContainDesired(Set<String> terms)
  	{
  		if (terms.isEmpty()) return false;
  		if (featureSubstring.length == 0) return true;
  
  		for (String term : terms)
  		{
  			for (String sub : featureSubstring)
  			{
  				if (term.contains(sub)) return true;
  			}
  		}
  		return false;
  	}
docs: Checks if any element in the set contains the term.
  @param terms changed terms
  @return true if any changed terms contains a desired substring