import networkx as nx
from nltk.corpus import wordnet

def mind_expansion(concept):
    """
    Generate 5 related concepts and score by novelty.

    Args:
        concept (str): The input concept.

    Returns:
        tuple: A tuple containing the most novel concept to explore next and its novelty score.
    """
    G = nx.Graph()
    G.add_node(concept)
    synsets = wordnet.synsets(concept)

    for s in synsets:
        for lemma in s.lemmas():
            if lemma.name() not in G.nodes():
                G.add_node(lemma.name())
                G.add_edge(concept, lemma.name())

    related_concepts = []
    for n in G.neighbors(concept):
        if n != concept and n not in [c[0] for c in related_concepts]:
            related_concepts.append((n, len(list(G.neighbors(n)))))

    novel_concepts = [c for c in related_concepts if c[1] < 5]
    novel_concepts.sort(key=lambda x: x[1], reverse=True)

    most_novel = novel_concepts[0][0]
    novelty_score = len([n for n, _ in novel_concepts if n != most_novel])

    return most_novel, novelty_score