def get_structure_from_gismo_cluster(gismo, cluster, depth=3):
    """
    Builds a tree structure from Gismo clusterising method.
    Args:
        gismo: A `Gismo` object used for the clustering.
        cluster: The root Cluster of the tree, returned by `gismo.get_clustered_features`
    Returns:
        A `dict` representing the tree structure.
    """

    if depth == 0:
        members = [gismo.embedding.features[indice] for indice in cluster.members]
        return {
            "members": members,
            "title": [
                         gismo.embedding.features[i]
                         for i in gismo.diteration.y_order
                         if gismo.embedding.features[i] in members
                     ][:10],
            "text": "",
            "centroid": sum([gismo.embedding.query_projection(member)[0] for member in members]),  # word_centroid
            "siblings_centroids": list(),
            "children": []
        }

    members = [gismo.embedding.features[indice] for indice in cluster.members]
    return {
        "members": members,
        "title": [
                     gismo.embedding.features[i]
                     for i in gismo.diteration.y_order
                     if gismo.embedding.features[i] in members
                 ][:10],
        "text": "",
        "centroid": sum([gismo.embedding.query_projection(member)[0] for member in members]),  # word_centroid
        "siblings_centroids": list(),
        "children": [get_structure_from_gismo_cluster(gismo, c, depth - 1) for c in cluster.children]
    }