跳转到主要内容

在followthemoney数据中建立记录关联。

项目描述

nomenklatura

nomenklatura去重并整合不同的Follow the Money实体。它用于清理混乱的数据并找到不同数据集之间的链接。

screenshot

用法

您可以通过PyPI安装nomenklatura

$ pip install nomenklatura

命令行用法

nomenklatura的大多数功能可以用作命令行工具。以下示例中,我们假设您在本地目录中有一个包含Follow the Money实体的文件,命名为entities.ijson。如果您只是想尝试一下,可以使用此存储库中的文件tests/fixtures/donations.ijson进行测试(它包含德国竞选财务数据)。

文件就位后,您需要将实体进行交叉引用以生成去重候选对象,然后在控制台中运行交互式去重UI,最终应用判断以生成一个新的合并实体文件。

# generate merge candidates using an in-memory index:
$ nomenklatura xref -r resolver.json entities.ijson
# note there is now a new file, `resolver.json` that contains de-duplication info.
$ nomenklatura dedupe -r resolver.json entites.ijson
# will pop up a user interface.
$ nomenklatura apply entities.ijson -o merged.ijson -r resolver.json
# de-duplicated data goes into `merged.ijson`:
$ cat entities.ijson | wc -l 
474
$ cat merged.ijson | wc -l 
468 

程序化使用

nomenklatura的命令行使用针对需要去重的小数据集。对于更复杂的场景,该包还提供了一个Python API,可以用于控制去重的语义。

  • nomenklatura.Dataset - 实现了一个基本的数据集,用于描述一组实体。
  • nomenklatura.Store - 一个通用的实体访问机制。默认情况下,存储用于访问存储在文件中的实体数据作为内存缓存,但存储可以被继承以与数据库系统中的实体一起工作。
  • nomenklatura.Index - 用于FtM实体的全文内存搜索索引。在应用中,此索引用于阻止去重候选对象,但索引也可以用于驱动API等。
  • nomenklatura.index.TantivyIndex - Tantivy的包装器,用于索引和匹配FtM实体。
  • nomenklatura.Resolver - 去重过程的核心,解析器本质上是一个图,其边由实体判断组成。解析器可以用于存储判断或获取给定实体的规范ID。

所有API类都有详尽的数据注释,这应该使得它们在任何现代Python API中的集成更加简单。

设计

此包提供了一个以FtM数据模型为中心的内存数据去重框架的实现。思路如下工作流程

  • 接受从给定加载器(例如JSON文件或数据库)接受的FtM形状实体
  • 构建用于去重阻塞的实体内存倒排索引
  • 使用阻塞索引和FtM比较生成合并候选对象
  • 提供基于文件的存储格式以存储合并挑战和决策
  • 提供基于文本的用户界面,以便用户做出合并决策

稍后可能添加以下内容

  • 一个Web应用程序,让用户在Web上做出合并决策

解析器图

nomenklatura的关键实现细节是Resolver,这是一个图结构,用于管理用户关于实体身份的决策。边是关于两个实体ID是否相同、不同或未决的判断。解析器实现了一个计算连通组件的算法,然后可以用于找到实体集群的最佳可用ID。它还可以用于评估传递性判断,例如,如果A <> B,且B = C,那么我们不需要询问A = C。

阅读

联系、贡献等。

此代码库根据MIT许可条款授权(见LICENSE)。

我们渴望任何贡献、错误修复和功能建议,请使用此存储库的GitHub问题跟踪器。

nomenklatura的开发得益于为OpenSanctions提供的Prototypefund补助金。此包的先前迭代是在Knight-Mozilla OpenNewsOpen Knowledge Foundation Labs的支持下开发的。

项目详情


发布历史 发布通知 | RSS源

下载文件

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

源分发

nomenklatura-3.13.1.tar.gz (84.5 kB 查看哈希值)

上传时间

构建分发

nomenklatura-3.13.1-py3-none-any.whl (152.2 kB 查看哈希值)

上传时间 Python 3

由以下支持