<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def write_screen_name_to_topics(filepath, user_label_matrix, node_to_id, id_to_name, label_to_lemma, lemma_to_keyword, separator=","):
 """ Writes a user name and associated topic names per row. """

    user_label_matrix = spsp.coo_matrix(user_label_matrix)

    shape = user_label_matrix.shape
    nnz = user_label_matrix.getnnz()

    row = user_label_matrix.row
    col = user_label_matrix.col
    data = user_label_matrix.data

    name_to_topic_set = defaultdict(set)

    for edge in range(row.size):
        node = row[edge]
        user_twitter_id = node_to_id[node]
        name = id_to_name[user_twitter_id]

        label = col[edge]
        lemma = label_to_lemma[label]
        # topic = lemma_to_keyword[lemma]

        name_to_topic_set[name].add(lemma)

    with open(filepath, "w") as f:
        # Write metadata.
        file_row = "n_rows:" + separator + str(shape[0]) + separator +\
                   "nnz:" + separator + str(nnz) + separator +\
                   "\n"
        f.write(file_row)

        for name, topic_set in name_to_topic_set.items():
            file_row = list()
            file_row.append(name)
            file_row.extend(topic_set)
            file_row = separator.join(file_row) + "\n"
            f.write(file_row)