抽出したエンティティの活用
テキストの Dramatis Personæ(登場人物一覧)セクションには、戯曲に登場する人物が記載されており、信頼できる網羅的な情報源と見なせます。この情報には、登場人物同士の人間関係に関する豊富な手掛かりも含まれます。
Dramatis Personæ
ESCALUS, Prince of Verona.
MERCUTIO, kinsman to the Prince, and friend to Romeo.
PARIS, a young Nobleman, kinsman to the Prince.
Page to Paris.
character_chain を使って personae テキストから登場人物を抽出し、そのリストを使って relationship_chain によりテキストから関係性のリストを構築するよう、コードを完成させてください。
visualize_families() 関数は、得られた関係性をグラフで表示します。
この演習はコースの一部です
Graph RAG with LangChain and Neo4j
演習の手順
personaeを渡してcharacter_chainを呼び出し、登場人物エンティティを抽出します。- 3人のキャラクター名、
personae、そして抽出したキャラクターの JSON 形式(character_json)をrelationship_chainに渡し、3人とpersonaeに記載されたキャラクターとの関係を抽出します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Extract characters from the personae variable
output = character_chain.____({"personae": ____})
character_json = dumps([dict(character) for character in output.characters])
# Extract the relationships
for character_name in ["Romeo", "Juliet", "Friar Lawrence"]:
relationship_output = relationship_chain.invoke({
"character_name": character_name,
"personae": ____,
"characters": ____
})
for relationship in relationship_output.relationships:
all_relationships.append(relationship)
visualize_families(all_relationships, output)