CtrlK
BlogDocsLog inGet started
Tessl Logo

victoraut/liken-skills

Agent skills for Liken: near-deduplication and record linkage for Python DataFrames.

78

Quality

98%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

deduper-catalog.mdskills/liken-dedupers/references/

Liken deduper catalog

Every built-in deduper, with its category and parameters. Signatures are the public functions exported from liken (verified against the liken >= 0.8 source). All are called as lk.<name>(...).

Similarity dedupers (have a threshold, default 0.95)

DeduperColumnsSignatureNotes
exactsingle or compoundexact()Default deduper if none applied. Exact equality.
fuzzysinglefuzzy(threshold=0.95, scorer="simple_ratio")RapidFuzz string similarity.
tfidfsingletfidf(threshold=0.95, ngram=3, topn=2, **vectorizer_kwargs)Char n-gram TF-IDF; ngram int or (low, high) range; extra kwargs → sklearn TfidfVectorizer.
lshsinglelsh(threshold=0.95, ngram=3, num_perm=128)MinHash LSH; ngram is a single int; scales well.
jaccardcompoundjaccard(threshold=0.95)Set similarity over categorical columns; nulls treated as their own category.
cosinecompoundcosine(threshold=0.95)Cosine similarity over numerical columns; nulls dropped from the dot product (caution on sparse data).

fuzzy scorers: "simple_ratio", "partial_ratio", "token_sort_ratio", "token_set_ratio", "weighted_ratio", "quick_ratio".

Predicate dedupers (filter-like; negatable with ~ in pipelines)

DeduperSignatureMatches
isnaisna()null / missing values
isinisin(values)value is a member of values (an iterable, e.g. a list)
str_containsstr_contains(pattern, case=True, regex=False)string contains pattern (literal or regex)
str_startswithstr_startswith(pattern, case=True)string starts with pattern (no regex)
str_endswithstr_endswith(pattern, case=True)string ends with pattern (no regex)
str_lenstr_len(min_len=0, max_len=None)string length in (min_len, max_len]; for an exact length use max_len = min_len + 1

Notes:

  • ~ negation is supported on predicate dedupers (e.g. ~lk.col("address").isna()) and only inside the pipeline API — see liken-pipelines.
  • str_startswith / str_endswith do not accept regex; use str_contains(regex=True).
  • isin(values=...) expects an iterable; pass a list (["london", "paris"]) — a bare string would be iterated character-by-character.

Pandas affordance support

Only fuzzy, tfidf, lsh, jaccard, cosine are available as the pandas accessor (df.fuzzy.drop_duplicates(...)), only for single dedupers, only on pandas DataFrames, and only after import liken.

Choosing between fuzzy / tfidf / lsh

  • fuzzy — best default for short strings (names, addresses); intuitive threshold.
  • tfidf — token/character-overlap similarity; tune ngram and topn; good for longer strings; experiment.
  • lsh — approximate, scales to large data (sub-quadratic); needs tuning of ngram and num_perm; verify quality on a sample. See liken-backends-performance.

skills

liken-dedupers

README.md

tile.json