Sherlock: A Deep Learning Approach to Semantic Data Type Detection

Madelon Hulsebos, Kevin Hu, Michiel Bakker, Emanuel Zgraggen, Arvind Satyanarayan +3 more
5/25/2019
cs.LGcs.DBcs.IR

Official code: mitmedialab/sherlock-project (191 stars, MIT, last commit 2024-07-30).

Abstract

Correctly detecting the semantic type of data columns is crucial for data science tasks such as automated data cleaning, schema matching, and data discovery. Existing data preparation and analysis systems rely on dictionary lookups and regular expression matching to detect semantic types. However, these matching-based approaches often are not robust to dirty data and only detect a limited number of types. We introduce Sherlock, a multi-input deep neural network for detecting semantic types. We train Sherlock on $686,765$ data columns retrieved from the VizNet corpus by matching $78$ semantic types from DBpedia to column headers. We characterize each matched column with $1,588$ features describing the statistical properties, character distributions, word embeddings, and paragraph vectors of column values. Sherlock achieves a support-weighted F$_1$ score of $0.89$, exceeding that of machine learning baselines, dictionary and regular expression benchmarks, and the consensus of crowdsourced annotations.

View on arXivView PDF

Code Implementations(1)

MIT

This repository provides data and scripts to use Sherlock, a DL-based model for semantic data type detection: https://sherlock.media.mit.edu.

19175Python, Jupyter NotebookAug 2, 20192 years agoMIT
deep-learningsemantic-table-interpretationsemantic-type-detectiontables

Cite this paper

@article{hulsebos2019sherlock,
  title  = {Sherlock: A Deep Learning Approach to Semantic Data Type Detection},
  author = {Madelon Hulsebos and Kevin Hu and Michiel Bakker and Emanuel Zgraggen and Arvind Satyanarayan and Tim Kraska and Çağatay Demiralp and César Hidalgo},
  year   = {2019},
  eprint = {1905.10688},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1905.10688}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1905.10688.svg)](https://codeofpaper.com/paper/1905.10688)

Discussion