dennybritz/sampler — explained in plain English
Analysis updated 2026-08-04 · repo last pushed 2014-05-05
Populate a database of corporate acquisitions from news articles using inference rules.
Compute confidence scores for relationships extracted from text in a DeepDive pipeline.
Tune rule weights by running gradient descent over a web of interconnected evidence.
| dennybritz/sampler | cakiki/database | janikdotzel/akka-http-quickstart-scala | |
|---|---|---|---|
| Stars | 1 | — | — |
| Language | Scala | Scala | Scala |
| Last pushed | 2014-05-05 | 2026-03-13 | 2023-05-19 |
| Maintenance | Dormant | Maintained | Dormant |
| Setup difficulty | moderate | easy | easy |
| Complexity | 4/5 | 2/5 | 2/5 |
| Audience | researcher | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires familiarity with the DeepDive data model and preparing tab-separated variable, factor, and weight input files.
This project, called sampler, is a tool for doing probabilistic reasoning over large sets of interconnected data. In plain terms, it helps you figure out the likelihood that certain facts are true, given a web of relationships and rules. It was built to work with a system called DeepDive (developed at Stanford), which is used for tasks like extracting knowledge from text, for example, deciding whether a sentence implies a specific relationship between two companies. At its core, the tool takes three input files: one describing variables (things whose truth you care about), one describing factors (rules or evidence that connect variables), and one with weights that say how much to trust each rule. It then runs a statistical process called Gibbs sampling, which repeatedly estimates the state of each variable by sampling from its neighbors. The result is two output files: one with each variable's final sampled value and its expected probability, and one with learned weights for the rules. The tool also supports "weight learning," meaning it can tune how much each rule matters by running a form of gradient descent over multiple iterations. The main audience would be researchers or engineers working on information extraction, knowledge base construction, or statistical relational learning, particularly those using DeepDive-style pipelines. For example, if you're trying to populate a database of corporate acquisitions from news articles, you might have rules like "if two company names appear near 'acquired' in a sentence, they're likely related." This tool would help compute how confident you should be in each inferred relationship, given all the evidence. One notable tradeoff is performance: the README explicitly says this is not a high-speed implementation and suggests contacting the author if you hit bottlenecks. It's written in Scala and runs on the JVM, which handles threading automatically. The input/output format is straightforward (tab-separated files), making it relatively easy to plug into larger data pipelines, but you'd need to be comfortable with the DeepDive data model to use it effectively.
A Scala tool that uses statistical sampling to estimate how likely certain facts are true, given a set of rules and evidence. Designed for DeepDive pipelines that extract knowledge from text.
Mainly Scala. The stack also includes Scala, JVM.
Dormant — no commits in 2+ years (last push 2014-05-05).
The explanation does not mention a license, so usage terms are unknown.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.