Metadata-Version: 2.1
Name: simsity
Version: 0.0.1
Summary: Simple Similarity Service
Home-page: https://koaning.github.io/simsity/
Author: Vincent D. Warmerdam
License: UNKNOWN
Project-URL: Documentation, https://koaning.github.io/simsity/
Project-URL: Source Code, https://github.com/koaning/simsity/
Project-URL: Issue Tracker, https://github.com/koaning/simsity/issues
Platform: UNKNOWN
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: scikit-learn (>=1.0.0)
Requires-Dist: pynndescent (>=0.5)
Requires-Dist: numba (>=0.54.1)
Requires-Dist: pandas (>=1.3.3)
Provides-Extra: dev
Requires-Dist: scikit-learn (>=1.0.0) ; extra == 'dev'
Requires-Dist: pynndescent (>=0.5) ; extra == 'dev'
Requires-Dist: numba (>=0.54.1) ; extra == 'dev'
Requires-Dist: pandas (>=1.3.3) ; extra == 'dev'
Requires-Dist: mkdocs (==1.1) ; extra == 'dev'
Requires-Dist: mkdocs-material (==4.6.3) ; extra == 'dev'
Requires-Dist: mkdocstrings (==0.8.0) ; extra == 'dev'
Requires-Dist: interrogate (>=1.5.0) ; extra == 'dev'
Requires-Dist: flake8 (>=3.6.0) ; extra == 'dev'
Requires-Dist: pytest (>=4.0.2) ; extra == 'dev'
Requires-Dist: black (>=19.3b0) ; extra == 'dev'
Requires-Dist: pre-commit (>=2.2.0) ; extra == 'dev'

<img src="icon.png" width=125 height=125 align="right">

# simsity

> simsity: it's all about the neighborhood

Simsity is a Super Simple Similarities Service. This repository contains
simple tools to help in similarity retreival scenarios. Typical usecases
include early stage bulk labelling and duplication discovery.

## Warning

Alpha software. Expect things to break. Do not use in production.

## Example

This is the basic setup for this package.

```python
from simsity.service import Service
from simsity.indexer import PyNNDescentIndexer
from sklearn.feature_extraction.text import CountVectorizer


# The Indexer handles the nearest neighbor search
# The Encoder handles the encoding of the datapoints
service = Service(
    indexer=PyNNDescentIndexer(metric="euclidean"),
    encoder=CountVectorizer()
)

# Index the datapoints
service.train_from_csv("clinc-data.csv", text_col="text")

# Query the datapoints
service.query("give me directions", n_neighbors=100)

# Save the entire system
service.save("/tmp/simple-model")

# You can also load the model now.
Service.load("/tmp/simple-model")
```


