简介
人类擅长自然语言,却不擅长数字;计算机擅长数字,却不擅长自然语言。那么,我们如何将计算机用于需要理解自然语言的任务呢?假设有一个包含电影的 Neo4j 数据库,如果您的兴趣是用文字表达的,我们如何查询它以找出最符合您兴趣的电影?例如,哪些电影是关于对美国意大利黑手党的探索
?哪些电影与一个罪犯因爱而改变
有关?哪些电影彼此相似?
Neo4j 的向量索引允许您检索与其他节点和关系相似,或与给定文本提示相关的节点和关系。然而,向量索引不适用于自然语言表达的文本:它们需要将文本转换为数字列表。这些列表称为嵌入,它们试图用数值编码文本的含义。通过向量索引,数据库可以根据图实体的嵌入快速匹配它们。
例如,下图显示了电影卑鄙的我
的标题和情节及其对应的嵌入。

本教程使用推荐数据集,其中包含电影以及执导或参演这些电影的人物。
您将了解如何设置环境,在电影节点上创建嵌入(包括使用免费和开源库以及外部 AI 提供商),创建向量索引,以及根据大致描述或相似电影查询数据库中的电影。
本指南有以下要求:
-
一个运行中的 Neo4j 实例 >= 5.13 —— 如果您没有,请在本地安装 Neo4j 或注册一个Aura 云实例。
-
对 Cypher 有一定了解 —— 如果您是新手,请查阅入门 → Cypher®。
-
python
及其一些基础知识。 -
(可选)如果您打算使用外部 AI 提供商生成嵌入,则需要其中一个提供商的 API 密钥。
您应始终使用相同的模型为数据集生成嵌入:选择一个并在本教程中始终使用它来生成所有嵌入。 |