CommencezCommencez gratuitement

Créer des segments de texte

Le texte de Roméo et Juliette a été chargé dans un graphe lexical structuré en actes et en scènes, mais il est encore trop volumineux pour produire des embeddings pertinents. Complétez le code pour diviser le texte de l'Acte I, Scène I en plus petits segments, un par réplique.

La fonction visualize_graph() affichera les nœuds et les relations du document de graphe.

Cette activité fait partie du cours

Graph RAG avec LangChain et Neo4j

Voir le cours

Instructions de l’exercice

  • Ajoutez chaque line_node à l'objet graph_document.
  • Créez les relations HAS_LINE et SPOKEN_BY entre chaque scene et line_node, puis entre line_node et character, respectivement, et ajoutez-les à graph_document.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

graph_document = GraphDocument(nodes=[scene], relationships=[])
characters = {}

for i, line in enumerate(lines[20:40]): 
    character, text = get_character_and_line(line)

    line_node = Node(type="Line", id=f"{scene.id}-line-{i}", properties={"raw": line,"character": character, "text": text, "caption": f"{text[:15]}..."})

    if character not in characters:
        character_node = Node(type="Character", id=character, properties={"name": character})
        characters[character] = character_node
        graph_document.nodes.append(character_node)

    # Add nodes to the array
    graph_document.____.append(____)

    # Add relationship to the array
    graph_document.____.extend(
        [Relationship(source=scene, target=line_node, type="____"),
        Relationship(source=line_node, target=characters[character], type="SPOKEN_BY")]
    )

visualize_graph(graph_document)
Modifier et exécuter le code