跳转到主要内容

一个用于Python的模糊匹配和聚类库。

项目描述

Build Status

雾气

一个用于Python的模糊匹配/聚类库。

安装

您可以使用以下命令使用pip安装雾气

pip install fog

使用方法

评估

best_matching_macro_average

高效实现“宏平均最佳匹配F1”评估指标,用于聚类。

请注意,此指标不是对称的,并将匹配truth -> predicted。

参数

  • truth iterable: 真实聚类。
  • predicted iterable: 预测聚类。
  • allow_additional_items ?bool [False]: 是否允许在真实聚类中不存在但在预测中存在的额外项。这些额外项在计算度量时将被忽略,而不是在找到时引发错误。

图形

floatsam_sparsification

使用迭代算法尝试找到最佳权重阈值,以修剪给定图的边,同时保持其下层的社区结构。

它通过迭代增加阈值,直到一个显著的连接组件开始从一个主要组件中漂移为止。

这基本上是一个非常简单的梯度下降,具有一个非常简单的成本函数,但对于典型情况来说工作得相当不错。

参数

  • graph nx.Graph: 要稀疏化的图。
  • starting_treshold ?float [0.0]: 开始相似度阈值。
  • learning_rate ?float [0.05]: 在算法的每个步骤中增加阈值的量。
  • max_drifter_size ?int: 在停止算法之前,要分离的主成分的最大大小。如果没有提供,则默认为图中节点总数的对数。
  • weight ?str [weight wrt networkx conventions]: 权重属性名称。
  • remove_edges ?bool [False]: 是否删除图中权重小于找到的阈值的边。请注意,如果设置为 True,这将修改给定的图。

monopartite_projection

计算给定二部图的单部投影的函数。这种投影可以是基本的,每次目标分区中的两个节点共享一个共同邻居时创建一个加权边。或者它可以是有权重的,并使用Jaccard相似度或余弦相似度等相似度度量进行过滤。

参数

  • bipartite nx.Graph: 目标二部图。
  • project str: 要投影的分区名称。
  • part ?str [bipartite]: 图分区上构建的节点属性名称,例如 "color" 或 "type" 等。
  • weight ?str [weight]: 权重边属性名称。
  • metric ?str [None]: 要使用的度量。如果为 None,则返回基本投影。也接受 jaccardoverlapdicecosinebinary_cosine
  • threshold ?float [None]: 可选的相似度阈值,低于此阈值的边将不会添加到单部投影中。
  • use_topology ?bool: 是否使用二部图的拓扑结构来尝试二次时间投影。直观上,这是通过不计算所有节点对之间的相似度,而只计算至少共享一个共同邻居的节点对之间的相似度来实现的。它通常比二次方法表现更好,但有时在图非常稠密时可能会因为图遍历而损失性能。
  • bipartition_check ?bool: 此函数将首先检查您的图是否是二部图,因为如果给定的图不是真正的二部图,它可能会陷入无限循环。如果事先知道您的图是二部图并且为了更好的性能,请务必禁用此关键字参数。

密钥器

omission_key

返回字符串的省略键的函数,其构建方式如下

  1. 首先,我们按照最常拼写错误的辅音顺序记录字符串的辅音集合。
  2. 然后,我们按照首次出现顺序记录字符串的元音集合。

此键在搜索拼写错误的字符串时非常有用,因为如果使用此键排序,类似的字符串将相邻。

参数

  • string str: 要编码的字符串。

skeleton_key

返回字符串的骨骼键的函数,其构建方式如下

  1. 字符串的第一个字母
  2. 按出现顺序排序的唯一辅音
  3. 按出现顺序排序的唯一元音

此键在搜索拼写错误的字符串时非常有用,因为如果使用此键排序,类似的字符串将相邻。

参数

  • string str: 要编码的字符串。

度量

cosine_similarity

计算给定序列的余弦相似度的函数。运行时间为 O(n),n 是 A 和 B 的大小之和。

参数

  • A iterable: 第一个序列。
  • B iterable: 第二个序列。

sparse_cosine_similarity

在表示为Python字典的稀疏加权集合上计算余弦相似度的函数。

运行时间为 O(n),n 是 A 和 B 的大小之和。

from fog.metrics import sparse_cosine_similarity

# Basic
sparse_cosine_similarity({'apple': 34, 'pear': 3}, {'pear': 1, 'orange': 1})
>>> ~0.062

参数

  • A Counter: 第一个加权集合。
  • B Counter: 第二个加权集合。

sparse_dot_product

用于计算由Python字典表示的稀疏加权集合的点积的函数。

运行时间为 O(n),n 是最小集合的大小。

参数

  • A Counter: 第一个加权集合。
  • B Counter: 第二个加权集合。

binary_cosine_similarity

计算给定序列的二值余弦相似度的函数。运行时间为 O(n),n 是最小集合的大小。

参数

  • A iterable: 第一个序列。
  • B iterable: 第二个序列。

sparse_binary_cosine_similarity

在表示为Python集合的稀疏向量上计算二值余弦相似度的函数。

时间复杂度为O(n),其中n为较小集合的大小。

参数

  • A 计数器:第一个集合。
  • B 计数器:第二个集合。

dice_coefficient

计算Dice系数的函数。也就是说,两个集合交集的大小除以它们大小之和的两倍。

运行时间为 O(n),n 是最小集合的大小。

from fog.metrics import dice_coefficient

# Basic
dice_coefficient('context', 'contact')
>>> ~0.727

参数

  • A iterable: 第一个序列。
  • B iterable: 第二个序列。

jaccard_similarity

计算Jaccard相似度的函数。也就是说,输入集合的交集除以它们的并集。

运行时间为 O(n),n 是最小集合的大小。

from fog.metrics import jaccard_similarity

# Basic
jaccard_similarity('context', 'contact')
>>> ~0.571

参数

  • A iterable: 第一个序列。
  • B iterable: 第二个序列。

weighted_jaccard_similarity

计算加权Jaccard相似度的函数。时间复杂度为O(n),其中n为A和B大小之和。

from fog.metrics import weighted_jaccard_similarity

# Basic
weighted_jaccard_similarity({'apple': 34, 'pear': 3}, {'pear': 1, 'orange': 1})
>>> ~0.026

参数

  • A Counter: 第一个加权集合。
  • B Counter: 第二个加权集合。

overlap_coefficient

计算给定集合的重叠系数的函数,即交集大小除以最小集合的大小。

运行时间为 O(n),n 是最小集合的大小。

参数

  • A iterable: 第一个序列。
  • B iterable: 第二个序列。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

fog-0.11.9.tar.gz (87.7 kB 查看哈希值)

上传时间

支持者