LoslegenKostenlos starten

Text in Chunks aufteilen

Der Text aus Romeo and Juliet wurde in einen lexikalischen Graphen mit einer Struktur aus Akten und Szenen geladen, aber der Text ist noch zu groß, um sinnvolle Embeddings zu erzeugen. Vervollständige den Code, um den Text aus Akt I, Szene I zeilenweise in kleinere Chunks zu splitten.

Die Funktion visualize_graph() zeigt die Knoten und Beziehungen im Graph-Dokument an.

Diese Übung ist Teil des Kurses

<Kurs>Graph RAG mit LangChain und Neo4j</Kurs>
Kurs ansehen

Übungsanweisungen

  • Hänge jeden line_node an das Objekt graph_document an.
  • Erstelle HAS_LINE- und SPOKEN_BY-Beziehungen jeweils zwischen scene und line_node sowie zwischen line_node und character, und füge sie zu graph_document hinzu.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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)
Code bearbeiten und ausführen