Kom igångKom igång gratis

Skapa textbitar

Texten från Romeo och Julia har laddats in i ett lexikalt graf med en struktur av akter och scener, men texten är fortfarande för stor för att generera meningsfulla inbäddningar. Komplettera koden för att dela upp texten från Akt I, Scen I i mindre bitar – en per replik.

Funktionen visualize_graph() visar noderna och relationerna i grafdokumentet.

Den här övningen är en del av kursen

Graph RAG med LangChain och Neo4j

Visa kurs

Övningsinstruktioner

  • Lägg till varje line_node i graph_document-objektet.
  • Skapa HAS_LINE- och SPOKEN_BY-relationer mellan varje scene och line_node, respektive mellan line_node och character, och lägg till dem i graph_document.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod