def similar(x,y):
    """
    function that checks for the similarity between the words of
    two strings. 
    
    :param x: first string
    :param y: second string
    
    :return: returns a float number which is the result of the 
     division of the length of the intersection between the two strings' 
     words by the length of their union.
     """
    result = ''
    x_list = x.split() # convert string to a list for parsing
    x_list = [word.lower() for word in x_list] # transform all words to lowercase
    x_list =  list(set(x_list)) # list of  of words that appear at least one in x_list
    
    y_list = y.split() # convert string to a list for parsing
    y_list = [word.lower() for word in y_list] # transform all words to lowercase
    y_list =  list(set(y_list)) # list of words that appear at least one in y_list

    intersection = [word for word in x_list if word in y_list] # obtain the common words between x_list and y_list
    union = list(set(x_list).union(y_list)) # words that appear in both lists as well as their common ones
    result = float(len(intersection) / len(union) ) # find the coefficient of their similarity
    return result