首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

教程:使用 Chroma 和 OpenAI 构建自定义问答机器人

在最初为学院奖构建问答机器人时,我们实现了基于一个自定义函数的相似性搜索,该函数计算两个向量之间的余弦距离。我们将用一个查询替换掉该函数,以在Chroma中搜索存储的集合。...这与本教程中提到的步骤相同。 步骤1 - 准备数据集 从 Kaggle 下载奥斯卡奖数据集,并将 CSV 文件移到名为 data 的子目录中。...例如,在 dataframe 的前两行中, “text” 列具有以下值: Austin Butler got nominated under the category, actor in a leading...这将成为吸收数据时生成嵌入的默认机制。 让我们将 Pandas dataframe 中的文本列转换为可以传递给 Chroma 的 Python 列表。...本教程演示了如何利用诸如 Chroma 之类的向量数据库来实现检索增强生成(RAG),以通过额外的上下文增强提示。

51110

在几秒钟内将数千个类似的电子表格文本单元分组

但是在庞大的数据集中呢?如何梳理成千上万的文本条目并将类似的实体分组?...BurgerKing应该是两个单词,但计算机会将其视为一个单词。因此,当计算文档术语矩阵时,这些术语将不匹配。 N-gram是一种将字符串分成较小块的方法,其中块N大小。...第10行从legal_name数据集的列中提取唯一值,并将它们放在一维NumPy数组中。 在第14行,编写了用于构建5个字符N-Grams的函数。使用正则表达式过滤掉一些字符。...步骤二:使用余弦相似度计算字符串之间的接近度 余弦相似度是0和1之间的度量,用于确定类似字符串的长度,而不管它们的长度如何。 它测量多维空间中字符串之间角度的余弦。...然而,如果看一下点线之间的角度 -余弦距离 - 可以看到“I love dogs”和“I love … love dogs”之间的角度远小于“I love dogs”之间的角度和“I hate cats

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Pandas 数据类型概述与转换实战

    本文将讨论基本的 pandas 数据类型(又名 dtypes ),它们如何映射到 python 和 numpy 数据类型,以及从一种 pandas 类型转换为另一种的方法 Pandas 数据类型 数据类型本质上是编程语言用来理解如何存储和操作数据的内部结构...或者有两个字符串,如“cat”和“hat”,可以将它们连接(加)在一起得到“cathat” 关于 pandas 数据类型的一个可能令人困惑的地方是 pandas、python 和 numpy 之间存在一些出入...看起来很简单,让我们尝试对 2016 列做同样的事情,并将其转换为浮点数: 同样的,转换 Jan Units 列 转换异常了~ 上面的情况中,数据中包含了无法转换为数字的值。...辅助函数 Pandas 在 astype() 函数和更复杂的自定义函数之间有一个中间地带,这些辅助函数对于某些数据类型转换非常有用 到目前为止,我们没有对日期列或 Jan Units 列做任何事情。...这两者都可以简单地使用内置的 pandas 函数进行转换,例如 pd.to_numeric() 和 pd.to_datetime() Jan Units 转换存在问题的原因是列中包含非数字值。

    2.5K20

    别动不动就画折线图了,教你4种酷炫可视化方法

    热力图非常适合于展示多个特征变量之间的关系,因为你可以直接通过颜色知道该位置上的矩阵元素的大小。通过查看热力图中的其他点,你还可以看到每种关系与数据集中的其它关系之间的比较。...当你有两个对输出非常重要的变量,并且希望了解它们如何共同作用于输出的分布时,用二维密度图观察数据是十分有效的。 ? 事实再次证明,使用「seaborn」编写代码是十分便捷的!...我们将在每个角上设置标签,然后将值绘制为一个点,它到中心的距离取决于它的值/大小。最后,为了显示更清晰,我们将使用半透明的颜色来填充将属性点连接起来得到的线条所包围的区域。...当我们沿着树往上移动时,绿色组的口袋妖怪彼此之间比它们和红色组中的任何口袋妖怪都更相似,即使这里并没有直接的绿色的连接。 ? 对于树状图,我们实际上需要使用「Scipy」来绘制!...我们还设置了数据帧的索引,以便能够恰当地将其用作引用每个节点的列。最后需要告诉大家的是,在「Scipy」中计算和绘制树状图只需要一行简单的代码。

    1.5K20

    Pandas 秘籍:1~5

    运算符本身不是对象,而是强制对对象执行操作的语法结构和关键字。 例如,将加法运算符放在两个整数之间时,Python 会将它们加在一起。...如果仔细观察,您会发现步骤 3 的输出缺少步骤 2 的所有对象列。其原因是对象列中缺少值,而 pandas 不知道如何处理字符串值与缺失值。 它会静默删除无法为其计算最小值的所有列。...更多 该秘籍仅介绍了如何使用有用的 Pandas 来交易证券,并且在计算止损单是否触发以及何时触发止损时停止了计算。...但是,只要按字典顺序对索引进行排序并将切片传递给该索引,就会存在对此行为的一个特殊例外。 现在可以在切片的start和stop标签之间进行选择,即使它们不是索引的精确值也是如此。...管道字符|用于在两个序列的每个值之间创建逻辑or条件。 所有三个条件都必须为True以匹配秘籍要求。 它们每个都与和号字符&组合在一起,后者在每个序列值之间创建逻辑and条件。

    37.6K10

    快速掌握Seaborn分布图的10个例子

    让我们从导入库并将数据集读入Pandas数据帧开始。...因此,我们得到了关于两列中值的观察值(即行)分布的概述。 让我们使用价格和距离列创建一个。我们只是将列名传递给x和y参数。...较暗的区域密度更大,所以它们包含了更多的观测数据。两列看起来都是正态分布,因为密集的区域在中心。 您可能已经注意到,我们使用了一个元组作为log_scale参数的参数。...因此,我们可以在一个列中区分不同类别之间的分布。...对于数据分析或机器学习任务,了解变量(即特征)的分布是非常重要的。我们如何处理给定的任务可能取决于分布。 在这篇文章中,我们看到了如何使用Seaborn的displot函数来分析价格和距离栏的分布。

    1.2K30

    4种更快更简单实现Python数据可视化的方法

    热力图非常适合于展示多个特征变量之间的关系,因为你可以直接通过颜色知道该位置上的矩阵元素的大小。通过查看热力图中的其他点,你还可以看到每种关系与数据集中的其它关系之间的比较。...当你有两个对输出非常重要的变量,并且希望了解它们如何共同作用于输出的分布时,用二维密度图观察数据是十分有效的。 ? 事实再次证明,使用「seaborn」编写代码是十分便捷的!...我们将在每个角上设置标签,然后将值绘制为一个点,它到中心的距离取决于它的值/大小。最后,为了显示更清晰,我们将使用半透明的颜色来填充将属性点连接起来得到的线条所包围的区域。...当我们沿着树往上移动时,绿色组的口袋妖怪彼此之间比它们和红色组中的任何口袋妖怪都更相似,即使这里并没有直接的绿色的连接。 ? 对于树状图,我们实际上需要使用「Scipy」来绘制!...我们还设置了数据帧的索引,以便能够恰当地将其用作引用每个节点的列。最后需要告诉大家的是,在「Scipy」中计算和绘制树状图只需要一行简单的代码。 ?

    94920

    4种更快更简单实现Python数据可视化的方法

    热力图非常适合于展示多个特征变量之间的关系,因为你可以直接通过颜色知道该位置上的矩阵元素的大小。通过查看热力图中的其他点,你还可以看到每种关系与数据集中的其它关系之间的比较。...当你有两个对输出非常重要的变量,并且希望了解它们如何共同作用于输出的分布时,用二维密度图观察数据是十分有效的。 ? 事实再次证明,使用「seaborn」编写代码是十分便捷的!...我们将在每个角上设置标签,然后将值绘制为一个点,它到中心的距离取决于它的值/大小。最后,为了显示更清晰,我们将使用半透明的颜色来填充将属性点连接起来得到的线条所包围的区域。...当我们沿着树往上移动时,绿色组的口袋妖怪彼此之间比它们和红色组中的任何口袋妖怪都更相似,即使这里并没有直接的绿色的连接。 ? 对于树状图,我们实际上需要使用「Scipy」来绘制!...我们还设置了数据帧的索引,以便能够恰当地将其用作引用每个节点的列。最后需要告诉大家的是,在「Scipy」中计算和绘制树状图只需要一行简单的代码。

    83030

    爱了!0.052s 打开 100GB 数据,这个开源库火爆了!

    它们足够小,可以装入日常笔记本电脑的硬盘驱动器中,但同时大到无法装入RAM,导致它们已经很难打开和检查,更不用说探索或分析了。 处理此类数据集时,通常采用3种策略。...为实现这些功能,Vaex 采用内存映射、高效的核外算法和延迟计算等概念。所有这些都封装为类 Pandas 的 API,因此,任何人都能快速上手。...在筛选Vaex DataFrame时不会复制数据,而是仅创建对原始对象的引用,在该引用上应用二进制掩码。用掩码选择要显示的行,并将其用于将来的计算。...目前,我们将以此为起点,根据行程距离消除极端离群值: 出行距离一列中存在极端异常值,这也是研究出行时间和出租车平均速度的动机。...到60英里之间合理的平均滑行速度,因此可以更新筛选后的DataFrame: 将重点转移到出租车费用上。

    82310

    0.052秒打开100GB数据?这个Python开源库这样做数据分析

    它们足够小,可以装入日常笔记本电脑的硬盘驱动器中,但同时大到无法装入RAM,导致它们已经很难打开和检查,更不用说探索或分析了。 处理此类数据集时,通常采用3种策略。...为实现这些功能,Vaex 采用内存映射、高效的核外算法和延迟计算等概念。所有这些都封装为类 Pandas 的 API,因此,任何人都能快速上手。 ?...本文中将使用纽约市(NYC)出租车数据集,其中包含标志性的黄色出租车在2009年至2015年之间进行的超过10亿次出行的信息。...在筛选Vaex DataFrame时不会复制数据,而是仅创建对原始对象的引用,在该引用上应用二进制掩码。用掩码选择要显示的行,并将其用于将来的计算。...出行距离一列中存在极端异常值,这也是研究出行时间和出租车平均速度的动机。这些功能在数据集中尚不可用,但计算起来很简单: ? 上面的代码块无需内存,无需花费时间即可执行!这是因为代码只会创建虚拟列。

    1.3K20

    Pandas 秘籍:6~11

    例如,计算从休斯敦出发并降落在亚特兰大的航班数量是微不足道的。 更困难的是计算两个城市之间的航班总数,而不管始发地或目的地是哪一个。...这些列仍具有无用的名称属性Info,该属性已重命名为None。 通过将步骤 3 中的结果数据帧强制为序列,可以避免清理多重索引列。squeeze方法仅适用于单列数据帧,并将其转换为序列。...为了帮助弄清它们之间的差异,请查看以下概述: concat: Pandas 函数 垂直或水平组合两个或多个 Pandas 对象 仅在索引上对齐 每当索引中出现重复项时发生错误 默认为外连接,带有内连接选项...夏季的空中交通流量比一年中其他任何时候都要多。 在第 8 步中,我们使用一长串方法对每个目标机场进行分组,并将mean和count两个函数应用于距离列。...步骤 9 通过查看行进距离与飞行时间之间的关系来开始新的分析。 由于点的数量众多,我们使用s参数缩小了它们的大小。

    34K10

    5个例子比较Python Pandas 和R data.table

    Python和R是数据科学生态系统中的两种主要语言。它们都提供了丰富的功能选择并且能够加速和改进数据科学工作流程。...在这篇文章中,我们将比较Pandas 和data.table,这两个库是Python和R最长用的数据分析包。我们不会说那个一个更好,我们这里的重点是演示这两个库如何为数据处理提供高效和灵活的方法。...Price > 1000000 & Type == "h"] 对于pandas,我们提供dataframe的名称来选择用于过滤的列。...示例3 在数据分析中使用的一个非常常见的函数是groupby函数。它允许基于一些数值度量比较分类变量中的不同值。 例如,我们可以计算出不同地区的平均房价。...示例5 在最后一个示例中,我们将看到如何更改列名。例如,我们可以更改类型和距离列的名称。

    3.1K30

    特征工程:Kaggle刷榜必备技巧(附代码)!!!

    这是一个相当好玩的玩具数据集,因为具有基于时间的列以及分类列和数字列。 如果我们要在这些数据上创建特征,我们需要使用Pandas进行大量的合并和聚合。 自动特征工程让我们很容易。...我们创建了以下特征: A.两个纬度/经度之间的半正矢距离: 根据其纬度和经度,半正矢公式确定了一个球面上两点之间的大圆距离。 ? 然后我们可以像这样使用函数: ?...B.两个纬度/经度之间的曼哈顿距离 ? 按直角轴测量两点间距离 ? 然后我们可以像这样使用函数: ? C.两个纬度/经度之间的方位 一个方位通常表示一个点相对于另一个点的方向。 ?...或者你可以创建一个像“Rare”这样的特征,它是根据我们拥有的数据将某些项目标记为稀有项目,然后计算购物车中这些稀有项目的数量来创建的。 这些特征可能有效或无效。据我观察,它们通常提供很多价值。...我们觉得这就是目标公司“Pregnant Teen model”的制作方式。他们会有一个变量,在这个变量中他们保留了怀孕青少年可以购买的所有物品,并将它们放入分类算法中。

    5.1K62

    使用 HuggingFace Transformers创建自己的搜索引擎

    该工具将葡萄酒评论和用户输入转换为向量,并计算用户输入和葡萄酒评论之间的余弦相似度,以找到最相似的结果。 余弦相似度是比较文档相似度的一种常用方法,因为它适用于词频等对分析非常重要的数据。...它反映了单个矢量维度的相对比较,而不是绝对比较。在这篇文章中,我不会深入研究余弦相似度背后的数学,但是要理解它是一个内积空间中两个非零向量之间的相似性度量。 ?...我会更详细地介绍它们。使用pandas read_sql函数使用原始SQL生成一个df。数据集中有16列和100228行。 ?...对于距离值,越小越好。例如,距离为0意味着两个向量是相同的。 测试: ? 可视化 除了文本搜索之外,我们还可以使用降维技术在二维空间中绘制葡萄酒。...使用Texthero库,很容易应用t-SNE算法来降低向量的维数并将它们可视化。实际上,Texthero使用Plotly来制作交互式图表。

    3.7K40

    从零开始的K均值聚类

    在现实世界中,我们并不总是有具有相应输出的输入数据,因此需要无监督学习来解决这种情况。 K均值的坐标距离计算 欧几里得距离 欧几里得距离是计算两个坐标点之间距离的最常用方法。...它计算了一对对象的坐标之间的差的平方的平方根[4]。它是两个数据点之间的直线距离。 欧几里得距离可以用以下方程来衡量。这个公式用x和y表示两个点。...这里,x和y是两个坐标点,“k”是维度/特征的数量。 切比雪夫距离 切比雪夫距离也称为最大值距离,它计算了一对对象的坐标之间的差的绝对值的大小[4]。它是最大坐标值。 x和y代表两个坐标点。...它们的切比雪夫距离可以通过在坐标之间找到最大距离来计算。k表示特征的数量。 假设我们有两个点,x(1, 3) 和 y(5,10)。x坐标值是 |1–5| = 4,y坐标值是 |3–10| = 7。...研究结果表明,欧几里得距离是计算K均值聚类算法中数据点之间距离的最佳方法。 K均值聚类算法概述 K均值聚类是一种流行的无监督聚类机器学习算法之一。让我们解释一下它是如何工作的。

    14910

    【Python】机器学习之聚类算法

    euclidean_distance()函数计算两个样本点之间的欧氏距离。 initialize_centers()函数用于初始化聚类中心,随机从数据中选择k个样本作为初始聚类中心。...函数返回数据集的值部分(去除了标签列)。 manhattan_distance(a, b)函数:计算两个向量a和b之间的曼哈顿距离,通过计算两个向量对应元素差的绝对值之和来实现。...对于每个聚类,计算该聚类内所有样本点两两之间的距离之和,选择距离和最小的样本点作为新的聚类中心。...定义函数 euclidean_distance(a, b) 计算两个向量 a 和 b 之间的欧氏距离。该函数使用 numpy.linalg.norm() 函数来计算向量的范数,即欧氏距离。...该函数计算数据集 data 中每个点与指定点之间的欧氏距离,并返回在半径 epsilon 范围内的点的索引。

    26310

    使用Python进行现金流预测

    在本文中,我们将学习如何用Python构建一个简单的现金流预测模型,最终形成一个更复杂的模型。在这个模型中,我们用Python构建了一个抵押计算器。...然后,再循环29次,计算随后每年的收入,并将其添加到列表中。我们有一个30年的现金流预测。...它基本上在每个第i项上组合两个列表,并将它们作为元组返回,如下图所示。注意,这个zip()函数实际上创建了30个元组。...图2 我们知道,对于在zip()函数中创建的每个元组,第一个元素是收入,第二个元素是贴现率,因此我们可以将它们相乘以获得贴现现金流。让我们通过元组循环计算贴现现金流,并将其放入另一个列表中。...让我们从创建一个包含30行和2列的pandas数据框架开始——一列用于收入预测,另一列用于贴现率。 图4 一旦我们有了这两个向量,我们可以将它们相乘得到贴现现金流,然后求和sum()得到现值。

    2.1K10

    Scikit-Learn教程:棒球分析 (一)

    在本教程中,您将了解如何轻松地从数据库加载数据sqlite3,如何使用pandas和探索数据并提高数据质量matplotlib,以及如何使用Scikit-Learn包提取一些有效的见解你的数据。...棒球是在两个队伍之间进行的(你可以在数据中找到name或者teamID)每个队伍中有9个队员。这两支球队轮流击球和守备。...有几种方法可以消除空值,但最好先显示每列的空值计数,以便决定如何最好地处理它们。 在这里你会看到一个权衡:你需要干净的数据,但你也没有大量的数据。其中两列具有相对少量的空值。...SO(Strike Outs)列中有110个空值,DP(Double Play)列中有22个空值。其中两列的数量相对较多。...Pandas通过将R列除以G列来创建新列来创建新列时,这非常简单R_per_game。 现在通过制作几个散点图来查看两个新变量中的每一个如何与目标获胜列相关联。

    3.5K20

    机器学习特性缩放的介绍,什么时候为什么使用

    当每一列的值范围非常不同时,我们需要将它们扩展到公共级别。这些值重新规划成公共水平,然后我们可以对输入数据应用进一步的机器学习算法。...第一列值表示年龄在30到90岁之间,而工资值在30000到15000之间变化。所以两列值的比例是截然不同的。在进一步分析之前,我们需要将其调整到相同的范围。...缩放后的输出 缩放值的一种方法是将所有列的值从0到1或者我们可以将它们的值放在-3到3之间。将值更新到新的范围的过程通常称为Normalization 或 Standardization.。...要获得正确的预测和结果,就需要特征缩放。如果某一列的值与其他列相比非常高,则具有更高值的列的影响将比其他低值列的影响高得多。高强度的特征比低强度的特征重得多,即使它们在确定输出中更为关键。...这些算法对特征缩放很敏感,因为它们取决于距离和高斯曲线。

    69020

    Unity通用渲染管线(URP)系列(九)——点光源和聚光灯(Lights with Limited Influence)

    早先我们推断,最终使用的光色代表的是从正面照亮的完美白色漫射表面碎片反射时观察到的光量。对于方向光来说确实如此,但对于其他类型的光,它也专门用于与光之间距离为1的片元。 ?...(距离衰减曲线) 通过计算光的平方来应用距离衰减,并将其倒数用作衰减。为防止潜在的除0操作,请将平方距离的最小值设置为很小的正值。 ? ?...为了使渲染更真实,我们将使用最大照明范围参数,超过此范围我们将使照明强度强制为零。这是不符合现实的,但是这样设定之后,所有灯光无论距离多远都总是可视为可见。...(范围和距离衰减) 2 聚光灯 现在,我们来支持聚光灯。点光和聚光灯之间的区别在于,聚光灯的光被限制为圆锥形。实际上,它是一个点光源,该点光源被一个有孔的封闭球包围。孔的大小决定了光锥的大小。...然后在SetupSpotLight中计算值,并将它们存储在spot angles数组的X和Y分量中。通过VisibleLight结构的spotAngle属性可以使用外角。

    4.2K20
    领券