Skip to main content

Semantic similarity measures from Babylon Health

Project description

simba :lion:

Similarity measures from Babylon Health.

Installation

$ pip install simba

You can also checkout this repository and install from the root folder:

$ pip install .

Many of the similarity measures in simba rely on pre-trained embeddings. If you don't have your own encoding logic already, you can register your embedding files to use them easily with simba, as long as they're in the standard text format for word vectors (as described here). For example, if you want to use fastText vectors that you've saved to /path/to/fasttext, you can just run

$ simba embs register --name fasttext --path /path/to/fasttext

and simba will recognise them under the name fasttext.

You can do something similar for frequencies files (like these):

$ simba freqs register --name wiki --path /path/to/wiki/counts

Usage

from simba.similarities import dynamax_jaccard
from simba.core import embed

sentences = ('The king has returned', 'Change is good')

# Assuming you've registered fasttext embeddings as described above
x, y = embed([s.split() for s in sentences], embedding='fasttext')
sim = dynamax_jaccard(x, y)

There are more examples, including comparing different similarity metrics on a dataset of pairs, in the examples directory.

Similarity Measures

This library contains implementations of the following methods in simba.similarities. Please consider citing the corresponding papers in your work if you find them useful.

Method Description Paper
avg_cosine Average vector compared with cosine similarity -
batch_avg_pca Average vector with principal component removal [1]
fbow_jaccard_factory Factory method for general fuzzy bag-of-words given a universe matrix [2]
max_jaccard Max-pooled vectors compared with Jaccard coefficient [2]
dynamax_{jaccard, otsuka, dice} DynaMax using Jaccard, Otsuka-Ochiai, and Dice coefficients [2]
gaussian_correction_{tic, aic} Takeuchi and Akaike Information Criteria (TIC and AIC) for Gaussian likelihood [3]
spherical_gaussian_correction_{tic, aic} TIC and AIC for spherical Gaussian likelihood [3]
von_mises_correction_{tic, aic} TIC and AIC for von Mises Fisher likelihood [3]
avg_{pearson, spearman, kendall} Average vector compared with Pearson, Spearman, and Kendall correlation [4]
max_spearman Max-pooled vectors compared with Spearman correlation [5]
cka_factory Factory method for general Centered Kernel Alignment (CKA) [5]
cka_{linear, gaussian} CKA with linear and Gaussian kernels [5]
dcorr CKA with distance kernel (distance correlation) [5]

Papers:

  1. Arora et al., ICLR 2017. A Simple but Tough-to-Beat Baseline for Sentence Embeddings
  2. Zhelezniak et al., ICLR 2019. Don't Settle for Average, Go for the Max: Fuzzy Sets and Max-Pooled Word Vectors
  3. Vargas et al., ICML 2019. Model Comparison for Semantic Grouping
  4. Zhelezniak et al., NAACL-HLT 2019. Correlation Coefficients and Semantic Textual Similarity
  5. Zhelezniak et al., EMNLP-IJCNLP 2019. Correlations between Word Vector Sets

Contact

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simba-0.1.1.tar.gz (22.6 kB view details)

Uploaded Source

File details

Details for the file simba-0.1.1.tar.gz.

File metadata

  • Download URL: simba-0.1.1.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for simba-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ed4a83e2ecd02e966b90f77b61caf7afe02079b9192dbe4ab5ae6a714a8e740e
MD5 6474169779cdab411f82b3881342d756
BLAKE2b-256 b611d28277e11d32bb9452eb23e9f1f1b811874142b0f38ddc8eb02862a643ce

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page