moods_affinity.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:LyricsMoodClassifier 作者: valeriaalampi 项目源码 文件源码
def relevant_moods(song):
    """
    :param song: single song document, taken from a previously filled queue
    :return moods: list of relevant moods
    """
    all_moods = song['moods']

    if len(all_moods) == 0:
        return None

    ordered_score_moods = sorted(all_moods.items(), key=lambda x: x[1], reverse=True)
    # pprint(ordered_score_moods)
    ordered_scores = sorted(all_moods.values(), reverse=True)

    # print(ordered_scores)

    features = np.asarray(ordered_scores)
    codebook, distortion = kmeans(features, 2)
    codebook = sorted(codebook.tolist(), reverse=True)

    moods = []

    for m in ordered_score_moods:
        mood = m[0]
        score = m[1]
        if len(codebook) > 1:
            if abs(score - codebook[0]) < abs(score - codebook[1]):
                moods.append(mood)
            else:
                continue
        else:
            moods.append(mood)

    # print(moods)
    return moods

# ### Quering the DB to retrieve the songs moods

# create a shared queue for all songs
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号