def drop_non_sentiment_words(row, sentiment_words, sep=" "):
    """Drop non sentiment charged words in a string. 
    
    The function returns the intersection of row and sentiment words, 
    leaving row with only sentiment charged words. It's possible to 
    provide a separator.
    
    
    Parameters
    ----------
    row : string 
        a string containing words separated by some separator
    
    sentiment_words : list
        a list containing the sentiment charged words
    
    sep : string, default=  ' '
        the separator of words 


    Returns
    -------
    A string with only sentiment charged words separated by sep
    """

    words = row.split(sep)
    return sep.join([i for i in words if i in sentiment_words])