NeSyDep
Neural-Symbolic Dependency discovery: fast mining of data dependencies (functional dependencies, conditional functional dependencies, and more to come).
NeSyDep turns the research prototypes behind our papers into a usable, extensible open-source tool for data scientists and data engineers:
- BSFD — fast FD discovery guided by Bayesian-network structure learning (ICDE 2026)
- SCFDM — fast CFD discovery via Transformer-guided relation partitioning (VLDB 2027)
- FastAFD — approximate FD mining (FDm) boosted by clustering and covariance analysis (ICDE 2024); fastest on wide tables, with statistical recall guarantees
Mining kernels are C++ (exposed through pybind11); orchestration, sampling, correlation extraction and evaluation are pure Python.
Status: early development. See the roadmap below.
Install
pip install nesydep # core (FD/CFD mining + lightweight correlation)
pip install "nesydep[bn]" # + Bayesian-network correlation (BSFD default)
pip install "nesydep[transformer]" # + Transformer AttrFinder (large, pulls torch)
pip install "nesydep[all]" # everything
Quick start
import pandas as pd
import nesydep as nd
# A small hospital table ships with the repo — load it straight from GitHub.
url = "https://raw.githubusercontent.com/ruochunjin/NeSyDep/main/examples/data/hospital_sample.csv"
df = pd.read_csv(url)
# One-liner FD discovery
fds = nd.discover(df, algo="bsfd", support=2, confidence=0.95)
for fd in fds.fds:
print(fd) # e.g. [Zip] -> City, [Zip] -> State, [Address] -> PhoneNumber
# CFD discovery with full control
miner = nd.SCFDM(correlation="pearson", strategy="FD-First-DFS-dfs",
support=2, confidence=0.9, max_lhs=2)
result = miner.discover(df)
result.to_csv("cfds.csv")
CLI:
curl -O https://raw.githubusercontent.com/ruochunjin/NeSyDep/main/examples/data/hospital_sample.csv
nesydep discover hospital_sample.csv --algo bsfd --support 2 -o fds.txt
nesydep algorithms # list registered algorithms and parameters
Roadmap
- v0.1 (MVP): BSFD, SCFDM (lightweight correlation), TANE/DFD/CTane baselines, evaluation, CLI.
- v0.2: Transformer AttrFinder, all 10 SCFDM strategies, prebuilt wheels.
- v1.0: PyPI release, full docs, plugin tutorial.
- Later: more fast mining algorithms over relational data and more dependency types (OD, DC, UC, ...) as plugins.
Out of scope for v1: direct database connections, distributed (MPI) wheels.
Citing
If you use NeSyDep in academic work, please cite:
CFD discovery (SCFDM):
@article{jin2027fast,
title={Fast Discovery of Conditional Functional Dependencies via Transformer-Guided Relation Partitioning},
author={Jin, Ruochun and Chen, Shenglin and Wang, Xi and Yang, Siyi and Wang, Ting},
journal={Proceedings of the VLDB Endowment},
year={2027}
}
FD discovery (BSFD):
@inproceedings{yang2026fast,
title={Fast Discovery of Functional Dependencies via Bayesian Network Learning},
author={Yang, Siyi and Chen, Shenglin and Wang, Xi and Tang, Yuhua and Jin, Ruochun},
booktitle={2026 IEEE 42nd International Conference on Data Engineering (ICDE)},
pages={44--57},
year={2026},
organization={IEEE}
}
Also from our group (its algorithms will be integrated into NeSyDep in a future release):
@inproceedings{wang2024boosting,
title={Boosting meaningful dependency mining with clustering and covariance analysis},
author={Wang, Xi and Jin, Ruochun and Huang, Wanrong and Tang, Yuhua},
booktitle={2024 IEEE 40th International Conference on Data Engineering (ICDE)},
pages={639--652},
year={2024},
organization={IEEE}
}
License
MIT — see LICENSE.
Metadata
Release files for nesydep 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 4.7 MB
Release files / nesydep-1.1.0-cp313-cp313-win_amd64.whl
| Download URL | nesydep-1.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 409.4 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4377876d27d2faf28c1bc3ddf7170bb3bc5664a806e3aab848bd03723e24a1bb
|
|
BLAKE2b-256 checksum How to use checksums |
396636af7ecda6138c21c9ef61c4e3fc5b7abe761bdff465ddd3f2f66e1ae4c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nesydep-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 393.6 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b9438c4cc84378cadfe5ab446bad2b9947fc7fe81620fa3ad9293bcb761382d8
|
|
BLAKE2b-256 checksum How to use checksums |
a0436e2c2ba9e417d599aaf878926b7cc80db9bd4adb572a39a7c75b0345a41f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | nesydep-1.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 369.4 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9d0c332081497f7deaeff9d19c5c2a3658747b1fd8835c535155038ba34b16fc
|
|
BLAKE2b-256 checksum How to use checksums |
213680987e6f1382185b8090ab616c7560ccd165384e9e9407de07f0ecad415d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp312-cp312-win_amd64.whl
| Download URL | nesydep-1.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 409.4 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
dfe087574a1499414caee4d6470016f3dcc705b8a073fa45d67e215203714eb8
|
|
BLAKE2b-256 checksum How to use checksums |
ad845b0945abdf884edecf6ee168f226f8d45950c2e52b24cc1af4493a3f3c93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nesydep-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 393.5 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ca5f63c4f52070ff54c9a409020f8655998097eaf07a6a3f397e72eb1a4a6bde
|
|
BLAKE2b-256 checksum How to use checksums |
45867dcbb753b60c2b1b7fdc017f987fb0b988abde10515f60ee831581ec8d98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | nesydep-1.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 369.3 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
660472fd88c73d37b0b1339f44f809d55ccd3fb4f0c7696e47e00264fa9c80b0
|
|
BLAKE2b-256 checksum How to use checksums |
8843d0b98d067992c1a6fe5a789f2807d214e9dfe6785b1f31bf64a492a44343
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp311-cp311-win_amd64.whl
| Download URL | nesydep-1.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 407.7 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
170a0566c8bc0f35817344f627fa15d3a62e39ffc665a5d69a70fa4a26c83d3c
|
|
BLAKE2b-256 checksum How to use checksums |
3b033eb33b4d01f6296c327211068a681c2304e7fe194ee7d92fe87e54391a2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nesydep-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 394.4 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4763955a6d7ecabf6a070639decaa4810fcadbc2ea2a7117fdc9150e865f7d1c
|
|
BLAKE2b-256 checksum How to use checksums |
e2c9daae30d55def377fbcff3106ce61c823426e7e5169c6159aa95cd9764ce3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | nesydep-1.1.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 369.1 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
123ee54b367e712c748a1e67ede998db0b0f8d2165bbdc9a0568c9ca43f59c0b
|
|
BLAKE2b-256 checksum How to use checksums |
71fcfa8df80290b5e524cd705a9e789a58d1888fdbccbf4ad4590b99be4e155e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp310-cp310-win_amd64.whl
| Download URL | nesydep-1.1.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 406.5 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
67d9e565989b2a976848f6a963b5d880228859b1ed9f1d1a79dbb771080384b2
|
|
BLAKE2b-256 checksum How to use checksums |
6267a85e1f6f416fafb0992a41b5defaba964cb234f32a07421ef5f2d2e2de52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nesydep-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 392.6 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ba99708bad2c99c652f62207c32644ec850d554a1892e6ac7e2eb20187ec8b61
|
|
BLAKE2b-256 checksum How to use checksums |
938cbadc9c212d9c0315f7ee330d47dcbc37bb0a53da353dd8dc7b7d541e83a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / nesydep-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | nesydep-1.1.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 368.0 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2fc9362b28ce403825fcb7327fb7d4c1d6733efef5e757416a3aa23b98b31a49
|
|
BLAKE2b-256 checksum How to use checksums |
791e0f2bd58c84d6075b28ae5dcebe8248b4b8598ddc738eba7c14e777a5dadb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency log