Skip to main content

用于链接和重复数据删除的记录链接工具包

项目描述


RecordLinkage:强大的模块化 Python 记录链接工具包

皮皮版本 Github Actions CI 状态 代码覆盖率 文件状态 泽诺多 DOI

RecordLinkage是一个功能强大的模块化记录链接工具包,用于链接数据源中或数据源之间的记录。该工具包提供了记录链接和重复数据删除所需的大部分工具。该包包含索引方法、比较记录和分类器的功能。该软件包是为研究和中小型文件的链接而开发的。

这个项目的灵感来自可自由扩展的生物医学记录链接 (FEBRL)项目,这是一个很棒的项目。与 FEBRL 相比,recordlinkage 项目使用pandasnumpy进行数据处理和计算。pandas是一个灵活而强大的 Python 数据分析和操作库的使用,使得记录链接过程变得更加容易和快捷。广泛的pandas库可用于将您的记录链接直接集成到现有的数据操作项目中。

该项目的目标之一是制作一个易于扩展的记录链接框架。很容易包含您自己的索引算法、比较/相似性度量和分类器。

基本链接示例

使用所有重要的记录链接工具导入recordlinkage模块并导入数据操作框架pandas

import recordlinkage
import pandas

将您的数据加载到 pandas DataFrames 中。

df_a = pandas.DataFrame(YOUR_FIRST_DATASET)
df_b = pandas.DataFrame(YOUR_SECOND_DATASET)

比较所有记录可能是计算密集型的。因此,我们使用一种内置索引技术(如阻塞)制作一组候选链接。在此示例中,仅返回与姓氏一致的记录对。

indexer = recordlinkage.Index()
indexer.block('surname')
candidate_links = indexer.index(df_a, df_b)

对于每个候选链接,将记录与比较类中的比较或相似性算法之一进行比较。

c = recordlinkage.Compare()

c.string('name_a', 'name_b', method='jarowinkler', threshold=0.85)
c.exact('sex', 'gender')
c.date('dob', 'date_of_birth')
c.string('str_name', 'streetname', method='damerau_levenshtein', threshold=0.7)
c.exact('place', 'placename')
c.numeric('income', 'income', method='gauss', offset=3, scale=3, missing_value=0.5)

# The comparison vectors
feature_vectors = c.compute(candidate_links, df_a, df_b)

根据与分类算法之一的比较结果,将候选链接分类为匹配或不同的对。以下代码使用逻辑回归分类器对候选对进行分类。这种(监督机器学习)算法需要训练数据。

logrg = recordlinkage.LogisticRegressionClassifier()
logrg.fit(TRAINING_COMPARISON_VECTORS, TRAINING_PAIRS)

logrg.predict(feature_vectors)

以下代码显示了使用期望条件最大化 (ECM) 算法对候选对进行分类。期望最大化算法的这种变体不需要训练数据(无监督机器学习)。

ecm = recordlinkage.ECMClassifier()
ecm.fit_predict(feature_vectors)

主要特点

这个Python记录联动工具包的主要特点是:

  • 使用易于使用的工具清理和标准化数据
  • 使用智能索引方法(例如 阻塞排序邻域索引)制作记录对
  • 针对不同类型的变量(例如字符串、数字和日期),使用大量比较和相似性度量来比较记录。
  • 几种分类算法,包括监督和非监督算法。
  • 常用记录联动评价工具
  • 几个内置数据集。

文档

最新的文档和 API 参考可以在 recordlinkage.readthedocs.org找到。该文档提供了一些基本的使用示例,例如 重复数据删除链接 人口普查数据。更多示例即将推出。如果您确实有有趣的示例要分享,请告诉我们。

安装

Python 记录链接工具包需要 Python 3.6 或更高版本。使用 pip 轻松安装软件包

pip install recordlinkage

Python 2.7 用户可以使用 <= 0.13 版本,但建议使用 Python >= 3.5。

该工具包依赖于流行的包,如 PandasNumpyScipyScikit-learn。可以在安装手册 以及推荐的和可选的依赖项中找到完整的依赖项列表。

执照

此记录链接工具的许可证是 BSD-3-Clause。

引文

在学术环境中使用时请引用此包。确保 DOI 和版本与安装的版本匹配。引文样式可以在出版商网站 10.5281/zenodo.3559042上找到。

@software{de_bruin_j_2019_3559043,
  author       = {De Bruin, J},
  title        = {{Python Record Linkage Toolkit: A toolkit for
                   record linkage and duplicate detection in Python}},
  month        = dec,
  year         = 2019,
  publisher    = {Zenodo},
  version      = {v0.14},
  doi          = {10.5281/zenodo.3559043},
  url          = {https://doi.org/10.5281/zenodo.3559043}
}

需要帮忙?

卡在您的记录链接代码或问题上?还有其他问题吗?不要犹豫给我发电子邮件 ( jonathandebruinos@gmail.com )。

项目详情


下载文件

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

源分布

recordlinkage-0.15.tar.gz (915.1 kB 查看哈希

已上传 source

内置分布

recordlinkage-0.15-py3-none-any.whl (926.5 kB 查看哈希

已上传 py3