def extract_category_names(df):
    """Extracts multiple category names of target variables from input dataframe.

    Args:
    df: Input dataframe containing target variables

    Returns:
    Target variable (column) names in a string array
    """

    # Define the filtering columns not belong to target variable column names
    filter_cols = ['index', 'id', 'message', 'original', 'genre']
    
    # Find all columns which do not belong to the filtering columns
    category_names = []
    for col in df.columns.values:
        if col not in filter_cols:
            category_names.append(str(col))
            
    return category_names