始める無料で始める

抽出したエンティティの活用

テキストの 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)
コードを編集して実行