Mulai sekarangMulai gratis

Membuat potongan teks

Teks dari Romeo and Juliet telah dimuat ke dalam sebuah grafik leksikal dengan struktur Act dan Scene, tetapi teksnya masih terlalu besar untuk menghasilkan embedding yang bermakna. Lengkapi kode untuk membagi teks dari Act I, Scene I menjadi potongan yang lebih kecil untuk setiap baris.

Fungsi visualize_graph() akan menampilkan node dan relationship dalam dokumen grafik.

Latihan ini merupakan bagian dari kursus

Graph RAG dengan LangChain dan Neo4j

Lihat Kursus

Instruksi latihan

  • Tambahkan setiap line_node ke objek graph_document.
  • Buat relationship HAS_LINE dan SPOKEN_BY masing-masing antara setiap scene dan line_node, serta antara line_node dan character, lalu tambahkan ke graph_document.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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)
Edit dan Jalankan Kode