在followthemoney数据中建立记录关联。
项目描述
nomenklatura
nomenklatura去重并整合不同的Follow the Money实体。它用于清理混乱的数据并找到不同数据集之间的链接。
用法
您可以通过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。
阅读
- https://dedupe.readthedocs.org/en/latest/
- https://github.com/OpenRefine/OpenRefine/wiki/Reconcilable-Data-Sources
- https://github.com/OpenRefine/OpenRefine/wiki/Clustering-In-Depth
- https://github.com/OpenRefine/OpenRefine/wiki/Reconciliation-Service-API
联系、贡献等。
此代码库根据MIT许可条款授权(见LICENSE)。
我们渴望任何贡献、错误修复和功能建议,请使用此存储库的GitHub问题跟踪器。
nomenklatura的开发得益于为OpenSanctions提供的Prototypefund补助金。此包的先前迭代是在Knight-Mozilla OpenNews和Open Knowledge Foundation Labs的支持下开发的。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
nomenklatura-3.13.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2f0936b3ef6f36b13a39e9ce8b24fc3f17c9baff17b74efe8f0baaee16b28e3d |
|
MD5 | fb335db7bcae4a4f24a75538ac5d1a43 |
|
BLAKE2b-256 | a2718e37b7956808a53e0d3a2c9789f853100fe5402dfccec9ee75440f357d88 |