Creating a hierarchical lexical graph
You may have noticed that the previous output contained more than just acts. Extracting a knowledge graph is often an iterative process. The output of a text splitter often needs additional examination and filtering before creating the nodes and relationships.
In this exercise, you'll filter out this additional information, then use it to create Act nodes that connect to a Play node.
The play_node variable, containing a Node object for the play, has been created for you along with a graph_document variable to hold the new nodes and relationships you'll create.
This exercise is part of the course
Graph RAG with LangChain and Neo4j
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
acts = act_splitter.split_text(romeo_and_juliet)
for i, act in enumerate(acts):
lines = act.strip().split("\n")
# Only include text relating to an act
if lines[0].startswith(____):
print(i, act.strip().split("\n")[0])