一个用于Python的模糊匹配和聚类库。
项目描述
雾气
一个用于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
,则返回基本投影。也接受jaccard
、overlap
、dice
、cosine
或binary_cosine
。 - threshold ?float [
None
]: 可选的相似度阈值,低于此阈值的边将不会添加到单部投影中。 - use_topology ?bool: 是否使用二部图的拓扑结构来尝试二次时间投影。直观上,这是通过不计算所有节点对之间的相似度,而只计算至少共享一个共同邻居的节点对之间的相似度来实现的。它通常比二次方法表现更好,但有时在图非常稠密时可能会因为图遍历而损失性能。
- bipartition_check ?bool: 此函数将首先检查您的图是否是二部图,因为如果给定的图不是真正的二部图,它可能会陷入无限循环。如果事先知道您的图是二部图并且为了更好的性能,请务必禁用此关键字参数。
密钥器
omission_key
返回字符串的省略键的函数,其构建方式如下
- 首先,我们按照最常拼写错误的辅音顺序记录字符串的辅音集合。
- 然后,我们按照首次出现顺序记录字符串的元音集合。
此键在搜索拼写错误的字符串时非常有用,因为如果使用此键排序,类似的字符串将相邻。
参数
- string str: 要编码的字符串。
skeleton_key
返回字符串的骨骼键的函数,其构建方式如下
- 字符串的第一个字母
- 按出现顺序排序的唯一辅音
- 按出现顺序排序的唯一元音
此键在搜索拼写错误的字符串时非常有用,因为如果使用此键排序,类似的字符串将相邻。
参数
- 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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a6e044b2cde8dde696ff9bd3d90647048b199f69c4b1582209b547cd0d5ee635 |
|
MD5 | 9c67104545ff406579820a57b4f766e1 |
|
BLAKE2b-256 | c90f69b4fcffd9153b2dffe904e198c047e14dededc5d3477277f017438c095b |